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: Richard Stallman
Subject: Re: Emacs crashes when displaying the Euro character
Date: Tue, 05 Sep 2006 05:42:54 -0400

    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?

*** 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]