aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/font.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/font.c b/src/font.c
index 178e6d32429..6eb77dc195d 100644
--- a/src/font.c
+++ b/src/font.c
@@ -1814,7 +1814,7 @@ font_parse_name (name, font)
1814 char *name; 1814 char *name;
1815 Lisp_Object font; 1815 Lisp_Object font;
1816{ 1816{
1817 if (name[0] == '-' || index (name, '*')) 1817 if (name[0] == '-' || index (name, '*') || index (name, '?'))
1818 return font_parse_xlfd (name, font); 1818 return font_parse_xlfd (name, font);
1819 return font_parse_fcname (name, font); 1819 return font_parse_fcname (name, font);
1820} 1820}
@@ -3051,15 +3051,21 @@ font_get_spec (font_object)
3051 return spec; 3051 return spec;
3052} 3052}
3053 3053
3054
3055/* Create a new font spec from FONT_NAME, and return it. If FONT_NAME
3056 could not be parsed by font_parse_name, return Qnil. */
3057
3054Lisp_Object 3058Lisp_Object
3055font_spec_from_name (font_name) 3059font_spec_from_name (font_name)
3056 Lisp_Object font_name; 3060 Lisp_Object font_name;
3057{ 3061{
3058 Lisp_Object args[2]; 3062 Lisp_Object spec = Ffont_spec (0, NULL);
3059 3063
3060 args[0] = QCname; 3064 CHECK_STRING (font_name);
3061 args[1] = font_name; 3065 if (font_parse_name ((char *) SDATA (font_name), spec) == -1)
3062 return Ffont_spec (2, args); 3066 return Qnil;
3067 font_put_extra (spec, QCname, font_name);
3068 return spec;
3063} 3069}
3064 3070
3065 3071