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

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