emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs crashes when displaying the Euro character


From: Chong Yidong
Subject: Re: Emacs crashes when displaying the Euro character
Date: Tue, 05 Sep 2006 09:20:45 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Richard Stallman <address@hidden> writes:

>     How about making X protocol errors fatal only when glyph debugging is
>     on?  When it is off, we can print the error message to stderr.
>
> I don't think that printing on stderr is very useful.  People won't
> see it.  After the release we should make these errors display as
> warnings in a buffer.
>
> This ought to cause the BadName error to be ignored.  Does it work?

I'm certain the patch is correct, but I have no way of testing it.

> *** xterm.c   25 Aug 2006 03:47:19 -0400      1.924
> --- xterm.c   04 Sep 2006 14:55:40 -0400      
> ***************
> *** 7501,7507 ****
>   static struct x_error_message_stack *x_error_message;
>   
>   /* An X error handler which stores the error message in
> !    x_error_message_string.  This is called from x_error_handler if
>      x_catch_errors is in effect.  */
>   
>   static void
> --- 7501,7507 ----
>   static struct x_error_message_stack *x_error_message;
>   
>   /* An X error handler which stores the error message in
> !    *x_error_message.  This is called from x_error_handler if
>      x_catch_errors is in effect.  */
>   
>   static void
> ***************
> *** 7520,7526 ****
>   
>      After calling this function, X protocol errors no longer cause
>      Emacs to exit; instead, they are recorded in the string
> !    stored in x_error_message_string.
>   
>      Calling x_check_errors signals an Emacs error if an X error has
>      occurred since the last call to x_catch_errors or x_check_errors.
> --- 7520,7526 ----
>   
>      After calling this function, X protocol errors no longer cause
>      Emacs to exit; instead, they are recorded in the string
> !    stored in *x_error_message.
>   
>      Calling x_check_errors signals an Emacs error if an X error has
>      occurred since the last call to x_catch_errors or x_check_errors.
> ***************
> *** 7780,7786 ****
>   
>   /* We specifically use it before defining it, so that gcc doesn't inline it,
>      otherwise gdb doesn't know how to properly put a breakpoint on it.  */
> ! static void x_error_quitter P_ ((Display *, XErrorEvent *)) NO_RETURN;
>   
>   /* This is the first-level handler for X protocol errors.
>      It calls x_error_quitter or x_error_catcher.  */
> --- 7780,7786 ----
>   
>   /* We specifically use it before defining it, so that gcc doesn't inline it,
>      otherwise gdb doesn't know how to properly put a breakpoint on it.  */
> ! static void x_error_quitter P_ ((Display *, XErrorEvent *));
>   
>   /* This is the first-level handler for X protocol errors.
>      It calls x_error_quitter or x_error_catcher.  */
> ***************
> *** 7825,7830 ****
> --- 7825,7836 ----
>   {
>     char buf[256], buf1[356];
>   
> +   /* Ignore BadName errors.  They can happen because of fonts
> +      or colors that are not defined.  */
> + 
> +   if (error->error_code == BadName)
> +     return;
> + 
>     /* Note that there is no real way portable across R3/R4 to get the
>        original error handler.  */
>   




reply via email to

[Prev in Thread] Current Thread [Next in Thread]