[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: x_error_quitter
From: |
Chong Yidong |
Subject: |
Re: x_error_quitter |
Date: |
Sun, 18 Mar 2007 10:22:15 -0400 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.95 (gnu/linux) |
address@hidden writes:
> again, emacs dies in x_error_quitter:
>
> Breakpoint 3, x_error_quitter (display=0x8591e38, error=0xbfe939a8)
> at xterm.c:7859
> 7859 if (error->error_code == BadName)
This is yet another example of a X protocol error that shouldn't cause
Emacs to abort. In this case, I think the internal X windows code
called through XtVaSetValues is trying to request a font that hasn't
been installed, leading to a BadName protocol error.
Like I said before, the correct fix is to cause Emacs to simply print
a warning message, instead of aborting, when such an error is
received, since these are supposed to be non-fatal errors. However,
Richard has vetoed this fix for Emacs 22.
The following patch prevent Emacs from aborting in this situation.
*** emacs/src/xterm.c.~1.943.~ 2007-03-09 12:41:38.000000000 -0500
--- emacs/src/xterm.c 2007-03-18 10:09:26.000000000 -0400
***************
*** 8728,8734 ****
--- 8728,8736 ----
figure out a correct fix. Can anyone else tell me? -- rms. */
int xpos = f->output_data.x->widget->core.x;
int ypos = f->output_data.x->widget->core.y;
+ x_catch_errors (FRAME_X_DISPLAY (f));
EmacsFrameSetCharSize (f->output_data.x->edit_widget, cols, rows);
+ x_uncatch_errors ();
f->output_data.x->widget->core.x = xpos;
f->output_data.x->widget->core.y = ypos;
}