diff options
| author | Kenichi Handa | 2008-01-14 01:31:25 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2008-01-14 01:31:25 +0000 |
| commit | 432cfa542ebdc072be3fe798631bba3ab9647e27 (patch) | |
| tree | 68d6c876a2f7789feb8981ae403dff547f944f0f /src | |
| parent | a6bbf9f489e6704a9c082eaa702479e86c8827ef (diff) | |
| download | emacs-432cfa542ebdc072be3fe798631bba3ab9647e27.tar.gz emacs-432cfa542ebdc072be3fe798631bba3ab9647e27.zip | |
(FONTSET_REF_AND_RANGE): Delete it.
(fontset_ref_and_range): Delete it.
(fontset_find_font): Call char_table_ref_and_range instead of
FONTSET_REF_AND_RANGE.
(make_fontset): Don't setup font groups of Latin here.
(Fset_fontset_font): Don't overwrite the setting of FONTSET_ASCII.
(new_fontset_from_font): Make the specified font the default for
all Latin characters.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fontset.c | 79 |
1 files changed, 5 insertions, 74 deletions
diff --git a/src/fontset.c b/src/fontset.c index dac169971d1..dd49af5177e 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -338,43 +338,6 @@ fontset_ref (fontset, c) | |||
| 338 | return elt; | 338 | return elt; |
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | |||
| 342 | /* Return the element of FONTSET for the character C, set FROM and TO | ||
| 343 | to the range of characters around C that have the same value as C. | ||
| 344 | If FONTSET is a base fontset other then the default fontset and | ||
| 345 | FONTSET doesn't contain information for C, return the information | ||
| 346 | in the default fontset. */ | ||
| 347 | |||
| 348 | #define FONTSET_REF_AND_RANGE(fontset, c, form, to) \ | ||
| 349 | (EQ (fontset, Vdefault_fontset) \ | ||
| 350 | ? char_table_ref_and_range (fontset, c, &from, &to) \ | ||
| 351 | : fontset_ref_and_range (fontset, c, &from, &to)) | ||
| 352 | |||
| 353 | static Lisp_Object | ||
| 354 | fontset_ref_and_range (fontset, c, from, to) | ||
| 355 | Lisp_Object fontset; | ||
| 356 | int c; | ||
| 357 | int *from, *to; | ||
| 358 | { | ||
| 359 | Lisp_Object elt; | ||
| 360 | |||
| 361 | elt = char_table_ref_and_range (fontset, c, from, to); | ||
| 362 | if (NILP (elt) && ! EQ (fontset, Vdefault_fontset) | ||
| 363 | /* Don't check Vdefault_fontset for a realized fontset. */ | ||
| 364 | && NILP (FONTSET_BASE (fontset))) | ||
| 365 | { | ||
| 366 | int from1, to1; | ||
| 367 | |||
| 368 | elt = char_table_ref_and_range (Vdefault_fontset, c, &from1, &to1); | ||
| 369 | if (*from < from1) | ||
| 370 | *from = from1; | ||
| 371 | if (*to > to1) | ||
| 372 | *to = to1; | ||
| 373 | } | ||
| 374 | return elt; | ||
| 375 | } | ||
| 376 | |||
| 377 | |||
| 378 | /* Set elements of FONTSET for characters in RANGE to the value ELT. | 341 | /* Set elements of FONTSET for characters in RANGE to the value ELT. |
| 379 | RANGE is a cons (FROM . TO), where FROM and TO are character codes | 342 | RANGE is a cons (FROM . TO), where FROM and TO are character codes |
| 380 | specifying a range. */ | 343 | specifying a range. */ |
| @@ -609,7 +572,7 @@ fontset_find_font (fontset, c, face, id, fallback) | |||
| 609 | return Qnil; | 572 | return Qnil; |
| 610 | if (! fallback) | 573 | if (! fallback) |
| 611 | { | 574 | { |
| 612 | elt = FONTSET_REF_AND_RANGE (base_fontset, c, from, to); | 575 | elt = char_table_ref_and_range (base_fontset, c, &from, &to); |
| 613 | range = Fcons (make_number (from), make_number (to)); | 576 | range = Fcons (make_number (from), make_number (to)); |
| 614 | if (EQ (base_fontset, Vdefault_fontset)) | 577 | if (EQ (base_fontset, Vdefault_fontset)) |
| 615 | { | 578 | { |
| @@ -1098,7 +1061,6 @@ make_fontset_for_ascii_face (f, base_fontset_id, face) | |||
| 1098 | base_fontset = FONTSET_FROM_ID (base_fontset_id); | 1061 | base_fontset = FONTSET_FROM_ID (base_fontset_id); |
| 1099 | if (!BASE_FONTSET_P (base_fontset)) | 1062 | if (!BASE_FONTSET_P (base_fontset)) |
| 1100 | base_fontset = FONTSET_BASE (base_fontset); | 1063 | base_fontset = FONTSET_BASE (base_fontset); |
| 1101 | xassert (BASE_FONTSET_P (base_fontset)); | ||
| 1102 | if (! BASE_FONTSET_P (base_fontset)) | 1064 | if (! BASE_FONTSET_P (base_fontset)) |
| 1103 | abort (); | 1065 | abort (); |
| 1104 | } | 1066 | } |
| @@ -1106,39 +1068,6 @@ make_fontset_for_ascii_face (f, base_fontset_id, face) | |||
| 1106 | base_fontset = Vdefault_fontset; | 1068 | base_fontset = Vdefault_fontset; |
| 1107 | 1069 | ||
| 1108 | fontset = make_fontset (frame, Qnil, base_fontset); | 1070 | fontset = make_fontset (frame, Qnil, base_fontset); |
| 1109 | { | ||
| 1110 | Lisp_Object elt, rfont_def, val; | ||
| 1111 | |||
| 1112 | elt = FONTSET_REF (base_fontset, 0); | ||
| 1113 | xassert (VECTORP (elt) && ASIZE (elt) > 0); | ||
| 1114 | rfont_def = Fmake_vector (make_number (4), Qnil); | ||
| 1115 | #ifdef USE_FONT_BACKEND | ||
| 1116 | if (enable_font_backend && face->font_info) | ||
| 1117 | { | ||
| 1118 | struct font *font = (struct font *) face->font_info; | ||
| 1119 | |||
| 1120 | ASET (rfont_def, 3, Fcons (font->entity, Qnil)); | ||
| 1121 | } | ||
| 1122 | else | ||
| 1123 | #endif /* USE_FONT_BACKEND */ | ||
| 1124 | { | ||
| 1125 | ASET (rfont_def, 3, build_string (face->font_name)); | ||
| 1126 | } | ||
| 1127 | ASET (rfont_def, 1, make_number (face->font_info_id)); | ||
| 1128 | ASET (rfont_def, 2, AREF (elt, 0)); | ||
| 1129 | elt = Fmake_vector (make_number (4), Qnil); | ||
| 1130 | ASET (elt, 0, make_number (charset_ordered_list_tick)); | ||
| 1131 | ASET (elt, 1, make_number (charset_ascii)); | ||
| 1132 | ASET (elt, 2, rfont_def); | ||
| 1133 | ASET (elt, 3, rfont_def); | ||
| 1134 | |||
| 1135 | val = Fcons (Qlatin, Qnil); | ||
| 1136 | map_char_table (accumulate_script_ranges, Qnil, Vchar_script_table, val); | ||
| 1137 | for (val = XCDR (val); CONSP (val); val = XCDR (val)) | ||
| 1138 | char_table_set_range (fontset, XINT (XCAR (XCAR (val))), | ||
| 1139 | XINT (XCDR (XCAR (val))), elt); | ||
| 1140 | FONTSET_FALLBACK (fontset) = elt; | ||
| 1141 | } | ||
| 1142 | return XINT (FONTSET_ID (fontset)); | 1071 | return XINT (FONTSET_ID (fontset)); |
| 1143 | } | 1072 | } |
| 1144 | 1073 | ||
| @@ -1715,7 +1644,7 @@ appended. By default, FONT-SPEC overrides the previous settings. */) | |||
| 1715 | map_char_table (accumulate_script_ranges, Qnil, Vchar_script_table, | 1644 | map_char_table (accumulate_script_ranges, Qnil, Vchar_script_table, |
| 1716 | val); | 1645 | val); |
| 1717 | range_list = XCDR (val); | 1646 | range_list = XCDR (val); |
| 1718 | if (EQ (target, Qlatin)) | 1647 | if (EQ (target, Qlatin) && NILP (FONTSET_ASCII (fontset))) |
| 1719 | { | 1648 | { |
| 1720 | if (VECTORP (font_spec)) | 1649 | if (VECTORP (font_spec)) |
| 1721 | val = generate_ascii_font_name (FONTSET_NAME (fontset), | 1650 | val = generate_ascii_font_name (FONTSET_NAME (fontset), |
| @@ -1727,7 +1656,7 @@ appended. By default, FONT-SPEC overrides the previous settings. */) | |||
| 1727 | } | 1656 | } |
| 1728 | if (CHARSETP (target)) | 1657 | if (CHARSETP (target)) |
| 1729 | { | 1658 | { |
| 1730 | if (EQ (target, Qascii)) | 1659 | if (EQ (target, Qascii) && NILP (FONTSET_ASCII (fontset))) |
| 1731 | { | 1660 | { |
| 1732 | if (VECTORP (font_spec)) | 1661 | if (VECTORP (font_spec)) |
| 1733 | font_spec = generate_ascii_font_name (FONTSET_NAME (fontset), | 1662 | font_spec = generate_ascii_font_name (FONTSET_NAME (fontset), |
| @@ -1925,6 +1854,8 @@ new_fontset_from_font (font_object) | |||
| 1925 | font_spec = Fcons (SYMBOL_NAME (AREF (font_spec, FONT_FAMILY_INDEX)), | 1854 | font_spec = Fcons (SYMBOL_NAME (AREF (font_spec, FONT_FAMILY_INDEX)), |
| 1926 | SYMBOL_NAME (AREF (font_spec, FONT_REGISTRY_INDEX))); | 1855 | SYMBOL_NAME (AREF (font_spec, FONT_REGISTRY_INDEX))); |
| 1927 | Fset_fontset_font (name, Qlatin, font_spec, Qnil, Qnil); | 1856 | Fset_fontset_font (name, Qlatin, font_spec, Qnil, Qnil); |
| 1857 | XSETCDR (font_spec, build_string ("iso10646-1")); | ||
| 1858 | Fset_fontset_font (name, Qlatin, font_spec, Qnil, Qappend); | ||
| 1928 | Fset_fontset_font (name, Qnil, font_spec, Qnil, Qnil); | 1859 | Fset_fontset_font (name, Qnil, font_spec, Qnil, Qnil); |
| 1929 | return XINT (FONTSET_ID (fontset)); | 1860 | return XINT (FONTSET_ID (fontset)); |
| 1930 | } | 1861 | } |