OSDN Git Service

* path.cc (get_nt_native_path): Allow to convert special paths which
authorcorinna <corinna>
Wed, 15 Aug 2007 16:27:08 +0000 (16:27 +0000)
committercorinna <corinna>
Wed, 15 Aug 2007 16:27:08 +0000 (16:27 +0000)
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
winsup/cygwin/path.cc
winsup/cygwin/syscalls.cc

index 8591d9b..5b9ba01 100644 (file)
@@ -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.
index b616a10..9b20322 100644 (file)
@@ -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);
index 5df131e..8e1c979 100644 (file)
@@ -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;
 }