diff options
| author | Chong Yidong | 2009-01-19 16:42:44 +0000 |
|---|---|---|
| committer | Chong Yidong | 2009-01-19 16:42:44 +0000 |
| commit | 05802645c6f249bb377a96c7d75d57d51218ae70 (patch) | |
| tree | cfb9e1510ac8a72f2ecfe426ba9a45b696b6d61e /src | |
| parent | 21bdb81a75a878d4e359d5049453d4e0a380b22c (diff) | |
| download | emacs-05802645c6f249bb377a96c7d75d57d51218ae70.tar.gz emacs-05802645c6f249bb377a96c7d75d57d51218ae70.zip | |
(font_spec_from_name): Return Qnil if font name could not be parsed.
(font_parse_name): Treat a `?' character as part of an XLFD.
Diffstat (limited to 'src')
| -rw-r--r-- | src/font.c | 16 |
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 | |||
| 3054 | Lisp_Object | 3058 | Lisp_Object |
| 3055 | font_spec_from_name (font_name) | 3059 | font_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 | ||