Support case-insensitive ignores (fixes #1511).

This commit is contained in:
Lode Hoste 2015-03-30 22:41:12 +02:00
parent 5fe15475a4
commit 9fed75d59c
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},