This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

fnmatch failure


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]