Huw Davies : wordpad: Don' t quit if the user cancels the save-as dialog when being prompted to save changes .

Alexandre Julliard julliard at winehq.org
Wed Apr 11 12:56:47 CDT 2012


Module: wine
Branch: master
Commit: 965388465d7d358a4cf08d5470485ac370c2f840
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=965388465d7d358a4cf08d5470485ac370c2f840

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Apr 11 13:50:57 2012 +0100

wordpad: Don't quit if the user cancels the save-as dialog when being prompted to save changes.

---

 programs/wordpad/wordpad.c |   30 +++++++++++-------------------
 1 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c
index f47aedd..24d956a 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)&gt, 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;




More information about the wine-cvs mailing list