diff options
| author | Kenichi Handa | 2008-12-30 23:42:40 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2008-12-30 23:42:40 +0000 |
| commit | c19cab20a1a9fe9b00f21fef3a3fc3c559ce0710 (patch) | |
| tree | 322c2d56af48e6b3fce560295e422f96f5b9b264 | |
| parent | 78a2f9cd5362633833419cbcbc3cefa2e65d10a3 (diff) | |
| download | emacs-c19cab20a1a9fe9b00f21fef3a3fc3c559ce0710.tar.gz emacs-c19cab20a1a9fe9b00f21fef3a3fc3c559ce0710.zip | |
(CHAR_VARIATION_SELECTOR_P): New macro.
(CHAR_SURROGATE_PAIR_P): New macro.
| -rw-r--r-- | src/ChangeLog | 19 | ||||
| -rw-r--r-- | src/character.h | 20 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index cba115c6104..c06f20d5ad7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,22 @@ | |||
| 1 | 2008-12-30 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * character.h (CHAR_VARIATION_SELECTOR_P): New macro. | ||
| 4 | (CHAR_SURROGATE_PAIR_P): New macro. | ||
| 5 | |||
| 6 | * font.h (struct font_driver): New member get_variation_glyphs. | ||
| 7 | |||
| 8 | * font.c (font_range): Don't require a font for a variation | ||
| 9 | selector. | ||
| 10 | (Ffont_variation_glyphs): New function. | ||
| 11 | (syms_of_font): Defsubr it. | ||
| 12 | |||
| 13 | * ftfont.c (ftfont_driver): Set the member get_variation_glyphs to | ||
| 14 | ftfont_variation_glyphs. | ||
| 15 | (setup_otf_gstring): New function. | ||
| 16 | (ftfont_drive_otf): Use it. | ||
| 17 | (ftfont_shape_by_flt): Handle variation selector. | ||
| 18 | (ftfont_variation_glyphs): New function. | ||
| 19 | |||
| 1 | 2008-12-30 Martin Rudalics <rudalics@gmx.at> | 20 | 2008-12-30 Martin Rudalics <rudalics@gmx.at> |
| 2 | 21 | ||
| 3 | * frame.c (Vemacs_iconified): Remove. | 22 | * frame.c (Vemacs_iconified): Remove. |
diff --git a/src/character.h b/src/character.h index 34e696e5083..a766b767eb3 100644 --- a/src/character.h +++ b/src/character.h | |||
| @@ -610,6 +610,26 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 610 | ? ASCII_CHAR_WIDTH (c) \ | 610 | ? ASCII_CHAR_WIDTH (c) \ |
| 611 | : XINT (CHAR_TABLE_REF (Vchar_width_table, c))) | 611 | : XINT (CHAR_TABLE_REF (Vchar_width_table, c))) |
| 612 | 612 | ||
| 613 | /* If C is a variation selector, return the index numnber of the | ||
| 614 | variation selector (1..256). Otherwise, return 0. */ | ||
| 615 | |||
| 616 | #define CHAR_VARIATION_SELECTOR_P(c) \ | ||
| 617 | ((c) < 0xFE00 ? 0 \ | ||
| 618 | : (c) <= 0xFE0F ? (c) - 0xFE00 + 1 \ | ||
| 619 | : (c) < 0xE0100 ? 0 \ | ||
| 620 | : (c) <= 0xE01EF ? (c) - 0xE0100 + 17 \ | ||
| 621 | : 0) | ||
| 622 | |||
| 623 | /* If C is a high surrogate, return 1. If C is a low surrogate, | ||
| 624 | return 0. Otherwise, return 0. */ | ||
| 625 | |||
| 626 | #define CHAR_SURROGATE_PAIR_P(c) \ | ||
| 627 | ((c) < 0xD800 ? 0 \ | ||
| 628 | : (c) <= 0xDBFF ? 1 \ | ||
| 629 | : (c) <= 0xDFFF ? 2 \ | ||
| 630 | : 0) | ||
| 631 | |||
| 632 | |||
| 613 | extern int char_resolve_modifier_mask P_ ((int)); | 633 | extern int char_resolve_modifier_mask P_ ((int)); |
| 614 | extern int char_string P_ ((unsigned, unsigned char *)); | 634 | extern int char_string P_ ((unsigned, unsigned char *)); |
| 615 | extern int string_char P_ ((const unsigned char *, | 635 | extern int string_char P_ ((const unsigned char *, |