summaryrefslogtreecommitdiff
path: root/plugins/PluginUpdater
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2020-09-14 18:36:32 +0300
committerGeorge Hazan <ghazan@miranda.im>2020-09-14 18:36:32 +0300
commitba8b1153a5e43780d1d6ad59e5c2a1fcfcfdf116 (patch)
treeef63686940497f3cde12328db17a6da9083fc013 /plugins/PluginUpdater
parent45caeaec95289d4cc6b2c7cc2b8317a489c19e95 (diff)
fixes #2568 (При изменении числа бэкапов, лишние остаются)
Diffstat (limited to 'plugins/PluginUpdater')
-rw-r--r--plugins/PluginUpdater/src/DlgListNew.cpp2
-rw-r--r--plugins/PluginUpdater/src/DlgUpdate.cpp4
-rw-r--r--plugins/PluginUpdater/src/Options.cpp2
-rw-r--r--plugins/PluginUpdater/src/Utils.cpp27
-rw-r--r--plugins/PluginUpdater/src/stdafx.h5
-rw-r--r--plugins/PluginUpdater/src/version.h2
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>