diff --git a/src/ChangeLog b/src/ChangeLog index 331d06fdccf..036d540a015 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2009-03-11 Kenichi Handa + * font.c (font_open_by_spec): New function. + (font_open_by_name): Use font_open_by_spec. + * frame.c (x_set_font): When ARG is a font-object, don't alter the fontset of the frame. diff --git a/src/font.c b/src/font.c index 9a656b1c6fe..5ad6d0bf8f0 100644 --- a/src/font.c +++ b/src/font.c @@ -3484,20 +3484,16 @@ font_done_for_face (f, face) } -/* Open a font best matching with NAME on frame F. If no proper font - is found, return Qnil. */ +/* Open a font matching with font-spec SPEC on frame F. If no proper + font is found, return Qnil. */ Lisp_Object -font_open_by_name (f, name) +font_open_by_spec (f, spec) FRAME_PTR f; - char *name; + Lisp_Object spec; { - Lisp_Object args[2]; - Lisp_Object spec, attrs[LFACE_VECTOR_SIZE]; + Lisp_Object attrs[LFACE_VECTOR_SIZE]; - args[0] = QCname; - args[1] = make_unibyte_string (name, strlen (name)); - spec = Ffont_spec (2, args); /* We set up the default font-related attributes of a face to prefer a moderate font. */ attrs[LFACE_FAMILY_INDEX] = attrs[LFACE_FOUNDRY_INDEX] = Qnil; @@ -3514,6 +3510,24 @@ font_open_by_name (f, name) } +/* Open a font matching with NAME on frame F. If no proper font is + found, return Qnil. */ + +Lisp_Object +font_open_by_name (f, name) + FRAME_PTR f; + char *name; +{ + Lisp_Object args[2]; + Lisp_Object spec; + + args[0] = QCname; + args[1] = make_unibyte_string (name, strlen (name)); + spec = Ffont_spec (2, args); + return font_open_by_spec (f, spec); +} + + /* Register font-driver DRIVER. This function is used in two ways. The first is with frame F non-NULL. In this case, make DRIVER