This is the mail archive of the
mailing list for the Cygwin project.
Re: [PATCH] Reattach trailing dirsep on existing directories too.
- From: Ray Donnelly <mingw dot android at gmail dot com>
- To: cygwin-patches at cygwin dot com
- Date: Wed, 8 Jan 2014 10:49:35 +0000
- Subject: Re: [PATCH] Reattach trailing dirsep on existing directories too.
- Authentication-results: sourceware.org; auth=none
- References: <CAOYw7duMgGSfpxa4OtOPRhY5Mw6q=__shhJxELZ53Ez9_WETRQ at mail dot gmail dot com> <20140107151249 dot GI2440 at calimero dot vinschen dot de> <CAOYw7dsJ5b5NVDowSAuK9F0uRztYhZLMU97G=T8jGECU-vcFVw at mail dot gmail dot com> <20140108092000 dot GB28847 at calimero dot vinschen dot de>
On Wed, Jan 8, 2014 at 9:20 AM, Corinna Vinschen wrote:
> On Jan 7 18:15, Ray Donnelly wrote:
>> On Tue, Jan 7, 2014 at 3:12 PM, Corinna Vinschen wrote:
>> > On Dec 22 01:03, Ray Donnelly wrote:
>> >> I hope this is OK and I've done it in the best place. Please advise if
>> >> it needs any changes.
>> > I have no idea if this is ok. This is a patch to a very crucial
>> > function in terms of path handling, and it's not clear that this isn't
>> > doing the wrong thing. What is this patch trying to accomplish? Do you
>> > have example user space code which is failing for this very reason?
>> The exact issue was that paths that do not exist would maintain their
>> final dirsep whereas paths that do exist would lose this dirsep:
>> test.exe /c/doesnt-exist/ /c/does-exist/
>> test.exe would see:
>> arg1: C:/doesnt-exist/
>> arg2: C:/does-exist
>> These paths were passed to GCC as search paths and while I could've
>> hacked up the GCC code to detect and correct this anomaly, but I think
>> this patch fixes the problem at cause.
> And that is a problem, because...?
.. because in this case, GCC appends sysroots directly to those
passed-in-as-#define values and I end up with e.g. C:/does-existusr/
and C:/doesnt-exist/usr/, when I always wanted the final /. Of course
I could add some nasty hacks in GCC and any other program that runs
into this odd behavioural quirk to detect and workaround it, but IMHO
fixing the quirk is a better approach.
Someone's gone to the effort to re-attach the dirsep when the folder
doesn't exist so they must have thought that preserving this was a
good idea, I've just fixed a corner case in that so the results are
> Corinna Vinschen Please, send mails regarding Cygwin to
> Cygwin Maintainer cygwin AT cygwin DOT com
> Red Hat