more clean-up:

* removed ResetInputScript()
 * don't edit g_sdata.script for CreateProcess
 * use SetScript in LoadMRUFile
 * proper and clear allocation of g_sdata.compile_command in CompileNSISScript()


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5047 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2007-04-10 21:07:21 +00:00
parent 3a657559b0
commit 845566790d
3 changed files with 35 additions and 30 deletions

View file

@ -268,24 +268,40 @@ void CompileNSISScript() {
DragAcceptFiles(g_sdata.hwnd,TRUE);
return;
}
if (!g_sdata.appended) {
if (!g_sdata.compile_command) {
if (s) GlobalFree(s);
char *symbols = BuildSymbols();
char compressor[40];
if(lstrlen(g_sdata.compressor_name)) {
wsprintf(compressor,"/X\"SetCompressor /FINAL %s\" ",g_sdata.compressor_name);
wsprintf(compressor,"/X\"SetCompressor /FINAL %s\"",g_sdata.compressor_name);
}
else {
lstrcpy(compressor,"");
}
s = (char *)GlobalAlloc(GPTR, lstrlen(g_sdata.script)+lstrlen(symbols)+lstrlen(compressor)+sizeof(EXENAME)+sizeof(" /NOTIFYHWND ")+23);
wsprintf(s,"%s %s%s /NOTIFYHWND %d %s -- \"%s\"",EXENAME,compressor,symbols,g_sdata.hwnd,g_sdata.script_cmd_args,g_sdata.script);
g_sdata.compile_command = (char *) GlobalAlloc(
GPTR,
/* makensis.exe */ sizeof(EXENAME) + /* space */ 1 +
/* script path */ lstrlen(g_sdata.script) + /* space */ 1 +
/* script cmd args */ lstrlen(g_sdata.script_cmd_args) + /* space */ 1 +
/* defines /Dblah=... */ lstrlen(symbols) + /* space */ 1 +
/* /XSetCompressor... */ lstrlen(compressor) + /* space */ 1 +
/* /NOTTIFYHWND + HWND */ sizeof("/NOTIFYHWND -4294967295") + /* space */ 1
);
wsprintf(
g_sdata.compile_command,
"%s %s %s /NOTIFYHWND %d %s -- \"%s\"",
EXENAME,
compressor,
symbols,
g_sdata.hwnd,
g_sdata.script_cmd_args,
g_sdata.script
);
GlobalFree(symbols);
if (g_sdata.script) GlobalFree(g_sdata.script);
g_sdata.script = s;
g_sdata.appended = TRUE;
}
GlobalFree(g_sdata.input_script);
GlobalFree(g_sdata.output_exe);
@ -507,10 +523,13 @@ void SaveSymbolSet(char *name, char **symbols)
}
void ResetObjects() {
g_sdata.appended = FALSE;
if (g_sdata.compile_command)
GlobalFree(g_sdata.compile_command);
g_sdata.warnings = FALSE;
g_sdata.retcode = -1;
g_sdata.thread = NULL;
g_sdata.compile_command = NULL;
}
void ResetSymbols() {
@ -810,8 +829,7 @@ void BuildMRUMenus()
void LoadMRUFile(int position)
{
if (!g_sdata.thread && position >=0 && position < MRU_LIST_SIZE && g_mru_list[position][0]) {
g_sdata.script = (char *)GlobalAlloc(GPTR,lstrlen(g_mru_list[position])+3);
wsprintf(g_sdata.script,"\"%s\"",g_mru_list[position]);
SetScript(g_mru_list[position]);
if(IsValidFile(g_mru_list[position])) {
PushMRUFile(g_mru_list[position]);
}