diff options
-rw-r--r-- | src/xfns.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/xfns.c b/src/xfns.c index 43dbabbc80..ade94e129b 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -1753,13 +1753,27 @@ be shared by the new frame.") { Lisp_Object font; - /* Try out a font which we know has bold and italic variations. */ + font = x_get_arg (parms, Qfont, "font", "Font", string); BLOCK_INPUT; - font = x_new_font (f, "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1"); + /* First, try whatever font the caller has specified. */ + if (STRINGP (font)) + font = x_new_font (f, XSTRING (tem)->data); + /* Try out a font which we hope has bold and italic variations. */ + if (!STRINGP (font)) + font = x_new_font (f, "-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-1"); + if (! STRINGP (font)) + font = x_new_font (f, "-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-1"); + if (! STRINGP (font)) + /* This was formerly the first thing tried, but it finds too many fonts + and takes too long. */ + font = x_new_font (f, "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1"); + /* If those didn't work, look for something which will at least work. */ + if (! STRINGP (font)) + font = x_new_font (f, "-*-fixed-*-*-*-*-*-120-*-*-c-*-iso8859-1"); UNBLOCK_INPUT; if (! STRINGP (font)) - font = build_string ("-*-fixed-*-*-*-*-*-120-*-*-c-*-iso8859-1"); - + font = build_string ("fixed"); + x_default_parameter (f, parms, Qfont, font, "font", "Font", string); } |