diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-09-02 03:38:10 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-09-02 03:38:10 +0000 |
commit | aae95a1b6a1356ca2c6bc1f23a211c29da9e1ea4 (patch) | |
tree | 44e5ba2a4bd78fe5fc28cd8648505f521934f272 /posix | |
parent | 495639394bc0d6fd9e7e093060b6bc1301d07842 (diff) | |
download | glibc-aae95a1b6a1356ca2c6bc1f23a211c29da9e1ea4.zip glibc-aae95a1b6a1356ca2c6bc1f23a211c29da9e1ea4.tar.gz glibc-aae95a1b6a1356ca2c6bc1f23a211c29da9e1ea4.tar.bz2 |
[BZ #361]
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>.
Diffstat (limited to 'posix')
-rw-r--r-- | posix/fnmatch_loop.c | 5 | ||||
-rw-r--r-- | posix/tst-fnmatch.input | 27 |
2 files changed, 28 insertions, 4 deletions
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c index 0c14d45..fb56bd4 100644 --- a/posix/fnmatch_loop.c +++ b/posix/fnmatch_loop.c @@ -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(':')) { diff --git a/posix/tst-fnmatch.input b/posix/tst-fnmatch.input index faea8e2..9061d19 100644 --- a/posix/tst-fnmatch.input +++ b/posix/tst-fnmatch.input @@ -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 |