From b00c69290f7a57a0ea93a1519fad91d8bc46360c Mon Sep 17 00:00:00 2001 From: kichik Date: Sat, 3 Mar 2007 14:18:20 +0000 Subject: [PATCH] size optimization - no need for both GetEnvironmentVariable and ExpandEnvironmentStrings git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4970 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/exec.c | 18 ++++-------------- Source/script.cpp | 6 +++++- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 8ff84993..57cd0fd3 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -618,21 +618,11 @@ static int NSISCALL ExecuteEntry(entry *entry_) { char *p=var0; char *buf0=GetStringFromParm(0x01); - if (parm2) + if (!ExpandEnvironmentStrings(buf0,p,NSIS_MAX_STRLEN) + || (parm2 && !lstrcmp(buf0, p))) { - if (!GetEnvironmentVariable(buf0,p,NSIS_MAX_STRLEN)) - { - exec_error++; - *p=0; - } - } - else - { - if (!ExpandEnvironmentStrings(buf0,p,NSIS_MAX_STRLEN)) - { - exec_error++; - *p=0; - } + exec_error++; + *p=0; } p[NSIS_MAX_STRLEN-1]=0; } diff --git a/Source/script.cpp b/Source/script.cpp index 0cbbb9cc..123b9fac 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -5239,7 +5239,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line) ent.which=EW_READENVSTR; ent.offsets[0]=GetUserVarIndex(line, 1); { - ent.offsets[1]=add_string(line.gettoken_str(2)); + char str[NSIS_MAX_STRLEN]; + strcpy(str, "%"); + strcat(str, line.gettoken_str(2)); + strcat(str, "%"); + ent.offsets[1]=add_string(str); if (ent.offsets[0] < 0 || strlen(line.gettoken_str(2))<1) PRINTHELP() } ent.offsets[2]=1;