Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-12-03 19:47:18 +0300
committerChristopher Faylor <me@cgf.cx>2001-12-03 19:47:18 +0300
commit2a50e3df6f78914a051398e2a3b46882cfe0df27 (patch)
treeee3559bb9e5fbb0cd194ad521b1898e03c8a8895 /winsup/cygwin/path.cc
parent89ba9b974a8e1e60ccce106d329f1752cfb6becb (diff)
* path.cc (mount_info::conv_to_win32_path): Avoid returning error if cygdrive
== '/'. (mount_info::cygdrive_win32_path): Return 0 if invalid cygdrive path.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index af30927c0..4c295f247 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -1389,12 +1389,15 @@ mount_info::conv_to_win32_path (const char *src_path, char *dst,
dst[0] = '\0';
if (mount_table->cygdrive_len > 1)
devn = FH_CYGDRIVE;
+ goto out;
}
- else if (!cygdrive_win32_path (pathbuf, dst, unit))
+ else if (cygdrive_win32_path (pathbuf, dst, unit))
+ {
+ *flags = cygdrive_flags;
+ goto out;
+ }
+ else if (mount_table->cygdrive_len > 1)
return ENOENT;
- else
- *flags = cygdrive_flags;
- goto out;
}
int chrooted_path_len;
@@ -1518,8 +1521,9 @@ mount_info::cygdrive_win32_path (const char *src, char *dst, int& unit)
const char *p = src + cygdrive_len;
if (!isalpha (*p) || (!isdirsep (p[1]) && p[1]))
{
- res = unit = -1;
+ unit = -1;
dst[0] = '\0';
+ res = 0;
}
else
{
@@ -1528,9 +1532,10 @@ mount_info::cygdrive_win32_path (const char *src, char *dst, int& unit)
strcpy (dst + 2, p + 1);
backslashify (dst, dst, !dst[2]);
unit = dst[0];
+ res = 1;
}
debug_printf ("src '%s', dst '%s'", src, dst);
- return 1;
+ return res;
}
/* conv_to_posix_path: Ensure src_path is a POSIX path.