From 5e32d0504a8585253aceb9a595b32c813347a05f Mon Sep 17 00:00:00 2001 From: rainwater Date: Sat, 31 Aug 2002 14:30:33 +0000 Subject: [PATCH] small makensisw fixes for possible crash git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@848 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/Makensisw/Readme.txt | 4 +++ Contrib/Makensisw/makensisw.dsp | 2 +- Contrib/Makensisw/utils.cpp | 47 +++++++++++++++++---------------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/Contrib/Makensisw/Readme.txt b/Contrib/Makensisw/Readme.txt index c6c302b6..dc1b6ec2 100644 --- a/Contrib/Makensisw/Readme.txt +++ b/Contrib/Makensisw/Readme.txt @@ -134,6 +134,10 @@ Version History - Added sound for sucessfull compilations - Update home page and documentation menu items to Sourceforge page +1.8 + - Contents of low window are now streamed in + - Empty log window check (to prevent random crashes) + Copyright Information --------------------- diff --git a/Contrib/Makensisw/makensisw.dsp b/Contrib/Makensisw/makensisw.dsp index ada70e71..d22a6b19 100644 --- a/Contrib/Makensisw/makensisw.dsp +++ b/Contrib/Makensisw/makensisw.dsp @@ -43,7 +43,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D RELEASE=1.7 /FD /c +# ADD CPP /nologo /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D RELEASE=1.8 /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index 0221b093..c0da9e41 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -85,31 +85,32 @@ void DisableItems(HWND hwnd) { void EnableItems(HWND hwnd) { int len=SendDlgItemMessage(hwnd,IDC_LOGWIN,WM_GETTEXTLENGTH,0,0); - char *existing_text=(char*)GlobalAlloc(GPTR,len); - if (!existing_text) return; - existing_text[0]=0; - GetDlgItemText(hwnd, IDC_LOGWIN, existing_text, len); - char *p=existing_text; - char *p2; - char *p3; - if ((p2=my_strstr(p,"\r\nOutput: \""))) { - while (*p2 != '\"') p2++; - p2++; - if ((p3=my_strstr(p2,"\"\r\n")) && p3 < my_strstr(p2,"\r\n")) { - *p3=0; - lstrcpy(g_output_exe,p2); + if (len>0) { + char *existing_text=(char*)GlobalAlloc(GPTR,len+1); + if (!existing_text) return; + existing_text[0]=0; + GetDlgItemText(hwnd, IDC_LOGWIN, existing_text, len); + char *p=existing_text; + char *p2; + char *p3; + if ((p2=my_strstr(p,"\r\nOutput: \""))) { + while (*p2 != '\"') p2++; + p2++; + if ((p3=my_strstr(p2,"\"\r\n")) && p3 < my_strstr(p2,"\r\n")) { + *p3=0; + lstrcpy(g_output_exe,p2); + } + } + p=my_strstr(existing_text,"\r\nProcessing script file: \""); + if (p) { + while (*p++ != '"'); + char *p2=my_strstr(p,"\r\n"); + lstrcpyn(g_input_script,p,p2-p); + } + if (my_strstr(existing_text, " warning:") || my_strstr(existing_text, " warnings:")) { + g_warnings = TRUE; } } - p=my_strstr(existing_text,"\r\nProcessing script file: \""); - if (p) { - while (*p++ != '"'); - char *p2=my_strstr(p,"\r\n"); - lstrcpyn(g_input_script,p,p2-p); - } - if (my_strstr(existing_text, " warning:") || my_strstr(existing_text, " warnings:")) { - g_warnings = TRUE; - } - HMENU m = GetMenu(hwnd); if (g_output_exe[0]) { EnableWindow(GetDlgItem(hwnd,IDC_TEST),1);