cygpath and partial normalization of trailing /.

Poor Yorick com.cygwin.cygwin@pooryorick.com
Mon Oct 5 12:29:00 GMT 2015


Currently, in a sh shell,

    cygpath 'c:\windows'

returns

     /cygdrive/c/windows

and

     cygpath 'c:\windows\.'

returns

    /cygdrive/c/windows/

.  With the -m switch, the same pattern is followed, and in the case of 
a
trailing, \. sequence, the dot is removed but the backslash is retained. 
  This
led to a bug (https://sourceforge.net/p/tkimg/bugs/84/) in a build 
process
where the  autoconf script looked something like this:

    TEA_ADD_INCLUDES([-I\"`\${CYGPATH} \${tkimg_SRC_PATH}`\"])

Because of the trailing backslash in the output of cygpath, the final 
double
quote ended up getting escaped.

Rather than normalizing half of it away and leaving half of it, Wouldn't 
it be
better to either not normalize the trailing slash-dot sequence at all, 
or to
completely normalize it away?  If that which is delimited is removed, it 
would
seem to make sense to removed the delimiter as well.

The case that the incoming pathname already has a trailing delimiter is 
one
that I think is already recognized and differentiated.

-- 
Poor Yorick


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list