* 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:
parent
fa22ec2bab
commit
949caed8f7
|
@ -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>
|
2008-04-13 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Simplify
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Simplify
|
||||||
|
|
|
@ -1619,7 +1619,7 @@ fhandler_disk_file::readdir_helper (DIR *dir, dirent *de, DWORD w32_err,
|
||||||
RtlAppendUnicodeStringToString (&fbuf, fname);
|
RtlAppendUnicodeStringToString (&fbuf, fname);
|
||||||
fbuf.Buffer += 4; /* Skip leading \??\ */
|
fbuf.Buffer += 4; /* Skip leading \??\ */
|
||||||
fbuf.Length -= 4 * sizeof (WCHAR);
|
fbuf.Length -= 4 * sizeof (WCHAR);
|
||||||
if (*fbuf.Buffer == L'U') /* UNC path */
|
if (fbuf.Buffer[1] != L':') /* UNC path */
|
||||||
{
|
{
|
||||||
*(fbuf.Buffer += 2) = L'\\';
|
*(fbuf.Buffer += 2) = L'\\';
|
||||||
fbuf.Length -= 2 * sizeof (WCHAR);
|
fbuf.Length -= 2 * sizeof (WCHAR);
|
||||||
|
|
|
@ -1642,11 +1642,11 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||||
/* Amazing but true: Even though the ParseDisplayName method
|
/* Amazing but true: Even though the ParseDisplayName method
|
||||||
takes a wide char path name, it does not understand the
|
takes a wide char path name, it does not understand the
|
||||||
Win32 prefix for long pathnames! So we have to tack off
|
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
|
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. */
|
long path names at all since I can't test it right now. */
|
||||||
WCHAR *wc = wc_path + 4;
|
WCHAR *wc = wc_path + 4;
|
||||||
if (!wcscmp (wc, L"UNC\\"))
|
if (!wcsncmp (wc, L"UNC\\", 4))
|
||||||
*(wc += 2) = L'\\';
|
*(wc += 2) = L'\\';
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
if (SUCCEEDED (res = psl->ParseDisplayName (NULL, NULL, wc, NULL,
|
if (SUCCEEDED (res = psl->ParseDisplayName (NULL, NULL, wc, NULL,
|
||||||
|
|
Loading…
Reference in New Issue