From 42a72140cd686cca1c4bd875f76eeeaac2fc3856 Mon Sep 17 00:00:00 2001 From: kichik Date: Wed, 26 Feb 2003 15:28:55 +0000 Subject: [PATCH] - b2 version number - bug with commands starting with ! and ending with \ in if blocks fixed git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2216 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/makenssi.cpp | 2 +- Source/script.cpp | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Source/makenssi.cpp b/Source/makenssi.cpp index b5174638..9cd31941 100644 --- a/Source/makenssi.cpp +++ b/Source/makenssi.cpp @@ -1,4 +1,4 @@ -const char *NSIS_VERSION="v2.0b2 (CVS)"; +const char *NSIS_VERSION="v2.0b2"; /* Nullsoft "SuperPimp" Installation System - makensis.cpp - installer compiler code diff --git a/Source/script.cpp b/Source/script.cpp index 3674e826..e87d6a5a 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -49,6 +49,7 @@ int CEXEBuild::process_script(FILE *fp, char *curfilename, int *lineptr) int CEXEBuild::doParse(const char *str, FILE *fp, const char *curfilename, int *lineptr) { static int ignore; + static int last_line_had_slash; static int ignored_if_count; static int wait_for_endif; @@ -58,14 +59,18 @@ int CEXEBuild::doParse(const char *str, FILE *fp, const char *curfilename, int * while (*str == ' ' || *str == '\t') str++; // if ignoring, ignore all lines that don't begin with !. - if (ignore && *str!='!') return PS_OK; + if (ignore && *str!='!' && !last_line_had_slash) return PS_OK; if (m_linebuild.getlen()>1) m_linebuild.resize(m_linebuild.getlen()-2); m_linebuild.add(str,strlen(str)+1); // remove trailing slash and null - if (str[0] && CharPrev(str,str+strlen(str))[0] == '\\') return PS_OK; + if (str[0] && CharPrev(str,str+strlen(str))[0] == '\\') { + last_line_had_slash = 1; + return PS_OK; + } + else last_line_had_slash = 0; res=line.parse((char*)m_linebuild.get(),!strnicmp(str,"!define",7)); @@ -128,8 +133,9 @@ parse_again: if (tkid == TOK_P_ELSE) { - if (ignored_if_count) + if (ignored_if_count) { return PS_OK; + } if (line.getnumtokens() == 1) { ignore=!ignore; @@ -1304,7 +1310,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char if (k == -1) PRINTHELP() SCRIPT_MSG("XPStyle: %s\n", line.gettoken_str(1)); init_res_editor(); - char* szXPManifest = k ? 0 : "Nullsoft Install System v2.0b2 (CVS)"; + char* szXPManifest = k ? 0 : "Nullsoft Install System v2.0b2"; res_editor->UpdateResource(MAKEINTRESOURCE(24), MAKEINTRESOURCE(1), MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (unsigned char*)szXPManifest, k ? 0 : lstrlen(szXPManifest)); } catch (exception& err) {