allocate g_sdata.script_cmd_args as GMEM_MOVEABLE

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5100 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2007-04-18 18:19:02 +00:00
parent c72c1d9520
commit 2263524b66
3 changed files with 15 additions and 8 deletions

View file

@ -94,7 +94,7 @@ void SetScript(const char *script, bool clearArgs /*= true*/)
GlobalFree(g_sdata.script_cmd_args); GlobalFree(g_sdata.script_cmd_args);
} }
g_sdata.script_cmd_args = (char *) GlobalAlloc(GPTR, 1); g_sdata.script_cmd_args = GlobalAlloc(GHND, 1);
} }
g_sdata.script = (char *) GlobalAlloc(GPTR, lstrlen(script) + 1); g_sdata.script = (char *) GlobalAlloc(GPTR, lstrlen(script) + 1);
@ -103,13 +103,17 @@ void SetScript(const char *script, bool clearArgs /*= true*/)
void AddScriptCmdArgs(const char *arg) void AddScriptCmdArgs(const char *arg)
{ {
g_sdata.script_cmd_args = (char *) GlobalReAlloc(g_sdata.script_cmd_args, g_sdata.script_cmd_args = GlobalReAlloc(g_sdata.script_cmd_args,
GlobalSize(g_sdata.script_cmd_args) + lstrlen(arg) + 2 /* quotes */ + 1 /* space */, GlobalSize(g_sdata.script_cmd_args) + lstrlen(arg) + 2 /* quotes */ + 1 /* space */,
0); 0);
lstrcat(g_sdata.script_cmd_args, " \""); char *args = (char *) GlobalLock(g_sdata.script_cmd_args);
lstrcat(g_sdata.script_cmd_args, arg);
lstrcat(g_sdata.script_cmd_args, "\""); lstrcat(args, " \"");
lstrcat(args, arg);
lstrcat(args, "\"");
GlobalUnlock(args);
} }
void ProcessCommandLine() void ProcessCommandLine()

View file

@ -165,7 +165,7 @@ void SaveMRUList();
typedef struct NSISScriptData { typedef struct NSISScriptData {
char *script; char *script;
char *script_cmd_args; HGLOBAL script_cmd_args;
char *compile_command; char *compile_command;
char *output_exe; char *output_exe;
char *input_script; char *input_script;

View file

@ -280,11 +280,13 @@ void CompileNSISScript() {
lstrcpy(compressor,""); lstrcpy(compressor,"");
} }
char *args = (char *) GlobalLock(g_sdata.script_cmd_args);
g_sdata.compile_command = (char *) GlobalAlloc( g_sdata.compile_command = (char *) GlobalAlloc(
GPTR, GPTR,
/* makensis.exe */ sizeof(EXENAME) + /* space */ 1 + /* makensis.exe */ sizeof(EXENAME) + /* space */ 1 +
/* script path */ lstrlen(g_sdata.script) + /* space */ 1 + /* script path */ lstrlen(g_sdata.script) + /* space */ 1 +
/* script cmd args */ lstrlen(g_sdata.script_cmd_args) + /* space */ 1 + /* script cmd args */ lstrlen(args) + /* space */ 1 +
/* defines /Dblah=... */ lstrlen(symbols) + /* space */ 1 + /* defines /Dblah=... */ lstrlen(symbols) + /* space */ 1 +
/* /XSetCompressor... */ lstrlen(compressor) + /* space */ 1 + /* /XSetCompressor... */ lstrlen(compressor) + /* space */ 1 +
/* /NOTTIFYHWND + HWND */ sizeof("/NOTIFYHWND -4294967295") + /* space */ 1 /* /NOTTIFYHWND + HWND */ sizeof("/NOTIFYHWND -4294967295") + /* space */ 1
@ -297,10 +299,11 @@ void CompileNSISScript() {
compressor, compressor,
symbols, symbols,
g_sdata.hwnd, g_sdata.hwnd,
g_sdata.script_cmd_args, args,
g_sdata.script g_sdata.script
); );
GlobalUnlock(args);
GlobalFree(symbols); GlobalFree(symbols);
} }
GlobalFree(g_sdata.input_script); GlobalFree(g_sdata.input_script);