aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-05-29 08:51:17 +0800
committerPo Lu2022-05-29 08:51:17 +0800
commit28d4952d423a088a53a82c8e02f283fa98b7e20d (patch)
tree06520bd2d81e5e866d2f74e1d6740ed6520aa45c /src
parent1e66c8af402176e9f1b5f3fbdbf5f796fec79079 (diff)
downloademacs-28d4952d423a088a53a82c8e02f283fa98b7e20d.tar.gz
emacs-28d4952d423a088a53a82c8e02f283fa98b7e20d.zip
Improve error trapping on X
* xterm.c (x_uncatch_errors, x_had_errors_p): Don't sync if no request was made since the error trap was installed.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 5c591134692..3e5aaf5d4a4 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -21265,7 +21265,11 @@ x_uncatch_errors (void)
21265 /* There is no point in making this extra sync if all requests 21265 /* There is no point in making this extra sync if all requests
21266 are known to have been fully processed. */ 21266 are known to have been fully processed. */
21267 && (LastKnownRequestProcessed (x_error_message->dpy) 21267 && (LastKnownRequestProcessed (x_error_message->dpy)
21268 != NextRequest (x_error_message->dpy) - 1)) 21268 != NextRequest (x_error_message->dpy) - 1)
21269 /* Likewise if no request was made since the trap was
21270 installed. */
21271 && (NextRequest (x_error_message->dpy)
21272 > x_error_message->first_request))
21269 XSync (x_error_message->dpy, False); 21273 XSync (x_error_message->dpy, False);
21270 21274
21271 tmp = x_error_message; 21275 tmp = x_error_message;
@@ -21315,8 +21319,10 @@ x_had_errors_p (Display *dpy)
21315 emacs_abort (); 21319 emacs_abort ();
21316 21320
21317 /* Make sure to catch any errors incurred so far. */ 21321 /* Make sure to catch any errors incurred so far. */
21318 if (LastKnownRequestProcessed (dpy) 21322 if ((LastKnownRequestProcessed (dpy)
21319 != NextRequest (dpy) - 1) 21323 != NextRequest (dpy) - 1)
21324 && (NextRequest (dpy)
21325 > x_error_message->first_request))
21320 XSync (dpy, False); 21326 XSync (dpy, False);
21321 21327
21322 return x_error_message->string[0] != 0; 21328 return x_error_message->string[0] != 0;