From 0169d3603b5085ed238feca83b9ab396d3350d8f Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 16 Jun 2006 12:25:51 +0000 Subject: [PATCH] (x_set_font) [USE_FONT_BACKEND]: Adusted for the change of x_new_fontset2. --- src/frame.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/frame.c b/src/frame.c index cafa9b655d4..739b29c897e 100644 --- a/src/frame.c +++ b/src/frame.c @@ -3077,7 +3077,38 @@ x_set_font (f, arg, oldval) #ifdef USE_FONT_BACKEND if (enable_font_backend) - fontset_name = result = x_new_fontset2 (f, arg); + { + int fontset = -1; + Lisp_Object font_object; + + /* ARG is a fontset name, a font name, or a font object. + In the last case, this function never fail. */ + if (STRINGP (arg)) + { + fontset = fs_query_fontset (arg, Qnil); + if (fontset < 0) + font_object = font_open_by_name (f, SDATA (arg)); + else if (fontset > 0) + { + Lisp_Object ascii_font = fontset_ascii (fontset); + + font_object = font_open_by_name (f, SDATA (arg)); + } + } + else + font_object = arg; + + if (fontset < 0 && ! NILP (font_object)) + fontset = new_fontset_from_font (font_object); + + if (fontset == 0) + /* Refuse the default fontset. */ + result = Qt; + else if (NILP (font_object)) + result = Qnil; + else + result = x_new_fontset2 (f, fontset, font_object); + } else { #endif /* USE_FONT_BACKEND */ -- 2.39.5