[BZ #361]
authorUlrich Drepper <drepper@redhat.com>
Thu, 2 Sep 2004 03:38:10 +0000 (03:38 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 2 Sep 2004 03:38:10 +0000 (03:38 +0000)
Update.
2004-09-01  Jakub Jelinek  <jakub@redhat.com>

[BZ #361]
* posix/fnmatch_loop.c (FCT): For backslash between brackets, branch
to normal_bracket after fetching the next character.
* posix/tst-fnmatch.input: Add 25 new tests.
Reported by Markus Oberhumer <markus@oberhumer.com>.

ChangeLog
posix/fnmatch_loop.c
posix/tst-fnmatch.input

index 1932ba4..d1e99da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-01  Jakub Jelinek  <jakub@redhat.com>
+
+       [BZ #361]
+       * posix/fnmatch_loop.c (FCT): For backslash between brackets, branch
+       to normal_bracket after fetching the next character.
+       * posix/tst-fnmatch.input: Add 25 new tests.
+       Reported by Markus Oberhumer <markus@oberhumer.com>.
+
 2004-09-01  Ulrich Drepper  <drepper@redhat.com>
 
        * elf/rtld.c (dl_main): First check existence of ld.so.preload
index 0c14d45..fb56bd4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2003
+/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2003,2004
        Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -242,8 +242,7 @@ FCT (pattern, string, string_end, no_leading_period, flags)
                    c = FOLD ((UCHAR) *p);
                    ++p;
 
-                   if (c == fn)
-                     goto matched;
+                   goto normal_bracket;
                  }
                else if (c == L('[') && *p == L(':'))
                  {
index faea8e2..9061d19 100644 (file)
@@ -1,5 +1,5 @@
 # Tests for fnmatch.
-# Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 # Contributes by Ulrich Drepper <drepper@redhat.com>.
 #
@@ -389,6 +389,31 @@ C          "az"                    "[-a]z"                0
 C              "bz"                    "[-ab]z"               0
 C              "cz"                    "[-ab]z"               NOMATCH
 C              "-z"                    "[-ab]z"               0
+C              "\\"                    "[\\\\-a]"             0
+C              "_"                     "[\\\\-a]"             0
+C              "a"                     "[\\\\-a]"             0
+C              "-"                     "[\\\\-a]"             NOMATCH
+C              "\\"                    "[\\]-a]"              NOMATCH
+C              "_"                     "[\\]-a]"              0
+C              "a"                     "[\\]-a]"              0
+C              "]"                     "[\\]-a]"              0
+C              "-"                     "[\\]-a]"              NOMATCH
+C              "\\"                    "[!\\\\-a]"            NOMATCH
+C              "_"                     "[!\\\\-a]"            NOMATCH
+C              "a"                     "[!\\\\-a]"            NOMATCH
+C              "-"                     "[!\\\\-a]"            0
+C              "!"                     "[\\!-]"               0
+C              "-"                     "[\\!-]"               0
+C              "\\"                    "[\\!-]"               NOMATCH
+C              "Z"                     "[Z-\\\\]"             0
+C              "["                     "[Z-\\\\]"             0
+C              "\\"                    "[Z-\\\\]"             0
+C              "-"                     "[Z-\\\\]"             NOMATCH
+C              "Z"                     "[Z-\\]]"              0
+C              "["                     "[Z-\\]]"              0
+C              "\\"                    "[Z-\\]]"              0
+C              "]"                     "[Z-\\]]"              0
+C              "-"                     "[Z-\\]]"              NOMATCH
 
 # Following are tests outside the scope of IEEE 2003.2 since they are using
 # locales other than the C locale.  The main focus of the tests is on the