On Mar 16 16:49, Michael Goldshteyn via Cygwin wrote: > Cygwin handles (filename) case insensitivity in a very weird way at the > Windows command prompt: > ------------------------------ > c:\Users\Michael>set CYGWIN= > > c:\Users\Michael>printf "%q " 'a' 'A' "a" "A" a A > a A a A a A > > REM OK, so far so good, but, now: > c:\Users\Michael>set CYGWIN=glob:ignorecase > > C:\Users\Michael>printf "%q " 'a' 'A' "a" "A" a A > a a a a a A > > REM So, if I don't put a command line arg into any sort of quotes, it gets > lower-cased for cygwin apps (from the Windows command line). > REM I should also add that there is no file named 'a' or 'A' in the current > working directory. > > REM This behavior, of course, doesn't happen in Cygwin bash: > ------------------------------ > C:\Users\Michael>bash > Michael@lambda /cygdrive/c/Users/Michael > $ echo "$CYGWIN" > glob:ignorecase > Michael@lambda /cygdrive/c/Users/Michael > $ printf "%q " 'a' 'A' "a" "A" a A > a A a A a A > $ # Output looks correct, quoted or not > ------------------------------ > The unsolicited conversion of case for quoted string is very odd, to say > the least. If you remove the glob:ignorecase from the CYGWIN env var > definition, use of filenames on Windows with Cygwin tools becomes > completely case sensitive, which is very undesirable when compared to the > fact that other Windows tools do not care about file case (i.e., case > insensitive, but preserving, as MS puts it).
This was an ill-advised optimization attempt in glob. I revert the patch and pushed the change(*), so this will be fixed in Cygwin 3.5.2. For the time being, you can also test this by installing the just building Cygwin test release 3.6.0-0.85.g89afbb8d8af2, which should be available in an hour or two. Thanks, Corinna (*) https://cygwin.com/cgit/newlib-cygwin/commit/?id=70375b2205 -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple