From 20e2277078c397533e69134fdfe8bd4be0b897a6 Mon Sep 17 00:00:00 2001 From: kichik Date: Thu, 21 Nov 2002 22:59:11 +0000 Subject: [PATCH] Fixes with uninstall plugins and custom pages git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1810 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/build.cpp | 17 +++++++++-------- Source/exehead/Ui.c | 6 +----- Source/script.cpp | 1 + 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Source/build.cpp b/Source/build.cpp index 30cd171d..235330dc 100644 --- a/Source/build.cpp +++ b/Source/build.cpp @@ -639,6 +639,7 @@ int CEXEBuild::add_function(const char *funname) if (!strnicmp(funname,"un.",3)) { + SCRIPT_MSG("setting uninstall mode to true\n"); set_uninstall_mode(1); } @@ -1173,7 +1174,8 @@ int CEXEBuild::write_output(void) #ifdef NSIS_CONFIG_PLUGIN_SUPPORT // Added by Amir Szekely 9th August 2002 int err=add_plugins_dir_initializer(); - if (err != PS_OK) return err; + if (err != PS_OK) + return err; #endif //NSIS_CONFIG_PLUGIN_SUPPORT // Added by Amir Szekely 3rd August 2002 @@ -1444,7 +1446,7 @@ int CEXEBuild::write_output(void) page *p=(page *) ubuild_pages.get(); int noinstlogback=0; for (int i=0; iback=2; // 2 - enabled, 1 - disabled, 0 - invisible + if (i) p->back=SW_SHOWNA|2; // 2 - enabled, SW_SHOWNA - visible, 0 - invisible (or'ed) else p->back=0; p->next=LANG_BTN_NEXT; @@ -1455,7 +1457,7 @@ int CEXEBuild::write_output(void) p->next=LANG_BTN_UNINST; } if (p->id==NSIS_PAGE_INSTFILES || p->id==NSIS_PAGE_COMPLETED) - p->back=noinstlogback?0:1; + p->back=noinstlogback?0:SW_SHOWNA; } (--p)->next=LANG_BTN_CLOSE; if (p->id==NSIS_PAGE_COMPLETED) (--p)->next=LANG_BTN_CLOSE; @@ -2188,19 +2190,19 @@ void CEXEBuild::build_plugin_table(void) int CEXEBuild::add_plugins_dir_initializer(void) { - if (!plugin_used) return PS_OK; + if (!plugin_used && !uninst_plugin_used) return PS_OK; SCRIPT_MSG("Adding plug-ins initializing function... "); - bool uninstall = false; + bool uninstall = !plugin_used; int ret; entry ent; int zero_offset; - ret=add_function("Initialize_____Plugins"); - if (ret != PS_OK) return ret; again: + ret=add_function(uninstall?"un.Initialize_____Plugins":"Initialize_____Plugins"); + if (ret != PS_OK) return ret; // SetDetailsPrint none ent.which=EW_UPDATETEXT; ent.offsets[1]=4; // none @@ -2257,7 +2259,6 @@ again: if (ret != PS_OK) return ret; if (uninst_plugin_used && !uninstall) { - add_function("un.Initialize_____Plugins"); uninstall = true; goto again; } diff --git a/Source/exehead/Ui.c b/Source/exehead/Ui.c index 6116808f..f4c2dfa4 100644 --- a/Source/exehead/Ui.c +++ b/Source/exehead/Ui.c @@ -582,11 +582,7 @@ nextPage: { outernotify(1); } - if ( -#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT - !g_is_uninstaller && -#endif - (id == IDC_BACK && m_page>0)) + if (id == IDC_BACK && m_page>0) { outernotify(-1); } diff --git a/Source/script.cpp b/Source/script.cpp index 0f1bce82..f7f28b0e 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -706,6 +706,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char ubuild_pages.add(&p,sizeof(page)); build_uninst.common.num_pages++; } + SCRIPT_MSG("number of pages: %d\n", build_uninst.common.num_pages); } return PS_OK; #else