* 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>
* 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;
if (path[0] == '/') /* special path w/o NT path representation. */
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);
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 ();
buf = tp.c_get ();
sys_wcstombs (buf, NT_MAX_PATH, up->Buffer, up->Length / sizeof (WCHAR));
buf += 4; /* Skip \??\ */
if (buf[1] != ':') /* native UNC path */
*(buf += 2) = '\\';
/* Convert native path to standard DOS path. */
if (!strncmp (buf, "\\??\\", 4))
{
buf += 4;
if (buf[1] != ':') /* native UNC path */
*(buf += 2) = '\\';
}
lsiz = strlen (buf) + 1;
break;
case CCP_POSIX_TO_WIN_W: