From c07998b48cdd5e8b9f4505fab765da84f132357a Mon Sep 17 00:00:00 2001 From: kichik Date: Tue, 7 Mar 2006 14:12:17 +0000 Subject: [PATCH] fixed bug #1440636 - invalid folder names returned by StartMenu plug-in git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4555 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/StartMenu/StartMenu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Contrib/StartMenu/StartMenu.c b/Contrib/StartMenu/StartMenu.c index 6bfc7901..09f73ab5 100644 --- a/Contrib/StartMenu/StartMenu.c +++ b/Contrib/StartMenu/StartMenu.c @@ -23,16 +23,20 @@ int rtl = 0; void *lpWndProcOld; +void (__stdcall *validate_filename)(char *); + BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); static BOOL CALLBACK ParentWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void AddFolderFromReg(int nFolder); -void __declspec(dllexport) Init(HWND hwndParent, int string_size, char *variables, stack_t **stacktop) +void __declspec(dllexport) Init(HWND hwndParent, int string_size, char *variables, stack_t **stacktop, extra_parameters *extra) { HWND hwStartMenuSelect; hwParent = hwndParent; + validate_filename = extra->validate_filename; + EXDLL_INIT(); { @@ -120,9 +124,9 @@ void __declspec(dllexport) Show(HWND hwndParent, int string_size, char *variable SetWindowLong(hwndParent, DWL_DLGPROC, (long) lpWndProcOld); } -void __declspec(dllexport) Select(HWND hwndParent, int string_size, char *variables, stack_t **stacktop) +void __declspec(dllexport) Select(HWND hwndParent, int string_size, char *variables, stack_t **stacktop, extra_parameters *extra) { - Init(hwndParent, string_size, variables, stacktop); + Init(hwndParent, string_size, variables, stacktop, extra); if (g_hwStartMenuSelect) { popstring(buf); @@ -359,6 +363,7 @@ BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) else { GetWindowText(hwLocation, buf + 1, MAX_PATH); + validate_filename(buf); if (IsDlgButtonChecked(hwndDlg, IDC_CHECK) == BST_CHECKED) { buf[0] = '>';