X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BB1C9395A47F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1621368059; bh=CrCucxmTYW45tlFQfXHEGTj+cny8INYFotFcKkHQHHQ=; h=Date:To:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help: List-Subscribe:From:Reply-To:From; b=XsSqSzzKCTZ6lR7ux04DhDzDkHiKNroHUk1wKDQX3Z+BkyLAVJcJyA9QmnBwIwoBh /m1MQ5rCriKdyVfXTZtr6kHUiPnbz4EJoP1zR/Y1ogLmMSytTc3lYpaEGlTWf+oUK0 yzwgUbZvTw44pTf5fW67wb5vEObnVoSVpAEI/75o= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 90B7A39551F8 Date: Tue, 18 May 2021 13:00:57 -0700 (PDT) X-X-Sender: jeremyd AT resin DOT csoft DOT net To: cygwin AT cygwin DOT com Message-ID: User-Agent: Alpine 2.21 (BSO 202 2017-01-01) MIME-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, MISSING_SUBJECT, RCVD_IN_DNSWL_LOW, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Jeremy Drake via Cygwin Reply-To: Jeremy Drake Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Cygwin" > 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