summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-09 16:11:33 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-09 16:11:33 +0200
commitb1062eb23e7a7a8b44f3416e79c3b28aa6c6c229 (patch)
tree02199582ff24ea5208a6d3d365011b716ace7aff
parenta5565e4189b7c4d3f03d1f5405fc64d5dc00f717 (diff)
patch 8.2.0720: occasional exit when encountering an X errorv8.2.0720
Problem: Occasional exit when encountering an X error. (Manfred Lotz) Solution: On an X error do not exit, do preserve files.
-rw-r--r--src/os_unix.c13
-rw-r--r--src/version.c2
2 files changed, 11 insertions, 4 deletions
diff --git a/src/os_unix.c b/src/os_unix.c
index f8fe2cb64b..8424b11a3c 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1544,10 +1544,15 @@ x_error_handler(Display *dpy, XErrorEvent *error_event)
XGetErrorText(dpy, error_event->error_code, (char *)IObuff, IOSIZE);
STRCAT(IObuff, _("\nVim: Got X error\n"));
- // We cannot print a message and continue, because no X calls are allowed
- // here (causes my system to hang). Silently continuing might be an
- // alternative...
- preserve_exit(); // preserve files and exit
+ // In the GUI we cannot print a message and continue, because no X calls
+ // are allowed here (causes my system to hang). Silently continuing seems
+ // like the best alternative. Do preserve files, in case we crash.
+ ml_sync_all(FALSE, FALSE);
+
+#ifdef FEAT_GUI
+ if (!gui.in_use)
+#endif
+ msg((char *)IObuff);
return 0; // NOTREACHED
}
diff --git a/src/version.c b/src/version.c
index 5903a00e26..456516f971 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 720,
+/**/
719,
/**/
718,