Merge pull request #1548 from Zillode/case-insensitive-ignores

Support case-insensitive ignores (fixes #1511).
This commit is contained in:
Jakob Borg 2015-04-01 13:46:59 +02:00
commit b659da8a4b
2 changed files with 9 additions and 0 deletions

View File

@ -38,6 +38,13 @@ func Convert(pattern string, flags int) (*regexp.Regexp, error) {
}
}
// Support case insensitive ignores
ignore := strings.TrimPrefix(pattern, "(?i)")
if ignore != pattern {
flags |= FNM_CASEFOLD
pattern = ignore
}
if flags&FNM_NOESCAPE != 0 {
pattern = strings.Replace(pattern, "\\", "\\\\", -1)
} else {

View File

@ -53,6 +53,8 @@ var testcases = []testcase{
{"**/foo.txt", "bar/baz/foo.txt", FNM_PATHNAME, true},
{"foo.txt", "foo.TXT", FNM_CASEFOLD, true},
{"foo.txt", "foo.TXT", 0, false},
{"(?i)foo.txt", "foo.TXT", 0, true},
// These characters are literals in glob, but not in regexp.
{"hey$hello", "hey$hello", 0, true},