mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-02 02:10:46 -08:00
(x_list_fonts): Trap X errors so that Emacs doesn't die
by them. (x_load_font): Likewise.
This commit is contained in:
parent
e186b06917
commit
d645aaa442
1 changed files with 10 additions and 0 deletions
10
src/xterm.c
10
src/xterm.c
|
|
@ -6682,6 +6682,7 @@ x_load_font (f, fontname, size)
|
|||
{
|
||||
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 @@ x_load_font (f, fontname, size)
|
|||
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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue