Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/kernel32/file.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c index 3b2d82cc37e..9bd5e0ec7b8 100644 --- a/dlls/kernel32/file.c +++ b/dlls/kernel32/file.c @@ -43,6 +43,7 @@ #include "ddk/ntddk.h" #include "kernel_private.h" #include "fileapi.h" +#include "shlwapi.h"
#include "wine/exception.h" #include "wine/unicode.h" @@ -502,8 +503,9 @@ BOOL WINAPI ReplaceFileW(LPCWSTR lpReplacedFileName, LPCWSTR lpReplacementFileNa static const WCHAR prefixW[] = {'r','f',0}; WCHAR temp_path[MAX_PATH], temp_file[MAX_PATH];
- if (!GetTempPathW( ARRAY_SIZE(temp_path), temp_path ) - || !GetTempFileNameW( temp_path, prefixW, 0, temp_file ) + lstrcpynW( temp_path, lpReplacedFileName, ARRAY_SIZE( temp_path ) ); + PathRemoveFileSpecW( temp_path ); + if (!GetTempFileNameW( temp_path, prefixW, 0, temp_file ) || !MoveFileExW( lpReplacedFileName, temp_file, MOVEFILE_REPLACE_EXISTING )) return FALSE;