From 965388465d7d358a4cf08d5470485ac370c2f840 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Wed, 11 Apr 2012 13:50:57 +0100 Subject: [PATCH] wordpad: Don't quit if the user cancels the save-as dialog when being prompted to save changes. --- programs/wordpad/wordpad.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c index f47aedd18a..24d956af0d 100644 --- a/programs/wordpad/wordpad.c +++ b/programs/wordpad/wordpad.c @@ -835,7 +835,7 @@ static void ShowWriteError(DWORD Code) MessageBoxW(hMainWnd, Message, wszAppTitle, MB_ICONEXCLAMATION | MB_OK); } -static void DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format) +static BOOL DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format) { HANDLE hFile; EDITSTREAM stream; @@ -847,7 +847,7 @@ static void DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format) if(hFile == INVALID_HANDLE_VALUE) { ShowWriteError(GetLastError()); - return; + return FALSE; } if(format == (SF_TEXT | SF_UNICODE)) @@ -859,7 +859,7 @@ static void DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format) if(writeOut != sizeof(unicode)) { CloseHandle(hFile); - return; + return FALSE; } } @@ -879,16 +879,18 @@ static void DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format) gt.codepage = 1200; if(SendMessageW(hEditorWnd, EM_GETTEXTLENGTHEX, (WPARAM)>, 0)) - return; + return FALSE; } lstrcpyW(wszFileName, wszSaveFileName); set_caption(wszFileName); SendMessageW(hEditorWnd, EM_SETMODIFY, FALSE, 0); set_fileformat(format); + + return TRUE; } -static void DialogSaveFile(void) +static BOOL DialogSaveFile(void) { OPENFILENAMEW sfn; @@ -912,19 +914,11 @@ static void DialogSaveFile(void) { if(MessageBoxWithResStringW(hMainWnd, MAKEINTRESOURCEW(STRING_SAVE_LOSEFORMATTING), wszAppTitle, MB_YESNO | MB_ICONEXCLAMATION) != IDYES) - { continue; - } else - { - DoSaveFile(sfn.lpstrFile, fileformat_flags(sfn.nFilterIndex-1)); - break; - } - } else - { - DoSaveFile(sfn.lpstrFile, fileformat_flags(sfn.nFilterIndex-1)); - break; } + return DoSaveFile(sfn.lpstrFile, fileformat_flags(sfn.nFilterIndex-1)); } + return FALSE; } static BOOL prompt_save_changes(void) @@ -971,10 +965,8 @@ static BOOL prompt_save_changes(void) case IDYES: if(wszFileName[0]) - DoSaveFile(wszFileName, fileFormat); - else - DialogSaveFile(); - return TRUE; + return DoSaveFile(wszFileName, fileFormat); + return DialogSaveFile(); default: return FALSE; -- 2.32.0.93.g670b81a890