From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id 54A663858CDB; Mon, 18 Mar 2024 10:26:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 54A663858CDB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1710757600; bh=z1U52KsrJzlgcEaKM3rnor2KqMepmQmAOAN4xp9up4E=; h=From:To:Subject:Date:From; b=inHaWHOnbjzC4PbdtZ4JqrggjIH5jaOcg2Qf+S/9p59jWBSyrUOiLRuQhByn4/W2e tNidU4/A7BZrh6ULs3dsnhJYSgNeg88rD5DVOPurJKagv8xC29y23XqrJc+i0kz7ST Vcju36dd7O2317rPM7ExcnNWVJ7+0/1XLwxzVC4o= 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/cygwin-3_5-branch] 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/cygwin-3_5-branch X-Git-Oldrev: 55431b408e7a6cb29d52ec619c38cdb6c40e2120 X-Git-Newrev: 70375b2205ba7cf5eddf4180b3d80ac8264c0e0a Message-Id: <20240318102640.54A663858CDB@sourceware.org> Date: Mon, 18 Mar 2024 10:26:40 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D70375b2205b= a7cf5eddf4180b3d80ac8264c0e0a commit 70375b2205ba7cf5eddf4180b3d80ac8264c0e0a Author: Corinna Vinschen AuthorDate: Mon Mar 18 10:50:30 2024 +0100 Commit: Corinna Vinschen CommitDate: Mon Mar 18 11:10:20 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