realpath issue with native[strict] symlinks
Corinna Vinschen
corinna-cygwin@cygwin.com
Thu May 6 17:44:42 GMT 2021
On May 4 22:52, Orgad Shaneh via Cygwin wrote:
> On Tue, Apr 27, 2021 at 8:44 AM Orgad Shaneh <orgads@gmail.com> wrote:
> >
> > On Apr 19 12:58, Corinna Vinschen via Cygwin wrote:
> > > On Apr 18 10:59, Orgad Shaneh via Cygwin wrote:
> >
> > > I was going to write:
> > >
> > > Nothing we can do about without re-implementing Cygwin's path handling
> > > from scratch. For historical reasons, POSIX paths are evaluated in a
> > > non-POSIXy manner from right to left. If the resulting path is an
> > > existing path, the assumption is that no inner path component is a
> > > symlink. That's true as long as Windows didn't support
> > > symlinks/junctions and Cygwin didn't support them.
> > >
> > > But now I'm writing this:
> > >
> > > Probably I have a workaround for this problem. I added a certain test
> > > to the function checking the outer path component, so the checks for
> > > path validity don't stop at the outer path component, just because
> > > it's a valid Windows path.
> > >
> > > I pushed the patch and uploaded new developer snapshots to
> > > https://cygwin.com/snapshots/
> > >
> > > Please give them a try.
> >
> > Tried now, and it works for me. Thanks a lot!
> >
> > - Orgad
>
>
> Hi Corinna,
>
> This change breaks access to subst drives. Reported on MSYS2:
> https://github.com/msys2/msys2-runtime/pull/38#issuecomment-832160980
>
> Can you please have a look?
Works fine for me:
$ subst T: C:\\cygwin64\\home\\corinna\\tmp
$ subst
T:\: => C:\cygwin64\home\corinna\tmp
$ ls /cygdrive/t
bar cygwin foo gawk-5.1.0 ocaml openssh-8.5p1 recurse tst
TAB completion works, too.
Corinna
More information about the Cygwin
mailing list