diff options
Diffstat (limited to 'plugins/PluginUpdater/src/unzipfile.cpp')
-rw-r--r-- | plugins/PluginUpdater/src/unzipfile.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/plugins/PluginUpdater/src/unzipfile.cpp b/plugins/PluginUpdater/src/unzipfile.cpp index c5f39e1451..b2b621d37a 100644 --- a/plugins/PluginUpdater/src/unzipfile.cpp +++ b/plugins/PluginUpdater/src/unzipfile.cpp @@ -26,12 +26,9 @@ extern "C" void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def);
}
-void PrepareFileName(TCHAR *dest, size_t destSize, const TCHAR *ptszPath, const TCHAR *ptszFileName)
+static void PrepareFileName(TCHAR *dest, size_t destSize, const TCHAR *ptszPath, const TCHAR *ptszFileName)
{
- if (ptszPath)
- mir_sntprintf(dest, destSize, _T("%s\\%s"), ptszPath, ptszFileName);
- else
- mir_sntprintf(dest, destSize, _T("%s"), ptszFileName);
+ mir_sntprintf(dest, destSize, _T("%s\\%s"), ptszPath, ptszFileName);
for (TCHAR *p = dest; *p; ++p)
if (*p == '/')
@@ -42,7 +39,10 @@ void BackupFile(TCHAR *ptszSrcFileName, TCHAR *ptszBackFileName) {
CreatePathToFileT(ptszBackFileName);
DeleteFile(ptszBackFileName);
- MoveFile(ptszSrcFileName, ptszBackFileName);
+ if ( MoveFile(ptszSrcFileName, ptszBackFileName) == 0) { // use copy on error
+ CopyFile(ptszSrcFileName, ptszBackFileName, FALSE);
+ DeleteFile(ptszSrcFileName);
+ }
}
bool extractCurrentFile(unzFile uf, TCHAR *ptszDestPath, TCHAR *ptszBackPath)
|