262 |
static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object)); |
static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object)); |
263 |
static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object, |
static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object, |
264 |
Lisp_Object)); |
Lisp_Object)); |
265 |
static Lisp_Object find_font_encoding P_ ((char *)); |
static Lisp_Object find_font_encoding P_ ((Lisp_Object)); |
266 |
|
|
267 |
static void set_fontset_font P_ ((Lisp_Object, Lisp_Object)); |
static void set_fontset_font P_ ((Lisp_Object, Lisp_Object)); |
268 |
|
|
973 |
int charset; |
int charset; |
974 |
{ |
{ |
975 |
struct font_info *fontp; |
struct font_info *fontp; |
976 |
|
Lisp_Object fullname; |
977 |
|
|
978 |
if (!fontname) |
if (!fontname) |
979 |
/* No way to get fontname. */ |
/* No way to get fontname. */ |
984 |
return fontp; |
return fontp; |
985 |
|
|
986 |
fontname = fontp->full_name; |
fontname = fontp->full_name; |
987 |
|
fullname = build_string (fontp->full_name); |
988 |
|
|
989 |
if (charset < 0) |
if (charset < 0) |
990 |
{ |
{ |
991 |
Lisp_Object charset_symbol; |
Lisp_Object charset_symbol; |
992 |
|
|
993 |
charset_symbol = find_font_encoding (fontname); |
charset_symbol = find_font_encoding (fullname); |
994 |
if (CONSP (charset_symbol)) |
if (CONSP (charset_symbol)) |
995 |
charset_symbol = XCAR (charset_symbol); |
charset_symbol = XCAR (charset_symbol); |
996 |
charset = XINT (CHARSET_SYMBOL_ID (charset_symbol)); |
charset = XINT (CHARSET_SYMBOL_ID (charset_symbol)); |
1003 |
{ |
{ |
1004 |
fontp->vertical_centering |
fontp->vertical_centering |
1005 |
= (STRINGP (Vvertical_centering_font_regexp) |
= (STRINGP (Vvertical_centering_font_regexp) |
1006 |
&& (fast_c_string_match_ignore_case |
&& (fast_string_match_ignore_case |
1007 |
(Vvertical_centering_font_regexp, fontname) >= 0)); |
(Vvertical_centering_font_regexp, fullname) >= 0)); |
1008 |
|
|
1009 |
if (find_ccl_program_func) |
if (find_ccl_program_func) |
1010 |
(*find_ccl_program_func) (fontp); |
(*find_ccl_program_func) (fontp); |
1025 |
|
|
1026 |
static Lisp_Object |
static Lisp_Object |
1027 |
find_font_encoding (fontname) |
find_font_encoding (fontname) |
1028 |
char *fontname; |
Lisp_Object fontname; |
1029 |
{ |
{ |
1030 |
Lisp_Object tail, elt; |
Lisp_Object tail, elt; |
1031 |
|
|
1034 |
elt = XCAR (tail); |
elt = XCAR (tail); |
1035 |
if (CONSP (elt) |
if (CONSP (elt) |
1036 |
&& STRINGP (XCAR (elt)) |
&& STRINGP (XCAR (elt)) |
1037 |
&& fast_c_string_match_ignore_case (XCAR (elt), fontname) >= 0 |
&& fast_string_match_ignore_case (XCAR (elt), fontname) >= 0 |
1038 |
&& (SYMBOLP (XCDR (elt)) |
&& (SYMBOLP (XCDR (elt)) |
1039 |
? CHARSETP (XCDR (elt)) |
? CHARSETP (XCDR (elt)) |
1040 |
: CONSP (XCDR (elt)) && CHARSETP (XCAR (XCDR (elt))))) |
: CONSP (XCDR (elt)) && CHARSETP (XCAR (XCDR (elt))))) |
1446 |
} |
} |
1447 |
|
|
1448 |
if (STRINGP (font_spec)) |
if (STRINGP (font_spec)) |
1449 |
encoding = find_font_encoding ((char *) SDATA (font_spec)); |
encoding = find_font_encoding (font_spec); |
1450 |
else |
else |
1451 |
encoding = find_font_encoding ((char *) SDATA (registry)); |
encoding = find_font_encoding (registry); |
1452 |
if (SYMBOLP (encoding)) |
if (SYMBOLP (encoding)) |
1453 |
{ |
{ |
1454 |
CHECK_CHARSET (encoding); |
CHECK_CHARSET (encoding); |