From d2e565e55ee8f1051da57e539e40acc02a18ac90 Mon Sep 17 00:00:00 2001 From: kichik Date: Tue, 4 Mar 2003 20:33:07 +0000 Subject: [PATCH] - Fixed more problems with !if[n]def/!else - Saved another 10 bytes :) git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2237 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/exec.c | 5 +---- Source/script.cpp | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 2bd57294..c7376802 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -200,10 +200,6 @@ static int NSISCALL ExecuteEntry(entry *entry_) Sleep(x); } return 0; - case EW_HIDEWINDOW: - log_printf("HideWindow"); - ShowWindow(g_hwnd,SW_HIDE); - return 0; case EW_BRINGTOFRONT: log_printf("BringToFront"); ShowWindow(g_hwnd,SW_SHOW); @@ -798,6 +794,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) } return 0; case EW_SHOWWINDOW: + if (parm2) log_printf("HideWindow"); ShowWindow((HWND)process_string_fromparm_toint(0),process_string_fromparm_toint(1)); return 0; #endif//NSIS_CONFIG_ENHANCEDUI_SUPPORT diff --git a/Source/script.cpp b/Source/script.cpp index 4e0b8319..f4fcda18 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -138,8 +138,14 @@ parse_again: } if (line.getnumtokens() == 1) { - ignore=!ignore; - return PS_OK; + if (!wait_for_endif) { + ignore=!ignore; + return PS_OK; + } + else { + ignore=1; + return PS_OK; + } } line.eattoken(); @@ -2739,11 +2745,19 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char ent.offsets[1]=add_string(line.gettoken_str(2)); SCRIPT_MSG("ShowWindow: handle=%s show state=%s\n",line.gettoken_str(1),line.gettoken_str(2)); return add_entry(&ent); + case TOK_HIDEWINDOW: + ent.which=EW_SHOWWINDOW; + ent.offsets[0]=add_string("$HWNDPARENT"); + ent.offsets[1]=add_string("0"/*SW_HIDE*/); + ent.offsets[2]=1; + SCRIPT_MSG("HideWindow\n"); + return add_entry(&ent); #else//NSIS_CONFIG_ENHANCEDUI_SUPPORT case TOK_GETDLGITEM: case TOK_SETSTATICBKCOLOR: case TOK_SHOWWINDOW: case TOK_CREATEFONT: + case TOK_HIDEWINDOW: ERROR_MSG("Error: %s specified, NSIS_CONFIG_ENHANCEDUI_SUPPORT not defined.\n", line.gettoken_str(0)); return PS_ERROR; #endif//NSIS_CONFIG_ENHANCEDUI_SUPPORT @@ -2755,6 +2769,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char case TOK_SETSTATICBKCOLOR: case TOK_SHOWWINDOW: case TOK_CREATEFONT: + case TOK_HIDEWINDOW: ERROR_MSG("Error: %s specified, NSIS_SUPPORT_HWNDS not defined.\n", line.gettoken_str(0)); return PS_ERROR; #endif//!NSIS_SUPPORT_HWNDS @@ -2969,10 +2984,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char ent.which=EW_BRINGTOFRONT; SCRIPT_MSG("BringToFront\n"); return add_entry(&ent); - case TOK_HIDEWINDOW: - ent.which=EW_HIDEWINDOW; - SCRIPT_MSG("HideWindow\n"); - return add_entry(&ent); case TOK_IFFILEEXISTS: ent.which=EW_IFFILEEXISTS; ent.offsets[0] = add_string(line.gettoken_str(1));