# HG changeset patch
# User Kenichi Handa <handa@m17n.org>
# Date 921456682 0
# Node ID d4ee4399e999ceede23925ae9d79785e29741787
# Parent  0dc19350498fc21422f635b44c242cfb72683977
(x_list_fonts): Trap X errors so that Emacs doesn't die
by them.
(x_load_font): Likewise.

diff -r 0dc19350498f -r d4ee4399e999 src/xterm.c
--- a/src/xterm.c	Sun Mar 14 19:41:37 1999 +0000
+++ b/src/xterm.c	Mon Mar 15 00:11:22 1999 +0000
@@ -6682,6 +6682,7 @@
 {
   struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
   Lisp_Object font_names;
+  int count;
 
   /* Get a list of all the fonts that match this name.  Once we
      have a list of matching fonts, we compare them against the fonts
@@ -6718,7 +6719,16 @@
       fontname = (char *) XSTRING (XCONS (font_names)->car)->data;
 
     BLOCK_INPUT;
+    count = x_catch_errors (FRAME_X_DISPLAY (f));
     font = (XFontStruct *) XLoadQueryFont (FRAME_X_DISPLAY (f), fontname);
+    if (x_had_errors_p (FRAME_X_DISPLAY (f)))
+      {
+	/* This error is perhaps due to insufficient memory on X
+	   server.  Let's just ignore it.  */
+	font = NULL;
+	x_clear_errors (FRAME_X_DISPLAY (f));
+      }
+    x_uncatch_errors (FRAME_X_DISPLAY (f), count);
     UNBLOCK_INPUT;
     if (!font)
       return NULL;