diff options
| author | Kenichi Handa | 1998-07-06 06:33:55 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1998-07-06 06:33:55 +0000 |
| commit | 8a73a7048475eaab1f75310a30017ad126b48123 (patch) | |
| tree | 9915d5ffc144e6b0a00257ddaa5e745dd80a4d47 /src | |
| parent | 4c0fbc0814aab8ab558fe3c5bc71534c380fd9e8 (diff) | |
| download | emacs-8a73a7048475eaab1f75310a30017ad126b48123.tar.gz emacs-8a73a7048475eaab1f75310a30017ad126b48123.zip | |
(Vgeneric_character_list): New variable.
(init_charset_once): Init and staticpro it.
(Fgeneric_character_list): New function.
(syms_of_charset): defsubr it.
Diffstat (limited to 'src')
| -rw-r--r-- | src/charset.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/charset.c b/src/charset.c index f9a10205a20..10627b0970c 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -105,6 +105,9 @@ int nonascii_insert_offset; | |||
| 105 | to multibyte codes, or nil. */ | 105 | to multibyte codes, or nil. */ |
| 106 | Lisp_Object Vnonascii_translation_table; | 106 | Lisp_Object Vnonascii_translation_table; |
| 107 | 107 | ||
| 108 | /* List of all possible generic characters. */ | ||
| 109 | Lisp_Object Vgeneric_character_list; | ||
| 110 | |||
| 108 | #define min(X, Y) ((X) < (Y) ? (X) : (Y)) | 111 | #define min(X, Y) ((X) < (Y) ? (X) : (Y)) |
| 109 | #define max(X, Y) ((X) > (Y) ? (X) : (Y)) | 112 | #define max(X, Y) ((X) > (Y) ? (X) : (Y)) |
| 110 | 113 | ||
| @@ -580,6 +583,15 @@ DESCRIPTION (string) is the description string of the charset.") | |||
| 580 | return Qnil; | 583 | return Qnil; |
| 581 | } | 584 | } |
| 582 | 585 | ||
| 586 | DEFUN ("generic-character-list", Fgeneric_character_list, | ||
| 587 | Sgeneric_character_list, 0, 0, 0, | ||
| 588 | "Return a list of all possible generic characters.\n\ | ||
| 589 | It includes a generic character for a charset not yet defined.") | ||
| 590 | () | ||
| 591 | { | ||
| 592 | return Vgeneric_character_list; | ||
| 593 | } | ||
| 594 | |||
| 583 | DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char, | 595 | DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char, |
| 584 | Sget_unused_iso_final_char, 2, 2, 0, | 596 | Sget_unused_iso_final_char, 2, 2, 0, |
| 585 | "Return an unsed ISO's final char for a charset of DIMENISION and CHARS.\n\ | 597 | "Return an unsed ISO's final char for a charset of DIMENISION and CHARS.\n\ |
| @@ -1662,6 +1674,7 @@ init_charset_once () | |||
| 1662 | 1674 | ||
| 1663 | staticpro (&Vcharset_table); | 1675 | staticpro (&Vcharset_table); |
| 1664 | staticpro (&Vcharset_symbol_table); | 1676 | staticpro (&Vcharset_symbol_table); |
| 1677 | staticpro (&Vgeneric_character_list); | ||
| 1665 | 1678 | ||
| 1666 | /* This has to be done here, before we call Fmake_char_table. */ | 1679 | /* This has to be done here, before we call Fmake_char_table. */ |
| 1667 | Qcharset_table = intern ("charset-table"); | 1680 | Qcharset_table = intern ("charset-table"); |
| @@ -1706,6 +1719,21 @@ init_charset_once () | |||
| 1706 | WIDTH_BY_CHAR_HEAD (LEADING_CODE_PRIVATE_12) = 2; | 1719 | WIDTH_BY_CHAR_HEAD (LEADING_CODE_PRIVATE_12) = 2; |
| 1707 | WIDTH_BY_CHAR_HEAD (LEADING_CODE_PRIVATE_21) = 1; | 1720 | WIDTH_BY_CHAR_HEAD (LEADING_CODE_PRIVATE_21) = 1; |
| 1708 | WIDTH_BY_CHAR_HEAD (LEADING_CODE_PRIVATE_22) = 2; | 1721 | WIDTH_BY_CHAR_HEAD (LEADING_CODE_PRIVATE_22) = 2; |
| 1722 | |||
| 1723 | { | ||
| 1724 | Lisp_Object val = Qnil; | ||
| 1725 | |||
| 1726 | for (i = 0x81; i < 0x90; i++) | ||
| 1727 | val = Fcons (make_number ((i - 0x70) << 7), val); | ||
| 1728 | for (; i < 0x9A; i++) | ||
| 1729 | val = Fcons (make_number ((i - 0x8F) << 14), val); | ||
| 1730 | for (i = 0xA0; i < 0xF0; i++) | ||
| 1731 | val = Fcons (make_number ((i - 0x70) << 7), val); | ||
| 1732 | for (; i < 0xFF; i++) | ||
| 1733 | val = Fcons (make_number ((i - 0xE0) << 14), val); | ||
| 1734 | val = Fcons (make_number (GENERIC_COMPOSITION_CHAR), val); | ||
| 1735 | Vgeneric_character_list = Fnreverse (val); | ||
| 1736 | } | ||
| 1709 | } | 1737 | } |
| 1710 | 1738 | ||
| 1711 | #ifdef emacs | 1739 | #ifdef emacs |
| @@ -1737,6 +1765,7 @@ syms_of_charset () | |||
| 1737 | CHARSET_SYMBOL (CHARSET_COMPOSITION) = Qcomposition; | 1765 | CHARSET_SYMBOL (CHARSET_COMPOSITION) = Qcomposition; |
| 1738 | 1766 | ||
| 1739 | defsubr (&Sdefine_charset); | 1767 | defsubr (&Sdefine_charset); |
| 1768 | defsubr (&Sgeneric_character_list); | ||
| 1740 | defsubr (&Sget_unused_iso_final_char); | 1769 | defsubr (&Sget_unused_iso_final_char); |
| 1741 | defsubr (&Sdeclare_equiv_charset); | 1770 | defsubr (&Sdeclare_equiv_charset); |
| 1742 | defsubr (&Sfind_charset_region); | 1771 | defsubr (&Sfind_charset_region); |