On Mon, Nov 26, 2018 at 7:16 PM Junio C Hamano wrote:
> I wonder if it makes the rest of the code simpler if we stripped
> things like /cygdrive/c here exactly the sam way as we strip C:
> For that, has_dos_drive_prefix() needs to know /cygdrive/[a-z],
> which may not be a bad thing, I guess. Let's read on.
With full paths, Cygwin can traverse drives:
$ cd 'C:\Users'
$ pwd
/cygdrive/c/Users
$ cd 'D:\Testing'
$ pwd
/cygdrive/d/Testing
If you strip the drive, you can still navigate within the same drive:
$ cd 'C:\Users'
$ pwd
/cygdrive/c/Users
$ cd '\Windows'
$ pwd
/cygdrive/c/Windows
but you can no longer traverse drives:
$ cd '\Testing'
sh: cd: \Testing: No such file or directory
So a good first question for me would be: why are we stripping "C:" or similar
in the first place?
> - Is there a point in having cygwin specific variant of these, or
> can we just borrow from mingw version (with some refactoring)?
> Is there a point in doing so (e.g. if mingw plans to move to
> reject forward slashes, attempting to share is pointless).
I would say these could be merged into a "win.h" or similar. Cygwin typically
leans toward the "/unix/style" while MINGW has been more tolerant of
"C:\Windows\Style" and "C:/Mixed/Style" paths, i dont see that changing.