* 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.
This commit is contained in:
Corinna Vinschen 2008-04-14 09:15:35 +00:00
parent fa22ec2bab
commit 949caed8f7
3 changed files with 9 additions and 3 deletions

View 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

View 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);

View 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,