From d2cdc6a134a4b67f58b26d6e9cf2bc1c3a8f6951 Mon Sep 17 00:00:00 2001 From: corinna Date: Wed, 15 Aug 2007 16:27:08 +0000 Subject: [PATCH] * 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. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/path.cc | 10 ++++++---- winsup/cygwin/syscalls.cc | 13 ++++++------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 8591d9bc53..5b9ba01ffb 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,12 @@ 2007-08-15 Corinna Vinschen + * 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 + * 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 b616a101dc..9b20322b87 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 5df131ea7a..8e1c979615 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; } -- 2.11.0