From ba8b1153a5e43780d1d6ad59e5c2a1fcfcfdf116 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 14 Sep 2020 18:36:32 +0300 Subject: =?UTF-8?q?fixes=20#2568=20(=D0=9F=D1=80=D0=B8=20=D0=B8=D0=B7?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B8=20=D1=87=D0=B8=D1=81?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=B1=D1=8D=D0=BA=D0=B0=D0=BF=D0=BE=D0=B2,=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=8E=D1=82=D1=81=D1=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/PluginUpdater/src/DlgListNew.cpp | 2 ++ plugins/PluginUpdater/src/DlgUpdate.cpp | 4 ++++ plugins/PluginUpdater/src/Options.cpp | 2 ++ plugins/PluginUpdater/src/Utils.cpp | 27 +++++++++++++++++---------- plugins/PluginUpdater/src/stdafx.h | 5 +++-- plugins/PluginUpdater/src/version.h | 2 +- 6 files changed, 29 insertions(+), 13 deletions(-) (limited to 'plugins/PluginUpdater/src') diff --git a/plugins/PluginUpdater/src/DlgListNew.cpp b/plugins/PluginUpdater/src/DlgListNew.cpp index 13f116333e..721934af09 100644 --- a/plugins/PluginUpdater/src/DlgListNew.cpp +++ b/plugins/PluginUpdater/src/DlgListNew.cpp @@ -323,6 +323,8 @@ public: } Netlib_CloseHandle(nlc); + RemoveBackupFolders(); + ShowPopup(TranslateT("Plugin Updater"), TranslateT("Download complete"), POPUP_TYPE_INFO); int rc = MessageBox(m_hwnd, TranslateT("Download complete. Do you want to go to plugins option page?"), TranslateT("Plugin Updater"), MB_YESNO | MB_ICONQUESTION); diff --git a/plugins/PluginUpdater/src/DlgUpdate.cpp b/plugins/PluginUpdater/src/DlgUpdate.cpp index f5da0bbfe2..732a6e04d6 100644 --- a/plugins/PluginUpdater/src/DlgUpdate.cpp +++ b/plugins/PluginUpdater/src/DlgUpdate.cpp @@ -117,6 +117,8 @@ LBL_Error: } } } + + RemoveBackupFolders(); Skin_PlaySound("updatecompleted"); if (g_plugin.bBackup) @@ -466,6 +468,8 @@ LBL_Error: } } + RemoveBackupFolders(); + delete &UpdateFiles; Skin_PlaySound("updatecompleted"); diff --git a/plugins/PluginUpdater/src/Options.cpp b/plugins/PluginUpdater/src/Options.cpp index b052cb06d0..7880d0269c 100644 --- a/plugins/PluginUpdater/src/Options.cpp +++ b/plugins/PluginUpdater/src/Options.cpp @@ -288,6 +288,8 @@ public: FindClose(hFind); } + RemoveBackupFolders(); + // if user tried to change the channel, run the update dialog immediately if (bStartUpdate) CallService(MS_PU_CHECKUPDATES, 0, 0); diff --git a/plugins/PluginUpdater/src/Utils.cpp b/plugins/PluginUpdater/src/Utils.cpp index 17fdd989bc..3b346ffd46 100644 --- a/plugins/PluginUpdater/src/Utils.cpp +++ b/plugins/PluginUpdater/src/Utils.cpp @@ -443,6 +443,20 @@ static int __cdecl CompareDirs(const CMStringW *s1, const CMStringW *s2) } void CreateWorkFolders(TFileName &wszTempFolder, TFileName &wszBackupFolder) +{ + SYSTEMTIME st; + GetLocalTime(&st); + mir_snwprintf(wszBackupFolder, L"%s\\Backups\\BKP%04d-%02d-%02d %02d-%02d-%02d-%03d", g_wszRoot, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds); + SafeCreateDirectory(wszBackupFolder); + + mir_snwprintf(wszTempFolder, L"%s\\Temp", g_wszRoot); + SafeCreateDirectory(wszTempFolder); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// Folder removal + +void RemoveBackupFolders() { TFileName wszMask; mir_snwprintf(wszMask, L"%s\\Backups\\BKP*", g_wszRoot); @@ -458,19 +472,12 @@ void CreateWorkFolders(TFileName &wszTempFolder, TFileName &wszBackupFolder) } while (FindNextFileW(hFind, &fdata)); // remove all folders with lesser dates if there're more than 10 folders - while (arNames.getCount() >= g_plugin.iNumberBackups) { - SafeDeleteDirectory(arNames[0]); + while (arNames.getCount() > g_plugin.iNumberBackups) { + mir_snwprintf(wszMask, L"%s\\Backups\\%s", g_wszRoot, arNames[0].c_str()); + SafeDeleteDirectory(wszMask); arNames.remove(00); } } - - SYSTEMTIME st; - GetLocalTime(&st); - mir_snwprintf(wszBackupFolder, L"%s\\Backups\\BKP%04d-%02d-%02d %02d-%02d-%02d-%03d", g_wszRoot, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds); - SafeCreateDirectory(wszBackupFolder); - - mir_snwprintf(wszTempFolder, L"%s\\Temp", g_wszRoot); - SafeCreateDirectory(wszTempFolder); } ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/plugins/PluginUpdater/src/stdafx.h b/plugins/PluginUpdater/src/stdafx.h index 3e9f3e1b72..efaf4787a3 100644 --- a/plugins/PluginUpdater/src/stdafx.h +++ b/plugins/PluginUpdater/src/stdafx.h @@ -269,10 +269,11 @@ int unzip(const wchar_t *pwszZipFile, wchar_t *pwszDestPath, wchar_t *pwszBackP int CalculateModuleHash(const wchar_t *pwszFileName, char *dest); -BOOL IsProcessElevated(); -bool PrepareEscalation(); +BOOL IsProcessElevated(void); +bool PrepareEscalation(void); void CreateWorkFolders(TFileName &wszTempFolder, TFileName &wszBackupFolder); +void RemoveBackupFolders(void); int SafeCreateDirectory(const wchar_t *pwszDirName); int SafeDeleteDirectory(const wchar_t *pwszDirName); diff --git a/plugins/PluginUpdater/src/version.h b/plugins/PluginUpdater/src/version.h index d976946bdf..49669c91f9 100644 --- a/plugins/PluginUpdater/src/version.h +++ b/plugins/PluginUpdater/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 2 #define __RELEASE_NUM 0 -#define __BUILD_NUM 8 +#define __BUILD_NUM 9 #include -- cgit v1.2.3