aboutsummaryrefslogtreecommitdiffstats
path: root/src/fontset.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fontset.c')
-rw-r--r--src/fontset.c18
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));
262static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object)); 262static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object));
263static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object, 263static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object,
264 Lisp_Object)); 264 Lisp_Object));
265static Lisp_Object find_font_encoding P_ ((char *)); 265static Lisp_Object find_font_encoding P_ ((Lisp_Object));
266 266
267static void set_fontset_font P_ ((Lisp_Object, Lisp_Object)); 267static 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
1024static Lisp_Object 1026static Lisp_Object
1025find_font_encoding (fontname) 1027find_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);