From e95d01cd783a9fd60e04e280fbbcd6823f6ef314 Mon Sep 17 00:00:00 2001 From: ocean Date: Mon, 9 Feb 2004 04:04:59 +0000 Subject: * dir.c (fnmatch): File.fnmatch('*?', 'a') should return true. [ruby-dev:22815] File.fnmatch('\[1\]' , '[1]') should return true. [ruby-dev:22819] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- dir.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'dir.c') diff --git a/dir.c b/dir.c index 07dd806ba7..071a5aa61d 100644 --- a/dir.c +++ b/dir.c @@ -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; -- cgit v1.2.3