# HG changeset patch # User Kenichi Handa # Date 1237445455 0 # Node ID 3854b305c65be5fc9d05e61b908b3cfb45da4879 # Parent 8cacd0d8fb30a57acc090c32db7016fec31f95c5 (x_set_font): Handle the case that ARG is a cons. diff -r 8cacd0d8fb30 -r 3854b305c65b src/frame.c --- a/src/frame.c Thu Mar 19 06:50:41 2009 +0000 +++ b/src/frame.c Thu Mar 19 06:50:55 2009 +0000 @@ -3372,8 +3372,9 @@ 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 @@ 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;