aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa1998-07-06 06:33:55 +0000
committerKenichi Handa1998-07-06 06:33:55 +0000
commit8a73a7048475eaab1f75310a30017ad126b48123 (patch)
tree9915d5ffc144e6b0a00257ddaa5e745dd80a4d47 /src
parent4c0fbc0814aab8ab558fe3c5bc71534c380fd9e8 (diff)
downloademacs-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.c29
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. */
106Lisp_Object Vnonascii_translation_table; 106Lisp_Object Vnonascii_translation_table;
107 107
108/* List of all possible generic characters. */
109Lisp_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
586DEFUN ("generic-character-list", Fgeneric_character_list,
587 Sgeneric_character_list, 0, 0, 0,
588 "Return a list of all possible generic characters.\n\
589It includes a generic character for a charset not yet defined.")
590 ()
591{
592 return Vgeneric_character_list;
593}
594
583DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char, 595DEFUN ("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);