From d507f8d743e54850885e1f946ab7ed5a007e2b7b Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 19 Mar 2009 06:51:07 +0000 Subject: [PATCH] (x_set_font): Handle the case that ARG is a cons. --- src/ChangeLog | 8 ++++++++ src/frame.c | 16 ++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 33be1d20ea4..7017875564b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2009-03-19 Kenichi Handa + + * fontset.c (Fset_fontset_font): When a spec of ASCII font is + changed, use font_load_for_lface to get a new font object. Call + free_realized_fontset after handling ASCII font change. + + * frame.c (x_set_font): Handle the case that ARG is a cons. + 2009-03-19 Glenn Morris * fileio.c (Fsubstitute_in_file_name): Doc fix. diff --git a/src/frame.c b/src/frame.c index 52733044f7a..a501e4de834 100644 --- a/src/frame.c +++ b/src/frame.c @@ -3372,8 +3372,9 @@ x_set_font (f, arg, oldval) fail to use ARG as the new parameter value. */ store_frame_param (f, Qfont, oldval); - /* ARG is a fontset name, a font name, or a font object. - In the last case, this function never fail. */ + /* ARG is a fontset name, a font name, a cons of fontset name and a + font object, or a font object. In the last case, this function + never fail. */ if (STRINGP (arg)) { fontset = fs_query_fontset (arg, 0); @@ -3396,6 +3397,17 @@ x_set_font (f, arg, oldval) else error ("The default fontset can't be used for a frame font"); } + else if (CONSP (arg) && STRINGP (XCAR (arg)) && FONT_OBJECT_P (XCDR (arg))) + { + /* This is the case that the ASCII font of F's fontset XCAR + (arg) is changed to the font XCDR (arg) by + `set-fontset-font'. */ + fontset = fs_query_fontset (XCAR (arg), 0); + if (fontset < 0) + error ("Unknown fontset: %s", SDATA (XCAR (arg))); + font_object = XCDR (arg); + arg = AREF (font_object, FONT_NAME_INDEX); + } else if (FONT_OBJECT_P (arg)) { font_object = arg; -- 2.39.5