diff options
| -rw-r--r-- | src/fontset.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/fontset.c b/src/fontset.c index 289f5368a35..84384c06d8c 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -262,7 +262,7 @@ static Lisp_Object make_fontset P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); | |||
| 262 | static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object)); | 262 | static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object)); |
| 263 | static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object, | 263 | static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object, |
| 264 | Lisp_Object)); | 264 | Lisp_Object)); |
| 265 | static Lisp_Object find_font_encoding P_ ((char *)); | 265 | static Lisp_Object find_font_encoding P_ ((Lisp_Object)); |
| 266 | 266 | ||
| 267 | static void set_fontset_font P_ ((Lisp_Object, Lisp_Object)); | 267 | static void set_fontset_font P_ ((Lisp_Object, Lisp_Object)); |
| 268 | 268 | ||
| @@ -973,6 +973,7 @@ fs_load_font (f, fontname, charset) | |||
| 973 | int charset; | 973 | int charset; |
| 974 | { | 974 | { |
| 975 | struct font_info *fontp; | 975 | struct font_info *fontp; |
| 976 | Lisp_Object fullname; | ||
| 976 | 977 | ||
| 977 | if (!fontname) | 978 | if (!fontname) |
| 978 | /* No way to get fontname. */ | 979 | /* No way to get fontname. */ |
| @@ -983,12 +984,13 @@ fs_load_font (f, fontname, charset) | |||
| 983 | return fontp; | 984 | return fontp; |
| 984 | 985 | ||
| 985 | fontname = fontp->full_name; | 986 | fontname = fontp->full_name; |
| 987 | fullname = build_string (fontp->full_name); | ||
| 986 | 988 | ||
| 987 | if (charset < 0) | 989 | if (charset < 0) |
| 988 | { | 990 | { |
| 989 | Lisp_Object charset_symbol; | 991 | Lisp_Object charset_symbol; |
| 990 | 992 | ||
| 991 | charset_symbol = find_font_encoding (fontname); | 993 | charset_symbol = find_font_encoding (fullname); |
| 992 | if (CONSP (charset_symbol)) | 994 | if (CONSP (charset_symbol)) |
| 993 | charset_symbol = XCAR (charset_symbol); | 995 | charset_symbol = XCAR (charset_symbol); |
| 994 | charset = XINT (CHARSET_SYMBOL_ID (charset_symbol)); | 996 | charset = XINT (CHARSET_SYMBOL_ID (charset_symbol)); |
| @@ -1001,8 +1003,8 @@ fs_load_font (f, fontname, charset) | |||
| 1001 | { | 1003 | { |
| 1002 | fontp->vertical_centering | 1004 | fontp->vertical_centering |
| 1003 | = (STRINGP (Vvertical_centering_font_regexp) | 1005 | = (STRINGP (Vvertical_centering_font_regexp) |
| 1004 | && (fast_c_string_match_ignore_case | 1006 | && (fast_string_match_ignore_case |
| 1005 | (Vvertical_centering_font_regexp, fontname) >= 0)); | 1007 | (Vvertical_centering_font_regexp, fullname) >= 0)); |
| 1006 | 1008 | ||
| 1007 | if (find_ccl_program_func) | 1009 | if (find_ccl_program_func) |
| 1008 | (*find_ccl_program_func) (fontp); | 1010 | (*find_ccl_program_func) (fontp); |
| @@ -1023,7 +1025,7 @@ fs_load_font (f, fontname, charset) | |||
| 1023 | 1025 | ||
| 1024 | static Lisp_Object | 1026 | static Lisp_Object |
| 1025 | find_font_encoding (fontname) | 1027 | find_font_encoding (fontname) |
| 1026 | char *fontname; | 1028 | Lisp_Object fontname; |
| 1027 | { | 1029 | { |
| 1028 | Lisp_Object tail, elt; | 1030 | Lisp_Object tail, elt; |
| 1029 | 1031 | ||
| @@ -1032,7 +1034,7 @@ find_font_encoding (fontname) | |||
| 1032 | elt = XCAR (tail); | 1034 | elt = XCAR (tail); |
| 1033 | if (CONSP (elt) | 1035 | if (CONSP (elt) |
| 1034 | && STRINGP (XCAR (elt)) | 1036 | && STRINGP (XCAR (elt)) |
| 1035 | && fast_c_string_match_ignore_case (XCAR (elt), fontname) >= 0 | 1037 | && fast_string_match_ignore_case (XCAR (elt), fontname) >= 0 |
| 1036 | && (SYMBOLP (XCDR (elt)) | 1038 | && (SYMBOLP (XCDR (elt)) |
| 1037 | ? CHARSETP (XCDR (elt)) | 1039 | ? CHARSETP (XCDR (elt)) |
| 1038 | : CONSP (XCDR (elt)) && CHARSETP (XCAR (XCDR (elt))))) | 1040 | : CONSP (XCDR (elt)) && CHARSETP (XCAR (XCDR (elt))))) |
| @@ -1444,9 +1446,9 @@ appended. By default, FONT-SPEC overrides the previous settings. */) | |||
| 1444 | } | 1446 | } |
| 1445 | 1447 | ||
| 1446 | if (STRINGP (font_spec)) | 1448 | if (STRINGP (font_spec)) |
| 1447 | encoding = find_font_encoding ((char *) SDATA (font_spec)); | 1449 | encoding = find_font_encoding (font_spec); |
| 1448 | else | 1450 | else |
| 1449 | encoding = find_font_encoding ((char *) SDATA (registry)); | 1451 | encoding = find_font_encoding (registry); |
| 1450 | if (SYMBOLP (encoding)) | 1452 | if (SYMBOLP (encoding)) |
| 1451 | { | 1453 | { |
| 1452 | CHECK_CHARSET (encoding); | 1454 | CHECK_CHARSET (encoding); |