diff options
author | George Hazan <ghazan@miranda.im> | 2020-09-14 18:36:32 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2020-09-14 18:36:32 +0300 |
commit | ba8b1153a5e43780d1d6ad59e5c2a1fcfcfdf116 (patch) | |
tree | ef63686940497f3cde12328db17a6da9083fc013 /plugins/PluginUpdater | |
parent | 45caeaec95289d4cc6b2c7cc2b8317a489c19e95 (diff) |
fixes #2568 (При изменении числа бэкапов, лишние остаются)
Diffstat (limited to 'plugins/PluginUpdater')
-rw-r--r-- | plugins/PluginUpdater/src/DlgListNew.cpp | 2 | ||||
-rw-r--r-- | plugins/PluginUpdater/src/DlgUpdate.cpp | 4 | ||||
-rw-r--r-- | plugins/PluginUpdater/src/Options.cpp | 2 | ||||
-rw-r--r-- | plugins/PluginUpdater/src/Utils.cpp | 27 | ||||
-rw-r--r-- | plugins/PluginUpdater/src/stdafx.h | 5 | ||||
-rw-r--r-- | plugins/PluginUpdater/src/version.h | 2 |
6 files changed, 29 insertions, 13 deletions
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 @@ -444,6 +444,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 <stdver.h> |