From 407916e1a11b206c16e3acc75fb30acb80460e28 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Fri, 11 Aug 2000 00:38:44 +0000 Subject: [PATCH] 1. Make buffer for message large enough to hold very long file names. 2. Pass FORMAT_MESSAGE_ARGUMENT_ARRAY for FormatMessageA to not assume implementation specific behaviour. 3. Show actual message to user, not non-formatted one. --- dlls/shell32/shlfileop.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index c73fb532179..0f00f768c00 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -19,13 +19,14 @@ DEFAULT_DEBUG_CHANNEL(shell); static BOOL SHELL_WarnFolderDelete (int nKindOfDialog, LPCSTR szDir) { - char szCaption[255], szText[255], szBuffer[256]; + char szCaption[255], szText[255], szBuffer[MAX_PATH + 256]; LoadStringA(shell32_hInstance, IDS_DELETEFOLDER_TEXT, szText, sizeof(szText)); LoadStringA(shell32_hInstance, IDS_DELETEFOLDER_CAPTION, szCaption, sizeof(szCaption)); - FormatMessageA(FORMAT_MESSAGE_FROM_STRING, szText, 0,0, szBuffer, sizeof(szBuffer), (DWORD*)&szDir); + FormatMessageA(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY, + szText, 0, 0, szBuffer, sizeof(szBuffer), (DWORD*)&szDir); - return (IDOK == MessageBoxA(GetActiveWindow(),szText, szCaption, MB_OKCANCEL | MB_ICONEXCLAMATION)); + return (IDOK == MessageBoxA(GetActiveWindow(), szBuffer, szCaption, MB_OKCANCEL | MB_ICONEXCLAMATION)); } /**************************************************************************