From 499fa0e764d65b69bc8db581c4a852a7086a1f88 Mon Sep 17 00:00:00 2001 From: kichik Date: Sat, 8 May 2004 16:07:22 +0000 Subject: [PATCH] fixed a bug which prevented enabling the next button from the leave function of InstallOptions pages git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3544 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/InstallOptions/InstallerOptions.cpp | 6 +----- Plugins/InstallOptions.dll | Bin 12288 -> 12288 bytes Source/exehead/Ui.c | 17 +++++++++-------- Source/exehead/exec.c | 3 +-- Source/exehead/util.c | 3 +-- Source/exehead/util.h | 2 +- 6 files changed, 13 insertions(+), 18 deletions(-) diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 55d1da95..f29b855a 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -669,11 +669,7 @@ LRESULT WINAPI WMCommandProc(HWND hWnd, UINT id, HWND hwndCtl, UINT codeNotify) if (pField->nFlags & LBS_NOTIFY) { // Remember which control was activated then pretend the user clicked Next g_NotifyField = nIdx + 1; - // the next button must be enabled or nsis will ignore WM_COMMAND - BOOL bWasDisabled = EnableWindow(hNextButton, TRUE); - FORWARD_WM_COMMAND(hMainWindow, IDOK, hNextButton, BN_CLICKED, mySendMessage); - if (bWasDisabled) - EnableWindow(hNextButton, FALSE); + mySendMessage(hMainWindow, WM_NOTIFY_OUTER_NEXT, 1, 0); } } break; diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 52651bd8e1c3d2c771be71b1edf5e951f3e7f999..f274579a3c13162084347ea09eadc137a34448dd 100644 GIT binary patch delta 2493 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,NULL); #endif //ShowWindow(hwndDlg, SW_SHOW); + delta = 1; } this_page=g_pages+m_page; @@ -438,7 +439,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) #ifdef NSIS_SUPPORT_CODECALLBACKS // Call leave function. If Abort used don't move to the next page. // But if quit called we must exit now - if (m_delta==1) if (ExecuteCodeSegment(this_page->leavefunc,NULL)) return !g_quit_flag; + if (delta==1) if (ExecuteCodeSegment(this_page->leavefunc,NULL)) return !g_quit_flag; #endif // if the last page was a custom page, wait for it to finish by itself. @@ -450,8 +451,8 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) NotifyCurWnd(WM_NOTIFY_INIGO_MONTOYA); nextPage: - m_page+=m_delta; - this_page+=m_delta; + m_page+=delta; + this_page+=delta; #ifdef NSIS_SUPPORT_CODECALLBACKS if (m_page==g_blocks[NB_PAGES].num) ExecuteCodeSegment(g_header->code_onInstSuccess,NULL); diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 013381d5..b3bb87a4 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -146,8 +146,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) int exec_error = 0; - entry lent; - mini_memcpy(&lent, entry_, sizeof(entry)); + entry lent = *entry_; #define which (lent.which) #define parm0 (lent.offsets[0]) diff --git a/Source/exehead/util.c b/Source/exehead/util.c index f99aacec..c5e3a072 100644 --- a/Source/exehead/util.c +++ b/Source/exehead/util.c @@ -243,7 +243,7 @@ char * NSISCALL mystrstri(char *a, char *b) return NULL; } -void * NSISCALL mini_memcpy(void *out, const void *in, int len) +void NSISCALL mini_memcpy(void *out, const void *in, int len) { char *c_out=(char*)out; char *c_in=(char *)in; @@ -251,7 +251,6 @@ void * NSISCALL mini_memcpy(void *out, const void *in, int len) { *c_out++=*c_in++; } - return out; } diff --git a/Source/exehead/util.h b/Source/exehead/util.h index 95fed0f6..0ec9980b 100644 --- a/Source/exehead/util.h +++ b/Source/exehead/util.h @@ -67,7 +67,7 @@ char * NSISCALL skip_root(char *path); int NSISCALL is_valid_instpath(char *s); char * NSISCALL validate_filename(char *fn); void NSISCALL MoveFileOnReboot(LPCTSTR pszExisting, LPCTSTR pszNew); -void * NSISCALL mini_memcpy(void *out, const void *in, int len); +void NSISCALL mini_memcpy(void *out, const void *in, int len); // Turn a pair of chars into a word // Turn four chars into a dword