This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Transform all special chars in relative Windows path string


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=fe9e3b4498ab7b3260f5e326cad77e21d5c2293c

commit fe9e3b4498ab7b3260f5e326cad77e21d5c2293c
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Thu Jul 14 20:52:04 2016 +0200

    Transform all special chars in relative Windows path string
    
    get_nt_native_path handles the transposition of chars not allowed
    in Windows pathnames.  However, it never starts transposition at
    the start of the string, which is wrong for relative paths.  Fix it.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/path.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 7373fb7..970a0fe 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -447,10 +447,13 @@ get_nt_native_path (const char *path, UNICODE_STRING& upath, bool dos)
 	  str2uni_cat (upath, path);
 	  /* The drive letter must be upper case. */
 	  upath.Buffer[4] = towupper (upath.Buffer[4]);
+	  transform_chars (&upath, 7);
+	}
+      else			/* relative path */
+	{
+	  str2uni_cat (upath, path);
+	  transform_chars (&upath, 0);
 	}
-      else
-	str2uni_cat (upath, path);
-      transform_chars (&upath, 7);
     }
   else if (path[1] != '\\')	/* \Device\... */
     str2uni_cat (upath, path);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]