From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id 672793858C98; Mon, 18 Mar 2024 10:26:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 672793858C98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1710757605; bh=uSNyiyTes76Pr0imQuDOqsNdweqYFVrT0N6grEoD72A=; h=From:To:Subject:Date:From; b=l8dXdvOoszeCbbS3wjprJoUZmhD2bjVUdEfXugAlSHAOSD5RbWQAcnWh5HeAV7gOY 4hB22NH9i6MtQLrjeNMIg9PsBPJ1pSyZxb5ieHNd/PMpLd3ygsnvSAZ5Ujoq0PxgeA BgErJ9vCcQEERQMj/kGESQGOIg2pJRodHiKVl4Vk= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin/main] Revert "Cygwin: glob: perform ignore_case_with_glob on input" X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/main X-Git-Oldrev: 176b19fbe5e77c4ee8199b3895d0299bd4f8267e X-Git-Newrev: 89afbb8d8af2d4cbb71194bc24697795b5eb0ef6 Message-Id: <20240318102645.672793858C98@sourceware.org> Date: Mon, 18 Mar 2024 10:26:45 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D89afbb8d8af= 2d4cbb71194bc24697795b5eb0ef6 commit 89afbb8d8af2d4cbb71194bc24697795b5eb0ef6 Author: Corinna Vinschen AuthorDate: Mon Mar 18 10:50:30 2024 +0100 Commit: Corinna Vinschen CommitDate: Mon Mar 18 11:10:13 2024 +0100 Revert "Cygwin: glob: perform ignore_case_with_glob on input" =20 This reverts commit a51147467e6cf58618433286f93d17043e00b0fc. =20 Dumb thinko on my part. What was supposed to be an optimization actually broke caseinsensitive globbing in that the entire input of globbed expressions were downcased. =20 Drop the unused CCHAR() macro nevertheless. =20 Fixes: a51147467e6cf ("Cygwin: glob: perform ignore_case_with_glob on i= nput") Reported-by: Michael Goldshteyn Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/glob.cc | 22 +++------------------- winsup/cygwin/release/3.5.2 | 4 ++++ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/winsup/cygwin/glob.cc b/winsup/cygwin/glob.cc index 4730d09f5590..90ec473aea55 100644 --- a/winsup/cygwin/glob.cc +++ b/winsup/cygwin/glob.cc @@ -96,8 +96,6 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/glob.c,v 1.28 2010/0= 5/12 17:44:00 gordon Ex =20 #ifdef __CYGWIN__ #define Cchar(c) (ignore_case_with_glob ? towlower (c) : (c)) -#else -#define Cchar(c) (c) #endif =20 #undef MAXPATHLEN @@ -123,7 +121,6 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/glob.c,v 1.28 2010= /05/12 17:44:00 gordon Ex #define SLASH '/' #define COMMA ',' =20 -#undef DEBUG /* never define */ #ifndef DEBUG =20 #define M_QUOTE 0x40000000U @@ -251,7 +248,7 @@ glob(const char *__restrict pattern, int flags, int (*e= rrfunc)(const char *, int return (GLOB_NOMATCH); else if (clen =3D=3D 0) break; - *bufnext++ =3D Cchar(wc); + *bufnext++ =3D wc; patnext +=3D clen; } } else { @@ -271,7 +268,7 @@ glob(const char *__restrict pattern, int flags, int (*e= rrfunc)(const char *, int return (GLOB_NOMATCH); else if (clen =3D=3D 0) break; - *bufnext++ =3D Cchar(wc) | prot; + *bufnext++ =3D wc | prot; patnext +=3D clen; } } @@ -772,19 +769,6 @@ glob3(Char *pathbuf, Char *pathend, Char *pathend_last, break; sc +=3D clen; } -#ifdef __CYGWIN__ - if (ignore_case_with_glob) { - wint_t lower_path[MAXPATHLEN]; - wint_t *lp =3D lower_path, *sp =3D pathend; - - while ((*lp++ =3D towlower(*sp++))) - ; - if (!match(lower_path, pattern, restpattern)) { - *pathend =3D EOS; - continue; - } - } else -#endif if (!match(pathend, pattern, restpattern)) { *pathend =3D EOS; continue; @@ -938,7 +922,7 @@ match(Char *name, Char *pat, Char *patend) return(0); break; default: - if (*name++ !=3D *c) + if (Cchar(*name++) !=3D Cchar(*c)) return(0); break; } diff --git a/winsup/cygwin/release/3.5.2 b/winsup/cygwin/release/3.5.2 index 449047d9c276..32137c2e6807 100644 --- a/winsup/cygwin/release/3.5.2 +++ b/winsup/cygwin/release/3.5.2 @@ -20,3 +20,7 @@ Fixes: =20 - Don't skip inadvertently some local SAM accounts on domain member machines. + +- Revert ill-advised optimization of glob(3) in case of caseinsensitive + globbing. + Addresses: https://cygwin.com/pipermail/cygwin/2024-March/255675.html