diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | dir.c | 6 |
2 files changed, 9 insertions, 3 deletions
@@ -1,3 +1,9 @@ +Mon Feb 9 13:00:55 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> + + * dir.c (fnmatch): + File.fnmatch('*?', 'a') should return true. [ruby-dev:22815] + File.fnmatch('\[1\]' , '[1]') should return true. [ruby-dev:22819] + Sun Feb 8 16:46:13 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> * lib/pp.rb (PP::PPMethods::object_address_group): suppress negative @@ -178,7 +178,7 @@ fnmatch(pat, string, flags) test = downcase(test); pat--; while (*s) { - if ((c == '[' || downcase(*s) == test) && + if ((c == '?' || c == '[' || downcase(*s) == test) && !fnmatch(pat, s, flags | FNM_DOTMATCH)) return 0; else if (ISDIRSEP(*s)) @@ -186,7 +186,7 @@ fnmatch(pat, string, flags) s++; } return FNM_NOMATCH; - + case '[': if (!*s || ISDIRSEP(*s) || PERIOD(s)) return FNM_NOMATCH; @@ -199,7 +199,7 @@ fnmatch(pat, string, flags) case '\\': if (escape #if defined DOSISH - && *pat && strchr("*?[\\", *pat) + && *pat && strchr("*?[]\\", *pat) #endif ) { c = *pat; |