OSDN Git Service

* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Fix
authorcorinna <corinna>
Mon, 14 Apr 2008 09:15:35 +0000 (09:15 +0000)
committercorinna <corinna>
Mon, 14 Apr 2008 09:15:35 +0000 (09:15 +0000)
thinko in UNC path handling.
* path.cc (symlink_worker): Fix typo in comment.  Fix UNC path handling.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_disk_file.cc
winsup/cygwin/path.cc

index 2ce01ea..7186123 100644 (file)
@@ -1,3 +1,9 @@
+2008-04-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Fix
+       thinko in UNC path handling.
+       * path.cc (symlink_worker): Fix typo in comment.  Fix UNC path handling.
+
 2008-04-13  Corinna Vinschen  <corinna@vinschen.de>
 
        * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Simplify
index 0f400bb..4f81bf7 100644 (file)
@@ -1619,7 +1619,7 @@ fhandler_disk_file::readdir_helper (DIR *dir, dirent *de, DWORD w32_err,
          RtlAppendUnicodeStringToString (&fbuf, fname);
          fbuf.Buffer += 4; /* Skip leading \??\ */
          fbuf.Length -= 4 * sizeof (WCHAR);
-         if (*fbuf.Buffer == L'U') /* UNC path */
+         if (fbuf.Buffer[1] != L':') /* UNC path */
            {
              *(fbuf.Buffer += 2) = L'\\';
              fbuf.Length -= 2 * sizeof (WCHAR);
index c44a932..7c3bc04 100644 (file)
@@ -1642,11 +1642,11 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
              /* Amazing but true:  Even though the ParseDisplayName method
                 takes a wide char path name, it does not understand the
                 Win32 prefix for long pathnames!  So we have to tack off
-                the prefix and convert tyhe path to the "normal" syntax
+                the prefix and convert the path to the "normal" syntax
                 for ParseDisplayName.  I have no idea if it's able to take
                 long path names at all since I can't test it right now. */
              WCHAR *wc = wc_path + 4;
-             if (!wcscmp (wc, L"UNC\\"))
+             if (!wcsncmp (wc, L"UNC\\", 4))
                *(wc += 2) = L'\\';
              HRESULT res;
              if (SUCCEEDED (res = psl->ParseDisplayName (NULL, NULL, wc, NULL,