From 134bfeae84de233c4494c134bf8bf5d86e9c3c71 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> Date: Tue, 9 Nov 2010 12:57:10 +0000 Subject: Version update git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@548 4f64403b-2f21-0410-a795-97e2b3489a10 --- updater/extern.cpp | 67 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 26 deletions(-) (limited to 'updater/extern.cpp') diff --git a/updater/extern.cpp b/updater/extern.cpp index 4e73301..48b1e94 100644 --- a/updater/extern.cpp +++ b/updater/extern.cpp @@ -208,71 +208,86 @@ void MoveFiles(HANDLE hLogFile, TCHAR *src_folder, TCHAR *dst_folder, TCHAR *bac WIN32_FIND_DATA findData; HANDLE hFileSearch = FindFirstFile(szFilesPath, &findData); - if(hFileSearch != INVALID_HANDLE_VALUE) + if (hFileSearch != INVALID_HANDLE_VALUE) { - do { - if(findData.cFileName[0] != _T('.')) { + do + { + if (findData.cFileName[0] != '.') + { _sntprintf(szOldFileName, SIZEOF(szOldFileName), _T("%s\\%s"), src_folder, findData.cFileName); szOldFileName[SIZEOF(szOldFileName) - 1] = 0; - if(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + if(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) + { // use szNewFileName as destination and new root folder - _tcscpy(szNewFileName, root_folder); - if (_tcslen(findData.cFileName) < _tcslen(ROOT_FILES_FOLDER) || _tcsicmp(findData.cFileName, ROOT_FILES_FOLDER)) { - _tcscat(szNewFileName, _T("\\")); - _tcscat(szNewFileName, findData.cFileName); + if (_tcslen(findData.cFileName) < SIZEOF(ROOT_FILES_FOLDER) - 1 || _tcsicmp(findData.cFileName, ROOT_FILES_FOLDER)) + { + _sntprintf(szNewFileName, SIZEOF(szNewFileName), _T("%s\\%s"), root_folder, findData.cFileName); + szNewFileName[SIZEOF(szNewFileName) - 1] = 0; } + else + _tcscpy(szNewFileName, root_folder); // recurse MoveFiles(hLogFile, szOldFileName, szNewFileName, backup_folder, szNewFileName); - } else { - _tcscpy(szNewFileName, dst_folder); - + } + else + { // exception for langpack files - move to root_folder // exception for dbtool.exe (e.g. translated) - move to root_folder if((_tcsnicmp(findData.cFileName, _T("dbtool.exe"), _tcslen(_T("dbtool.exe"))) == 0) || (_tcsnicmp(findData.cFileName, _T("langpack_"), _tcslen(_T("langpack_"))) == 0)) { - _tcscpy(szNewFileName, root_folder); + _sntprintf(szNewFileName, SIZEOF(szNewFileName), _T("%s\\%s"), root_folder, findData.cFileName); + szNewFileName[SIZEOF(szNewFileName) - 1] = 0; + } + else + { + _sntprintf(szNewFileName, SIZEOF(szNewFileName), _T("%s\\%s"), dst_folder, findData.cFileName); + szNewFileName[SIZEOF(szNewFileName) - 1] = 0; } - - _tcscat(szNewFileName, _T("\\")); - _tcscat(szNewFileName, findData.cFileName); move_file = false; - if(do_backups) { - _sntprintf(szBackupFileName, SIZEOF(szBackupFileName), _T("%s\\%s"), - backup_folder, findData.cFileName); + if (do_backups) + { + _sntprintf(szBackupFileName, SIZEOF(szBackupFileName), _T("%s\\%s"), backup_folder, findData.cFileName); szBackupFileName[SIZEOF(szBackupFileName) - 1] = 0; move_file = true; DeleteFile(szBackupFileName); - if(!MoveFile(szNewFileName, szBackupFileName)) { + if(!MoveFile(szNewFileName, szBackupFileName)) + { // MessageBox(0, szNewFileName, "Could not backup!", MB_OK | MB_ICONWARNING); } - } else { + } + else + { move_file = true; - if(!DeleteFile(szNewFileName)) { + if (!DeleteFile(szNewFileName)) + { // MessageBox(0, szNewFileName, "Could not delete!", MB_OK | MB_ICONWARNING); } } - if(move_file) { - if(!MoveFile(szOldFileName, szNewFileName)) { + if (move_file) + { + if (!MoveFile(szOldFileName, szNewFileName)) + { //MessageBox(0, szOldFileName, "Could not move!", MB_OK | MB_ICONWARNING); // try a copy - possibly win98 etc. will not move the updater.dll when it is being used by this process CopyFile(szOldFileName, szNewFileName, TRUE); DeleteFile(szOldFileName); // docs say it is marked for delete and actually removed when the last handle is closed...hmm } - } else { + } + else DeleteFile(szOldFileName); - } } } - } while(FindNextFile(hFileSearch, &findData)); + } + while(FindNextFile(hFileSearch, &findData)); FindClose(hFileSearch); } -- cgit v1.2.3