* path.cc (get_nt_native_path): Drop considerations for DOS devices.

Keep relative paths relative.
	(cygwin_conv_path): Don't try to skip native NT prefixes on relative
	paths.
This commit is contained in:
Corinna Vinschen 2008-06-11 14:06:05 +00:00
parent abe2834a49
commit 24790b9cdb
2 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2008-06-11 Corinna Vinschen <corinna@vinschen.de>
* path.cc (get_nt_native_path): Drop considerations for DOS devices.
Keep relative paths relative.
(cygwin_conv_path): Don't try to skip native NT prefixes on relative
paths.
2008-06-11 Corinna Vinschen <corinna@vinschen.de> 2008-06-11 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h (CYGWIN_VERSION_MOUNT_REGISTRY): Bump. * include/cygwin/version.h (CYGWIN_VERSION_MOUNT_REGISTRY): Bump.

View File

@ -626,9 +626,10 @@ get_nt_native_path (const char *path, UNICODE_STRING& upath, bool managed)
upath.Length = 0; upath.Length = 0;
if (path[0] == '/') /* special path w/o NT path representation. */ if (path[0] == '/') /* special path w/o NT path representation. */
str2uni_cat (upath, path); str2uni_cat (upath, path);
else if (path[0] != '\\') /* X:\... or NUL, etc. */ else if (path[0] != '\\') /* X:\... or relative path. */
{ {
str2uni_cat (upath, "\\??\\"); if (path[1] == ':') /* X:\... */
str2uni_cat (upath, "\\??\\");
str2uni_cat (upath, path); str2uni_cat (upath, path);
transform_chars (&upath, 7, managed); transform_chars (&upath, 7, managed);
} }
@ -2832,9 +2833,13 @@ cygwin_conv_path (cygwin_conv_path_t what, const void *from, void *to,
PUNICODE_STRING up = p.get_nt_native_path (); PUNICODE_STRING up = p.get_nt_native_path ();
buf = tp.c_get (); buf = tp.c_get ();
sys_wcstombs (buf, NT_MAX_PATH, up->Buffer, up->Length / sizeof (WCHAR)); sys_wcstombs (buf, NT_MAX_PATH, up->Buffer, up->Length / sizeof (WCHAR));
buf += 4; /* Skip \??\ */ /* Convert native path to standard DOS path. */
if (buf[1] != ':') /* native UNC path */ if (!strncmp (buf, "\\??\\", 4))
*(buf += 2) = '\\'; {
buf += 4;
if (buf[1] != ':') /* native UNC path */
*(buf += 2) = '\\';
}
lsiz = strlen (buf) + 1; lsiz = strlen (buf) + 1;
break; break;
case CCP_POSIX_TO_WIN_W: case CCP_POSIX_TO_WIN_W: