From 7ff20362f58bb2cbdf64545b375090e02a4ae504 Mon Sep 17 00:00:00 2001
From: George Hazan <ghazan@miranda.im>
Date: Wed, 20 Apr 2022 14:18:00 +0300
Subject: more fixes for #3066

---
 plugins/PluginUpdater/src/DlgUpdate.cpp     | 20 ++------------------
 plugins/PluginUpdater/src/Options.cpp       |  6 +++---
 plugins/PluginUpdater/src/PluginUpdater.cpp |  5 +++--
 plugins/PluginUpdater/src/Utils.cpp         |  7 ++++---
 plugins/PluginUpdater/src/stdafx.h          |  4 +---
 5 files changed, 13 insertions(+), 29 deletions(-)

(limited to 'plugins')

diff --git a/plugins/PluginUpdater/src/DlgUpdate.cpp b/plugins/PluginUpdater/src/DlgUpdate.cpp
index 2fa5769cfd..ff79f7356f 100644
--- a/plugins/PluginUpdater/src/DlgUpdate.cpp
+++ b/plugins/PluginUpdater/src/DlgUpdate.cpp
@@ -122,21 +122,6 @@ LBL_Error:
 
 			if (g_plugin.bBackup)
 				CallService(MS_AB_BACKUP, 0, 0);
-
-			if (g_plugin.bChangePlatform) {
-				TFileName mirandaPath;
-				GetModuleFileName(nullptr, mirandaPath, _countof(mirandaPath));
-				g_plugin.setWString("OldBin2", mirandaPath);
-
-				g_plugin.delSetting(DB_SETTING_CHANGEPLATFORM);
-			}
-			else {
-				ptrW oldbin(g_plugin.getWStringA("OldBin2"));
-				if (oldbin) {
-					PU::SafeDeleteFile(oldbin);
-					g_plugin.delSetting("OldBin2");
-				}
-			}
 		}
 
 		// 5) Prepare Restart
@@ -447,9 +432,8 @@ LBL_Error:
 	Skin_PlaySound("updatecompleted");
 
 	g_plugin.bForceRedownload = false;
-	g_plugin.bChangePlatform = false;
-	g_plugin.delSetting(DB_SETTING_CHANGEPLATFORM);
-	g_plugin.setByte(DB_SETTING_NEED_RESTART, 1);
+	g_plugin.bNeedRestart = true;
+	g_plugin.bChangePlatform.Delete();
 
 	if (g_plugin.bBackup)
 		CallService(MS_AB_BACKUP, 0, 0);
diff --git a/plugins/PluginUpdater/src/Options.cpp b/plugins/PluginUpdater/src/Options.cpp
index c5d0b52def..77ba888162 100644
--- a/plugins/PluginUpdater/src/Options.cpp
+++ b/plugins/PluginUpdater/src/Options.cpp
@@ -146,7 +146,7 @@ public:
 	{
 		chkPlatform.SetState(g_plugin.bChangePlatform);
 
-		if (g_plugin.getByte(DB_SETTING_NEED_RESTART, 0))
+		if (g_plugin.bNeedRestart)
 			ShowWindow(GetDlgItem(m_hwnd, IDC_NEEDRESTARTLABEL), SW_SHOW);
 
 		spinPeriod.SetPosition(g_plugin.iPeriod);
@@ -254,9 +254,9 @@ public:
 
 		if (chkPlatform.GetState()) {
 			g_plugin.bForceRedownload = bStartUpdate = true;
-			g_plugin.setByte(DB_SETTING_CHANGEPLATFORM, g_plugin.bChangePlatform = 1);
+			g_plugin.bChangePlatform = true;
 		}
-		else g_plugin.setByte(DB_SETTING_CHANGEPLATFORM, g_plugin.bChangePlatform = 0);
+		else g_plugin.bChangePlatform = false;
 
 		// if user selected update channel without symbols, remove PDBs
 		if (bNoSymbols) {
diff --git a/plugins/PluginUpdater/src/PluginUpdater.cpp b/plugins/PluginUpdater/src/PluginUpdater.cpp
index cde00d9eb2..71d9992092 100644
--- a/plugins/PluginUpdater/src/PluginUpdater.cpp
+++ b/plugins/PluginUpdater/src/PluginUpdater.cpp
@@ -52,9 +52,10 @@ CMPlugin::CMPlugin() :
 	bBackup(MODULENAME, "Backup", false),
 	bSilentMode(MODULENAME, "SilentMode", false),
 	bAutoRestart(MODULENAME, "AutoRestart", false),
+	bNeedRestart(MODULENAME, "NeedRestart", false),
 	bOnlyOnceADay(MODULENAME, "OnlyOnceADay", true),
 	bUpdateOnPeriod(MODULENAME, "UpdateOnPeriod", false),
-	bChangePlatform(MODULENAME, DB_SETTING_CHANGEPLATFORM, false),
+	bChangePlatform(MODULENAME, "ChangePlatform", false),
 	bUpdateOnStartup(MODULENAME, "UpdateOnStartup", true),
 
 	// other settings
@@ -91,7 +92,7 @@ int CMPlugin::Load()
 	// just to be sure that no garbage remained after restart
 	DeleteFileW(InvertMirandaPlatform());
 
-	g_plugin.setByte(DB_SETTING_NEED_RESTART, 0);
+	g_plugin.bNeedRestart = false;
 
 	uint32_t dwLen = GetTempPath(_countof(g_wszTempPath), g_wszTempPath);
 	if (g_wszTempPath[dwLen-1] == '\\')
diff --git a/plugins/PluginUpdater/src/Utils.cpp b/plugins/PluginUpdater/src/Utils.cpp
index 298c46c0f9..f448eabc11 100644
--- a/plugins/PluginUpdater/src/Utils.cpp
+++ b/plugins/PluginUpdater/src/Utils.cpp
@@ -338,8 +338,9 @@ MFilePath InvertMirandaPlatform()
 void DoRestart()
 {
 	BOOL bRestartCurrentProfile = g_plugin.getBool("RestartCurrentProfile", true);
-	if (g_plugin.bChangePlatform)
+	if (g_plugin.bChangePlatform) {
 		CallServiceSync(MS_SYSTEM_RESTART, bRestartCurrentProfile, (LPARAM)InvertMirandaPlatform().c_str());
-	else
-		CallServiceSync(MS_SYSTEM_RESTART, bRestartCurrentProfile);
+		g_plugin.bChangePlatform.Delete();
+	}
+	else CallServiceSync(MS_SYSTEM_RESTART, bRestartCurrentProfile);
 }
diff --git a/plugins/PluginUpdater/src/stdafx.h b/plugins/PluginUpdater/src/stdafx.h
index b7085723f8..56ba6951ff 100644
--- a/plugins/PluginUpdater/src/stdafx.h
+++ b/plugins/PluginUpdater/src/stdafx.h
@@ -134,9 +134,7 @@ enum
 
 #define DB_SETTING_UPDATE_MODE           "UpdateMode"
 #define DB_SETTING_UPDATE_URL            "UpdateURL"
-#define DB_SETTING_NEED_RESTART          "NeedRestart"
 #define DB_SETTING_DONT_SWITCH_TO_STABLE "DontSwitchToStable"
-#define DB_SETTING_CHANGEPLATFORM        "ChangePlatform"
 
 #define DB_MODULE_FILES     MODULENAME "Files"
 #define DB_MODULE_NEW_FILES MODULENAME "NewFiles"
@@ -181,7 +179,7 @@ struct CMPlugin : public PLUGIN<CMPlugin>
 	bool bForceRedownload = false, bSilent; // not a db options
 
 	// common options
-	CMOption<bool> bUpdateOnStartup, bUpdateOnPeriod, bOnlyOnceADay, bSilentMode, bBackup, bChangePlatform, bAutoRestart;
+	CMOption<bool> bUpdateOnStartup, bUpdateOnPeriod, bOnlyOnceADay, bSilentMode, bBackup, bChangePlatform, bAutoRestart, bNeedRestart;
 	CMOption<int>  iPeriod, iPeriodMeasure, iNumberBackups;
 	CMOption<uint32_t> dwLastUpdate;
 
-- 
cgit v1.2.3