in addition to what Eric already documented: * Dave Korn wrote on Fri, Aug 14, 2009 at 01:34:18PM CEST: > > Still finishing it off and getting it tested, but while that's going, here's > a preview of the path canonicalisation function as I've got it so far; let me > know if I've done any major no-nos please!
Do you cope with paths starting with // (these can be special on Cygwin, you may not remove the second / in that case)? (If anything, this is only a rather minor no-no however, and I have no idea whether we treat it consistently elsewhere in libtool.) > pathcar="s,^/\([^/]*\).*$,\1," > pathcdr="s,^/[^/]*,," > removedotparts="s,/\(\.\(/\|$\)\)\+,/,g" > collapseslashes="s,/\+,/,g" > > # func_normal_abspath path Capitalize PATH here, please. Maybe also s/PATH/FILE/ throughout the comment, to avoid mistaking it with the $PATH environment variable? > # Remove doubled-up and trailing slashes, "." path components, > # and cancel out any ".." path components in PATH. > # value returned in "$func_normal_abspath_result" Missing a statement that an absolute path is returned, that would be nice. One would hope for a followup patch that factorizes all the forks in this function for SUSv3 shells that provide ${var##...} etc. Otherwise, if this function is used more than once per libtool invocation, it will be a major speed bump in a typical build. (IOW, you don't need to address this, but it ought to be looked at; I might do it sometime.) Cheers, Ralf