[just to provide a non-flip answer to this subject] On Wed, Mar 24, 2004 at 09:39:29PM -0500, Pierre A. Humblet wrote: >On Wed, Mar 24, 2004 at 04:42:39PM -0500, Christopher Faylor wrote: >As you know isdirsep would take 1 extra compare per character. > >FWIW I see one place where we could avoid the kind of loop that Volker had. > >I wonder if > char *p = strrchr (src, '\0'); > /* Detect if the user was looking for a directory. We have to strip the >should be inside the symlink loop or outside. I guess that depends if >symlink contents ending with / are special (on Sun the final / is stripped in >symlinks, dunno about other Unix flavors).
I really hated putting that in there to begin with (and it should be a 'strchr' anyway) but it was required because Windows allows you to say /foo/bar/ and even /foo/bar/. even when bar isn't a directory. I don't believe that the code would work right if that wasn't there. It would allow a symlink to /foo/bar/. to work when it shouldn't. >Also normalize_posix_path strips the final /, except when it calls >normalize_win32_path. That makes the code go through extra hoops >when resolving c:/the/symlink/, it looks for c:/the/symlink/.lnk I suppose that should be fixed. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/

