Unexpected behavior from cygpath command
Alfred von Campe
alfred@von-campe.com
Tue Nov 12 22:16:00 GMT 2019
I have two almost identical build servers, but cygpath is not behaving as expected on one of them. Here is the output from the “good” build server:
$ cygpath.exe —version | head -1
cygpath (cygwin) 2.11.2
$ cygpath -d 'E:\Program Files (x86)\IAR Systems'
E:\PROGRA~1\IARSYS~1
Cygpath has correctly converted the given path to DOS (8.3) format as expected. Here is the output from the “bad” build server.
$ cygpath.exe —version | head -1
cygpath (cygwin) 2.11.1
$ cygpath -d 'E:\Program Files (x86)\IAR Systems'
E:\Program Files (x86)\IAR Systems
Why is cygpath returning the same path passed in? Oh wait, it’s running a slightly older version (2.11.1 vs 2.11.2). Perhaps there was a bug in the earlier version. Let me update the Cygwin installation and try again:
$ cygpath —version | head -1
cygpath (cygwin) 3.1.0
$ cygpath -d 'E:\Program Files (x86)\IAR Systems'
E:\Program Files (x86)\IAR Systems
WTF? Why is it still doing this? Can there be a global config setting that affects cygpath’s behavior? Hmm, let me try a different approach:
$ cygpath -d "$(cygpath -u 'E:\Program Files (x86)\IAR Systems')"
E:\PROGRA~1\IARSYS~1
Hey, cygpath can convert to DOS paths on this system after all, just not when it’s given a Windows path. Can anyone explain this behavior?
Alfred
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list