fast-glob icon indicating copy to clipboard operation
fast-glob copied to clipboard

Apostrophe breaks fast-glob!

Open ihatzi opened this issue 5 years ago • 1 comments

Environment

  • OS Version: Windows 10
  • Node.js Version: 6.14.6

Actual behavior

The apostrophe in the folder name seems to break the pattern matching. If I manually rename the folder by removing the apostrophe, fast-glob finds it, but as long as the apostrophe is there it keeps returning an empty array.

Expected behavior

Should find folder "G:/Cont/Cleo Poses For Genesis 3 - Copy's/Content/My 3D Library/People

Steps to reproduce

  1. Run code

Code sample

fg.sync("G:/Cont/Cleo Poses For Genesis 3 - Copy's/Content/{my library,my 3d library}/*", { onlyFiles: false, caseSensitiveMatch: false, braceExpansion: true });

ihatzi avatar Sep 12 '20 19:09 ihatzi

Hello, @ihatzi,

Looks like ' is a special character and it must be escaped by \\.

mrmlnc avatar Dec 18 '20 19:12 mrmlnc

I have checked the following patterns and they work correctly. I think the problem has fixed itself.

Cleo Poses For Genesis 3 - Copy's
Cleo Poses For Genesis 3 - Copy's\Content
Cleo Poses For Genesis 3 - Copy's\Content\a
Cleo Poses For Genesis 3 - Copy's\Content\b
Cleo Poses For Genesis 3 - Copy's\Content\a\a.md
Cleo Poses For Genesis 3 - Copy's\Content\b\b.md

Cleo Poses For Genesis 3 - Copy`s
Cleo Poses For Genesis 3 - Copy`s\a.md
const fg = require('.');

(async () => {
	console.time('fg');
	const entries = await fg('D:/OpenSource/fast-glob/test/Cleo Poses For Genesis 3 - Copy\'s/Content/{a,b}/**', {
		onlyFiles: false,
		caseSensitiveMatch: false,
		braceExpansion: true
	});
	console.timeEnd('fg');

	console.dir(entries, { colors: true });
})();
fg: 6.633ms
[
  "D:/OpenSource/fast-glob/test/Cleo Poses For Genesis 3 - Copy's/Content/a",
  "D:/OpenSource/fast-glob/test/Cleo Poses For Genesis 3 - Copy's/Content/b"
]

mrmlnc avatar Sep 07 '22 06:09 mrmlnc