summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2007-08-15 16:27:09 +0000
committerCorinna Vinschen <corinna@vinschen.de>2007-08-15 16:27:09 +0000
commitc4bd83770022e78e9fbd7f1eefb57ad7c69456cd (patch)
treed170d37c5d61cda5d0fedcc97342fc94287c38c9
parent6d70255fe8fa15d41c3e15e0fdb273da00e16702 (diff)
downloadcygnal-c4bd83770022e78e9fbd7f1eefb57ad7c69456cd.tar.gz
cygnal-c4bd83770022e78e9fbd7f1eefb57ad7c69456cd.tar.bz2
cygnal-c4bd83770022e78e9fbd7f1eefb57ad7c69456cd.zip
* path.cc (get_nt_native_path): Allow to convert special paths which
have no native NT path representation for simplified debug output. * syscalls.cc: Convert debug output to print native NT path. (unlink): Drop redundant debug output.
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/path.cc10
-rw-r--r--winsup/cygwin/syscalls.cc13
3 files changed, 19 insertions, 11 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 8591d9bc5..5b9ba01ff 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,12 @@
2007-08-15 Corinna Vinschen <corinna@vinschen.de>
+ * path.cc (get_nt_native_path): Allow to convert special paths which
+ have no native NT path representation for simplified debug output.
+ * syscalls.cc: Convert debug output to print native NT path.
+ (unlink): Drop redundant debug output.
+
+2007-08-15 Corinna Vinschen <corinna@vinschen.de>
+
* fhandler_disk_file.cc (fhandler_disk_file::link): Drop superfluous
test for trailing dot.
* path.h (path_conv::operator []): Remove.
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index b616a101d..9b20322b8 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -544,20 +544,22 @@ path_conv::set_normalized_path (const char *path_copy, bool strip_tail)
PUNICODE_STRING
get_nt_native_path (const char *path, UNICODE_STRING &upath)
{
- if (path[0] != '\\') /* X:\... or NUL, etc. */
+ if (path[0] == '/') /* special path w/o NT path representation. */
+ str2uni_cat (upath, path);
+ else if (path[0] != '\\') /* X:\... or NUL, etc. */
{
str2uni_cat (upath, "\\??\\");
str2uni_cat (upath, path);
}
- else if (path[1] != '\\') /* \Device\... */
+ else if (path[1] != '\\') /* \Device\... */
str2uni_cat (upath, path);
else if ((path[2] != '.' && path[2] != '?')
- || path[3] != '\\') /* \\server\share\... */
+ || path[3] != '\\') /* \\server\share\... */
{
str2uni_cat (upath, "\\??\\UNC\\");
str2uni_cat (upath, path + 2);
}
- else /* \\.\device or \\?\foo */
+ else /* \\.\device or \\?\foo */
{
str2uni_cat (upath, "\\??\\");
str2uni_cat (upath, path + 4);
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 5df131ea7..8e1c97961 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -538,8 +538,6 @@ unlink (const char *ourname)
goto done;
}
- syscall_printf ("_unlink (%s)", win32_name.get_win32 ());
-
if (!win32_name.exists ())
{
syscall_printf ("unlinking a nonexistent file");
@@ -1356,8 +1354,8 @@ stat_worker (path_conv &pc, struct __stat64 *buf)
if (!(fh = build_fh_pc (pc)))
goto error;
- debug_printf ("(%s, %p, %p), file_attributes %d",
- pc.normalized_path, buf, fh, (DWORD) *fh);
+ debug_printf ("(%S, %p, %p), file_attributes %d",
+ pc.get_nt_native_path (), buf, fh, (DWORD) *fh);
memset (buf, 0, sizeof (*buf));
res = fh->fstat (buf);
if (!res)
@@ -1376,7 +1374,7 @@ stat_worker (path_conv &pc, struct __stat64 *buf)
error:
MALLOC_CHECK;
- syscall_printf ("%d = (%s, %p)", res, pc.normalized_path ?: "", buf);
+ syscall_printf ("%d = (%S, %p)", res, pc.get_nt_native_path (), buf);
return res;
}
@@ -2057,8 +2055,9 @@ setmode (int fd, int mode)
else
cfd->set_flags ((cfd->get_flags () & ~(O_TEXT | O_BINARY)) | mode);
- syscall_printf ("(%d<%s>, %p) returning %s", fd, cfd->get_name (),
- mode, res & O_TEXT ? "text" : "binary");
+ syscall_printf ("(%d<%s>, %p) returning %s", fd,
+ cfd->pc.get_nt_native_path (), mode,
+ res & O_TEXT ? "text" : "binary");
return res;
}