This running on Windows 10 1909 and cygwin has been updated to the latest version. The effect was also visible on a freshly installed minimal cygwin put on an almost fresh Windows 10 VM.

Cygwin these days seems to have a behaviour that confuses me regarding the case of a disk name:

ln -s "/cygdrive/c/Program Files" pf1
ln -s "/cygdrive/C/Program Files" pf2
ls -l pf*
lrwxrwxrwx 1 acn1 None 25 Jun 12 07:37 pf1 -> /cygdrive/c/Program Files
lrwxrwxrwx 1 acn1 None 20 Jun 12 07:37 pf2 -> /mnt/C/Program Files
cygpath -ma ./pf1
C:/cygwin64/home/acn1/pf1

You see from the above that when I use cygpath to convert from a cygwin name the drive letter C: is returned in upper case. When that ends up after "/cygdrive" the path behaves as I expect almost everywhere by is treated specially for symbolic links. This seems to be a relatively new behaviour and it bit me!

[Use-case: I wanted to convert cygwin paths to be "very absolute" so that eg my home directory is not rendered as /home/acn1 but as /cygdrive/c/cygwin64/home/acn1, so I had a few lines of shell script to achieve that. I was building a package and I build both a cygwin32 and a cygwin64 version, so the "very absolute" paths are portable between the two worlds, both of which were important when I first set this up. Things recently broke and on investigation it was because somewhere deep in build scripts links to /mnt/C/... had been set up and were not usable. I can of course work round the issue but being confident I have spotted all cases causes me work!]

Arthur

--
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

Reply via email to