- Fixed bug #858010 - defines were read wrongly into the settings dialog (`i' wasn't reset to 0)

- Made Compile and Run execute the installer even if there were warnings


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3287 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-12-17 16:13:04 +00:00
parent da92941bfc
commit 5f58389c12
2 changed files with 222 additions and 211 deletions

View file

@ -120,7 +120,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
int n;
g_sdata.script_alloced = true;
g_sdata.script = (char *)GlobalAlloc(GPTR,argSpaceSize + 2*(argc-1)*sizeof(char)+1);
g_sdata.script = (char *) GlobalAlloc(GPTR,argSpaceSize+2*(argc-1)*sizeof(char)+1);
lstrcpy(g_sdata.script,"");
for(i=1; i<argc; i++) {
if(!lstrncmpi(argv[i],"/XSetCompressor ",lstrlen("/XSetCompressor "))) {
@ -151,8 +151,9 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
g_sdata.script[n-1] = '\0';
}
PushMRUFile(argv[argc-1]);
LocalFree(argv);
}
if (argSpaceSize)
GlobalFree(argv);
if(g_sdata.compressor == (NCOMPRESSOR)-1) {
SetCompressor(g_sdata.default_compressor);
@ -338,15 +339,15 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
}
}
EnableItems(g_sdata.hwnd);
if (g_sdata.retcode==0) {
if (!g_sdata.retcode) {
MessageBeep(MB_ICONASTERISK);
if (g_sdata.warnings) SetTitle(g_sdata.hwnd,"Finished with Warnings");
else {
if (g_sdata.warnings)
SetTitle(g_sdata.hwnd,"Finished with Warnings");
else
SetTitle(g_sdata.hwnd,"Finished Sucessfully");
// Added by Darren Owen (DrO) on 1/10/2003
if(g_sdata.recompile_test)
PostMessage(g_sdata.hwnd, WM_COMMAND, LOWORD(IDM_TEST), 0);
}
PostMessage(g_sdata.hwnd, WM_COMMAND, LOWORD(IDC_TEST), 0);
}
else {
MessageBeep(MB_ICONEXCLAMATION);
@ -798,16 +799,17 @@ BOOL CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
switch(msg) {
case WM_INITDIALOG:
{
int i=0;
int i = 0;
LRESULT rv;
for(i=(int)COMPRESSOR_SCRIPT; i<= (int)COMPRESSOR_BEST; i++) {
for(i = (int)COMPRESSOR_SCRIPT; i <= (int)COMPRESSOR_BEST; i++) {
rv = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_ADDSTRING, 0, (LPARAM)compressor_display_names[i]);
}
rv = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_SETCURSEL, (WPARAM)g_sdata.default_compressor, (LPARAM)0);
if(g_sdata.defines) {
while(g_sdata.defines[i]) {
i = 0;
if (g_sdata.defines) {
while (g_sdata.defines[i]) {
SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_ADDSTRING, 0, (LPARAM)g_sdata.defines[i]);
i++;
}
@ -828,7 +830,7 @@ BOOL CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
int n = SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_GETCOUNT, 0, 0);
if(n > 0) {
g_sdata.defines = (char **)GlobalAlloc(GPTR, (n+1)*sizeof(char *));
for(int i=0; i<n; i++) {
for (int i = 0; i < n; i++) {
int len = SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_GETTEXTLEN, (WPARAM)i, 0);
g_sdata.defines[i] = (char *)GlobalAlloc(GPTR, (len+1)*sizeof(char));
SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_GETTEXT, (WPARAM)i, (LPARAM)g_sdata.defines[i]);
@ -837,7 +839,7 @@ BOOL CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
}
n = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
if(n >= (int)COMPRESSOR_SCRIPT && n <= (int)COMPRESSOR_BEST) {
if (n >= (int)COMPRESSOR_SCRIPT && n <= (int)COMPRESSOR_BEST) {
g_sdata.default_compressor = (NCOMPRESSOR)n;
}
else {

View file

@ -52,7 +52,10 @@ int SetArgv(char *cmdLine, int *argc, char ***argv)
}
argSpaceSize = size * sizeof(char *) + lstrlen(cmdLine) + 1;
argSpace = (char *) LocalAlloc(GMEM_FIXED, argSpaceSize);
argSpace = (char *) GlobalAlloc(GMEM_FIXED, argSpaceSize);
if (!argSpace)
return 0;
*argv = (char **) argSpace;
argSpace += size * sizeof(char *);
size--;
@ -332,16 +335,22 @@ void RestoreDefines()
if (RegCreateKey(hKey,REGDEFSUBKEY,&hSubKey) == ERROR_SUCCESS) {
char buf[8];
g_sdata.defines = (char **)GlobalAlloc(GPTR, (n+1)*sizeof(char *));
for(int i=0; i<n; i++) {
if (g_sdata.defines)
{
for(int i = 0; i < n; i++) {
wsprintf(buf,"%d",i);
l = 0;
if ((RegQueryValueEx(hSubKey,buf,NULL,&t,NULL,&l)==ERROR_SUCCESS)&&(t == REG_SZ)) {
l++;
g_sdata.defines[i] = (char *)GlobalAlloc(GPTR, l*sizeof(char));
if (g_sdata.defines[i])
RegQueryValueEx(hSubKey,buf,NULL,&t,(unsigned char*)g_sdata.defines[i],&l);
else
break;
}
}
g_sdata.defines[n] = NULL;
}
RegCloseKey(hSubKey);
}
}
@ -362,7 +371,7 @@ void SaveDefines()
char buf[8];
while(g_sdata.defines[n]) {
wsprintf(buf,"%d",n);
RegSetValueEx(hSubKey,buf,0,REG_SZ,(CONST BYTE *)g_sdata.defines[n],lstrlen(g_sdata.defines[n]));
RegSetValueEx(hSubKey,buf,0,REG_SZ,(CONST BYTE *)g_sdata.defines[n],lstrlen(g_sdata.defines[n])+1);
n++;
}
RegCloseKey(hSubKey);
@ -382,7 +391,7 @@ void ResetObjects() {
void ResetDefines() {
if(g_sdata.defines) {
int i=0;
int i = 0;
while(g_sdata.defines[i]) {
GlobalFree(g_sdata.defines[i]);
i++;
@ -520,7 +529,7 @@ char* BuildDefines()
}
else {
buf = (char *)GlobalAlloc(GPTR, sizeof(char));
lstrcpy(buf,"");
buf[0] = NULL;
}
return buf;