diff options
| author | Po Lu | 2022-05-29 08:51:17 +0800 |
|---|---|---|
| committer | Po Lu | 2022-05-29 08:51:17 +0800 |
| commit | 28d4952d423a088a53a82c8e02f283fa98b7e20d (patch) | |
| tree | 06520bd2d81e5e866d2f74e1d6740ed6520aa45c /src | |
| parent | 1e66c8af402176e9f1b5f3fbdbf5f796fec79079 (diff) | |
| download | emacs-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.c | 12 |
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; |