No subject

Jeremy Drake cygwin@jdrake.com
Tue May 18 20:00:57 GMT 2021


> Sorry, but there's only this or that, not both.  Either we revert the
> entire change, including the native shortcut stuff, or we do it
> completely and fully, including handling virtual drives as symlinks.

I had success with just the following change (of course comments would
also need to be updated):

diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 4ebaf4dc6..53534b8b6 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -3670,8 +3670,7 @@ restart:
 		   somewhere else, thus, it's a symlink in POSIX speak. */
 		if (upath.Length == 14)	/* \??\X:\ */
 		  {
-		    fileattr &= ~FILE_ATTRIBUTE_DIRECTORY;
-		    path_flags |= PATH_SYMLINK;
+		    goto file_not_symlink;
 		  }
 		/* For final paths differing in inner path components return
 		   length as negative value.  This informs path_conv::check

Treating mapped/subst drives as though they were not symlinks, without
messing with intermedate symlinks.


More information about the Cygwin mailing list