shell32: Use remove() instead of rmdir().

rmdir() will fail when target is a symbolic link.

Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jactry Zeng 2016-07-22 15:40:55 +08:00 committed by Alexandre Julliard
parent 7ffb4a912c
commit dad2223ad6

View File

@ -4318,7 +4318,7 @@ static void _SHCreateSymbolicLinks(void)
} }
/* Replace 'My Documents' directory with a symlink or fail silently if not empty. */ /* Replace 'My Documents' directory with a symlink or fail silently if not empty. */
rmdir(pszPersonal); remove(pszPersonal);
symlink(szPersonalTarget, pszPersonal); symlink(szPersonalTarget, pszPersonal);
} }
else else
@ -4374,7 +4374,7 @@ static void _SHCreateSymbolicLinks(void)
strcpy(szMyStuffTarget, szPersonalTarget); strcpy(szMyStuffTarget, szPersonalTarget);
break; break;
} }
rmdir(pszMyStuff); remove(pszMyStuff);
symlink(szMyStuffTarget, pszMyStuff); symlink(szMyStuffTarget, pszMyStuff);
HeapFree(GetProcessHeap(), 0, pszMyStuff); HeapFree(GetProcessHeap(), 0, pszMyStuff);
} }
@ -4395,7 +4395,7 @@ static void _SHCreateSymbolicLinks(void)
SHGFP_TYPE_DEFAULT, wszTempPath); SHGFP_TYPE_DEFAULT, wszTempPath);
if (SUCCEEDED(hr) && (pszDesktop = wine_get_unix_file_name(wszTempPath))) if (SUCCEEDED(hr) && (pszDesktop = wine_get_unix_file_name(wszTempPath)))
{ {
rmdir(pszDesktop); remove(pszDesktop);
if (xdg_desktop_dir) if (xdg_desktop_dir)
symlink(xdg_desktop_dir, pszDesktop); symlink(xdg_desktop_dir, pszDesktop);
else else