# HG changeset patch # User Christian Brabandt # Date 1458396005 -3600 # Node ID eab968bf3ce7ebb5a8e9ba9aaa76e696c9ab392f # Parent b3032396a7082913fc091b885ba232d6d452660c commit https://github.com/vim/vim/commit/6d8d849f5ac8a3a228c62fd29e8f40ae1b8381fc Author: Bram Moolenaar Date: Sat Mar 19 14:48:31 2016 +0100 patch 7.4.1598 Problem: When starting the GUI fails a swap file is left behind. (Joerg Plate) Solution: Preserve files before exiting. (closes https://github.com/vim/vim/issues/692) diff --git a/src/gui.c b/src/gui.c --- a/src/gui.c +++ b/src/gui.c @@ -105,7 +105,7 @@ gui_start(void) /* If there is 'f' in 'guioptions' and specify -g argument, * gui_mch_init_check() was not called yet. */ if (gui_mch_init_check() != OK) - exit(1); + getout_preserve_modified(1); #endif gui_attempt_start(); } @@ -272,7 +272,7 @@ gui_do_fork(void) #ifdef FEAT_GUI_GTK /* Call gtk_init_check() here after fork(). See gui_init_check(). */ if (gui_mch_init_check() != OK) - exit(1); + getout_preserve_modified(1); #endif # if defined(HAVE_SETSID) || defined(HAVE_SETPGID) @@ -309,7 +309,7 @@ gui_do_fork(void) /* If we failed to start the GUI, exit now. */ if (!gui.in_use) - exit(1); + getout_preserve_modified(1); } /* diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -1355,7 +1355,7 @@ main_loop( } -#if defined(USE_XSMP) || defined(FEAT_GUI_MSWIN) || defined(PROTO) +#if defined(USE_XSMP) || defined(FEAT_GUI) || defined(PROTO) /* * Exit, but leave behind swap files for modified buffers. */ @@ -1377,7 +1377,9 @@ getout_preserve_modified(int exitval) #endif -/* Exit properly */ +/* + * Exit properly. + */ void getout(int exitval) { diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -749,6 +749,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1598, +/**/ 1597, /**/ 1596,