diff options
Diffstat (limited to 'winsup/utils/cygpath.cc')
-rw-r--r-- | winsup/utils/cygpath.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc index 0e60e269e..ade86f7f2 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); } } |