diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-04-15 10:00:40 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-04-15 10:00:40 +0000 |
commit | 8c3a79bb97bec5b218c8d6d5627698091c408fef (patch) | |
tree | dcc4c135f03566dbc53b1610b5a6f8736c702d79 | |
parent | ca027229d52d91c8a460b873bd2b454299369fad (diff) | |
download | newlib-8c3a79bb97bec5b218c8d6d5627698091c408fef.zip newlib-8c3a79bb97bec5b218c8d6d5627698091c408fef.tar.gz newlib-8c3a79bb97bec5b218c8d6d5627698091c408fef.tar.bz2 |
* cygpath.cc (do_pathconv): Only skip \\?\ prefix if it's really
given. Do backslash to slash conversion for mixed paths after
handling \\?\ prefix.
-rw-r--r-- | winsup/utils/ChangeLog | 6 | ||||
-rw-r--r-- | winsup/utils/cygpath.cc | 21 |
2 files changed, 18 insertions, 9 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 0cb88fb..635cbdb 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,9 @@ +2009-04-15 Corinna Vinschen <corinna@vinschen.de> + + * cygpath.cc (do_pathconv): Only skip \\?\ prefix if it's really + given. Do backslash to slash conversion for mixed paths after + handling \\?\ prefix. + 2009-04-13 Dave Korn <dave.korn.cygwin@gmail.com> * Makefile.in (dumper.exe): Add -lz to ALL_LDFLAGS. diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc index 0e60e26..ade86f7 100644 --- a/winsup/utils/cygpath.cc +++ b/winsup/utils/cygpath.cc @@ -744,17 +744,20 @@ do_pathconv (char *filename) buf = get_short_name (buf); if (longname_flag) buf = get_long_name (buf, len); - if (mixed_flag) - buf = get_mixed_name (buf); - len = 4; - if (strncmp (buf, "\\\\?\\UNC\\", 8) == 0) - len = 6; - if (strlen (buf) < MAX_PATH + len) + if (strncmp (buf, "\\\\?\\", 4) == 0) { - buf += len; - if (len == 6) - *buf = '\\'; + len = 4; + if (strncmp (buf + 4, "UNC\\", 4) == 0) + len = 6; + if (strlen (buf) < MAX_PATH + len) + { + buf += len; + if (len == 6) + *buf = '\\'; + } } + if (mixed_flag) + buf = get_mixed_name (buf); } } |