fnmatch failure

Andreas Schwab schwab@suse.de
Tue Jan 25 10:14:00 GMT 2000


This patch adds a new testcase to the fnmatch tests, which fnmatch is
currently failing.  No fix for fnmatch yet, hopefully someone else finds
the time to work on it.

In case it is not obvious, the testcase matches "a/b" against "*a*" with
both the FNM_FILE_NAME and FNM_LEADING_DIR flags.  This is supposed to
match since "*a*" matches "a" and "/b" is to be ignored.  This is taken
from the tar-1.13.17 configure script.

Andreas.


2000-01-25  Andreas Schwab  <schwab@suse.de>

	* posix/testfnm.c: Add new test case.  Use FNM_FILE_NAME instead
	of FNM_PATHNAME consistently.

Index: posix/testfnm.c
===================================================================
RCS file: /cvs/glibc/libc/posix/testfnm.c,v
retrieving revision 1.8
diff -u -a -u -r1.8 posix/testfnm.c
--- posix/testfnm.c	1999/04/28 09:22:54	1.8
+++ posix/testfnm.c	2000/01/25 18:07:03
@@ -11,7 +11,7 @@
   { "lib", "*LIB*", FNM_PERIOD, FNM_NOMATCH },
   { "lib", "*LIB*", FNM_CASEFOLD|FNM_PERIOD, 0 },
   { "a/b", "a[/]b", 0, 0 },
-  { "a/b", "a[/]b", FNM_PATHNAME, FNM_NOMATCH },
+  { "a/b", "a[/]b", FNM_FILE_NAME, FNM_NOMATCH },
   { "a/b", "[a-z]/[a-z]", 0, 0 },
   { "a/b", "*", FNM_FILE_NAME, FNM_NOMATCH },
   { "a/b", "*[/]b", FNM_FILE_NAME, FNM_NOMATCH },
@@ -30,27 +30,28 @@
   { "[/b", "\\[/b", 0, 0 },
   { "aa/b", "??/b", 0, 0 },
   { "aa/b", "???b", 0, 0 },
-  { "aa/b", "???b", FNM_PATHNAME, FNM_NOMATCH },
-  { ".a/b", "?a/b", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
-  { "a/.b", "a/?b", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
-  { ".a/b", "*a/b", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
-  { "a/.b", "a/*b", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
-  { ".a/b", "[.]a/b", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
-  { "a/.b", "a/[.]b", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
-  { "a/b", "*/?", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { "a/b", "?/*", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { ".a/b", ".*/?", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { "a/.b", "*/.?", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { "a/.b", "*/*", FNM_PATHNAME|FNM_PERIOD, FNM_NOMATCH },
+  { "aa/b", "???b", FNM_FILE_NAME, FNM_NOMATCH },
+  { ".a/b", "?a/b", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
+  { "a/.b", "a/?b", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
+  { ".a/b", "*a/b", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
+  { "a/.b", "a/*b", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
+  { ".a/b", "[.]a/b", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
+  { "a/.b", "a/[.]b", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
+  { "a/b", "*/?", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a/b", "?/*", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { ".a/b", ".*/?", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a/.b", "*/.?", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a/.b", "*/*", FNM_FILE_NAME|FNM_PERIOD, FNM_NOMATCH },
   { "a/.b", "*?*/*", FNM_PERIOD, 0 },
-  { "a./b", "*[.]/b", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { "a/b", "*[[:alpha:]]/*[[:alnum:]]", FNM_PATHNAME, 0 },
-  { "a/b", "*[![:digit:]]*/[![:d-d]", FNM_PATHNAME, 0 },
-  { "a/[", "*[![:digit:]]*/[[:d-d]", FNM_PATHNAME, 0 },
-  { "a/[", "*[![:digit:]]*/[![:d-d]", FNM_PATHNAME, FNM_NOMATCH },
-  { "a.b", "a?b", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { "a.b", "a*b", FNM_PATHNAME|FNM_PERIOD, 0 },
-  { "a.b", "a[.]b", FNM_PATHNAME|FNM_PERIOD, 0 },
+  { "a./b", "*[.]/b", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a/b", "*[[:alpha:]]/*[[:alnum:]]", FNM_FILE_NAME, 0 },
+  { "a/b", "*[![:digit:]]*/[![:d-d]", FNM_FILE_NAME, 0 },
+  { "a/[", "*[![:digit:]]*/[[:d-d]", FNM_FILE_NAME, 0 },
+  { "a/[", "*[![:digit:]]*/[![:d-d]", FNM_FILE_NAME, FNM_NOMATCH },
+  { "a.b", "a?b", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a.b", "a*b", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a.b", "a[.]b", FNM_FILE_NAME|FNM_PERIOD, 0 },
+  { "a/b", "*a*", FNM_FILE_NAME|FNM_LEADING_DIR, 0 },
 };
 
 int

-- 
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg


More information about the Libc-hacker mailing list