[newlib-cygwin/main] Cygwin: fnmatch: fix range comparison in C locale
Corinna Vinschen
corinna@sourceware.org
Thu Jul 27 19:58:05 GMT 2023
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=a13b0b7aea9d12c6cefe21082ef5c921ac071e3a
commit a13b0b7aea9d12c6cefe21082ef5c921ac071e3a
Author: Corinna Vinschen <corinna@vinschen.de>
AuthorDate: Thu Jul 27 21:57:49 2023 +0200
Commit: Corinna Vinschen <corinna@vinschen.de>
CommitDate: Thu Jul 27 21:57:49 2023 +0200
Cygwin: fnmatch: fix range comparison in C locale
Commit c36064bbd0c5 introduced operating on character pointers
instead of operating on characters, to allow collating symbols.
This patch neglected to change the expression for range
comparison in case we're in the C locale. Thus it suddenly
compared pointers instead of characters. Fix that.
Fixes: c36064bbd0c5 ("Cygwin: fnmatch: support collating symbols in [. .] brackets")
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/libc/fnmatch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/winsup/cygwin/libc/fnmatch.c b/winsup/cygwin/libc/fnmatch.c
index 8a229a142032..a1cb5d1e4616 100644
--- a/winsup/cygwin/libc/fnmatch.c
+++ b/winsup/cygwin/libc/fnmatch.c
@@ -353,7 +353,7 @@ rangematch(const wint_t *pattern, wint_t *test, int flags, wint_t **newp,
}
if ((!__get_current_collate_locale ()->win_locale[0]) ?
- c <= test && test <= c2 :
+ *c <= *test && *test <= *c2 :
__wscollate_range_cmp(c, test, clen, tlen) <= 0
&& __wscollate_range_cmp(test, c2, tlen, c2len) <= 0
)
More information about the Cygwin-cvs
mailing list