Mercurial > hg > xemacs-beta
diff src/mule-charset.c @ 213:78f53ef88e17 r20-4b5
Import from CVS: tag r20-4b5
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:06:47 +0200 |
parents | 3d6bfa290dbd |
children | f955c73f5258 |
line wrap: on
line diff
--- a/src/mule-charset.c Mon Aug 13 10:05:53 2007 +0200 +++ b/src/mule-charset.c Mon Aug 13 10:06:47 2007 +0200 @@ -436,7 +436,7 @@ /* Make a new charset. */ static Lisp_Object -make_charset (Lisp_Object name, Bufbyte leading_byte, unsigned char rep_bytes, +make_charset (int id, Lisp_Object name, Bufbyte leading_byte, unsigned char rep_bytes, unsigned char type, unsigned char columns, unsigned char graphic, Bufbyte final, unsigned char direction, Lisp_Object doc, Lisp_Object reg) @@ -447,6 +447,7 @@ cs = alloc_lcrecord_type (struct Lisp_Charset, lrecord_charset); XSETCHARSET (obj, cs); + CHARSET_ID (cs) = id; CHARSET_NAME (cs) = name; CHARSET_LEADING_BYTE (cs) = leading_byte; CHARSET_REP_BYTES (cs) = rep_bytes; @@ -760,7 +761,7 @@ if (columns == -1) columns = dimension; - charset = make_charset (name, lb, dimension + 2, type, columns, graphic, + charset = make_charset (-1, name, lb, dimension + 2, type, columns, graphic, final, direction, doc_string, registry); if (!NILP (ccl_program)) XCHARSET_CCL_PROGRAM (charset) = ccl_program; @@ -804,7 +805,7 @@ doc_string = CHARSET_DOC_STRING (cs); registry = CHARSET_REGISTRY (cs); - new_charset = make_charset (new_name, lb, dimension + 2, type, columns, + new_charset = make_charset (-1, new_name, lb, dimension + 2, type, columns, graphic, final, direction, doc_string, registry); CHARSET_REVERSE_DIRECTION_CHARSET (cs) = new_charset; @@ -938,6 +939,14 @@ return Qnil; /* not reached */ } +DEFUN ("charset-id", Fcharset_id, 1, 1, 0, /* +Return charset identification number of CHARSET. +*/ + (charset)) +{ + return make_int(XCHARSET_ID (Fget_charset (charset))); +} + /* #### We need to figure out which properties we really want to allow to be set. */ @@ -1149,6 +1158,7 @@ DEFSUBR (Fcharset_doc_string); DEFSUBR (Fcharset_dimension); DEFSUBR (Fcharset_property); + DEFSUBR (Fcharset_id); DEFSUBR (Fset_charset_ccl_program); DEFSUBR (Fset_charset_registry); @@ -1231,73 +1241,73 @@ ease of access. */ Vcharset_ascii = - make_charset (Qascii, LEADING_BYTE_ASCII, 1, + make_charset (0, Qascii, LEADING_BYTE_ASCII, 1, CHARSET_TYPE_94, 1, 0, 'B', CHARSET_LEFT_TO_RIGHT, build_string ("ASCII (ISO 646 IRV)"), build_string ("iso8859-1")); Vcharset_control_1 = - make_charset (Qcontrol_1, LEADING_BYTE_CONTROL_1, 2, + make_charset (-1, Qcontrol_1, LEADING_BYTE_CONTROL_1, 2, CHARSET_TYPE_94, 1, 0, 0, CHARSET_LEFT_TO_RIGHT, build_string ("Control characters"), build_string ("")); Vcharset_latin_iso8859_1 = - make_charset (Qlatin_iso8859_1, LEADING_BYTE_LATIN_ISO8859_1, 2, + make_charset (129, Qlatin_iso8859_1, LEADING_BYTE_LATIN_ISO8859_1, 2, CHARSET_TYPE_96, 1, 1, 'A', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-1 (Latin-1)"), build_string ("iso8859-1")); Vcharset_latin_iso8859_2 = - make_charset (Qlatin_iso8859_2, LEADING_BYTE_LATIN_ISO8859_2, 2, + make_charset (130, Qlatin_iso8859_2, LEADING_BYTE_LATIN_ISO8859_2, 2, CHARSET_TYPE_96, 1, 1, 'B', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-2 (Latin-2)"), build_string ("iso8859-2")); Vcharset_latin_iso8859_3 = - make_charset (Qlatin_iso8859_3, LEADING_BYTE_LATIN_ISO8859_3, 2, + make_charset (131, Qlatin_iso8859_3, LEADING_BYTE_LATIN_ISO8859_3, 2, CHARSET_TYPE_96, 1, 1, 'C', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-3 (Latin-3)"), build_string ("iso8859-3")); Vcharset_latin_iso8859_4 = - make_charset (Qlatin_iso8859_4, LEADING_BYTE_LATIN_ISO8859_4, 2, + make_charset (132, Qlatin_iso8859_4, LEADING_BYTE_LATIN_ISO8859_4, 2, CHARSET_TYPE_96, 1, 1, 'D', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-4 (Latin-4)"), build_string ("iso8859-4")); Vcharset_cyrillic_iso8859_5 = - make_charset (Qcyrillic_iso8859_5, LEADING_BYTE_CYRILLIC_ISO8859_5, 2, + make_charset (140, Qcyrillic_iso8859_5, LEADING_BYTE_CYRILLIC_ISO8859_5, 2, CHARSET_TYPE_96, 1, 1, 'L', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-5 (Cyrillic)"), build_string ("iso8859-5")); Vcharset_arabic_iso8859_6 = - make_charset (Qarabic_iso8859_6, LEADING_BYTE_ARABIC_ISO8859_6, 2, + make_charset (135, Qarabic_iso8859_6, LEADING_BYTE_ARABIC_ISO8859_6, 2, CHARSET_TYPE_96, 1, 1, 'G', CHARSET_RIGHT_TO_LEFT, build_string ("ISO 8859-6 (Arabic)"), build_string ("iso8859-6")); Vcharset_greek_iso8859_7 = - make_charset (Qgreek_iso8859_7, LEADING_BYTE_GREEK_ISO8859_7, 2, + make_charset (134, Qgreek_iso8859_7, LEADING_BYTE_GREEK_ISO8859_7, 2, CHARSET_TYPE_96, 1, 1, 'F', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-7 (Greek)"), build_string ("iso8859-7")); Vcharset_hebrew_iso8859_8 = - make_charset (Qhebrew_iso8859_8, LEADING_BYTE_HEBREW_ISO8859_8, 2, + make_charset (136, Qhebrew_iso8859_8, LEADING_BYTE_HEBREW_ISO8859_8, 2, CHARSET_TYPE_96, 1, 1, 'H', CHARSET_RIGHT_TO_LEFT, build_string ("ISO 8859-8 (Hebrew)"), build_string ("iso8859-8")); Vcharset_latin_iso8859_9 = - make_charset (Qlatin_iso8859_9, LEADING_BYTE_LATIN_ISO8859_9, 2, + make_charset (141, Qlatin_iso8859_9, LEADING_BYTE_LATIN_ISO8859_9, 2, CHARSET_TYPE_96, 1, 1, 'M', CHARSET_LEFT_TO_RIGHT, build_string ("ISO 8859-9 (Latin-5)"), build_string ("iso8859-9")); Vcharset_thai_tis620 = - make_charset (Qthai_tis620, LEADING_BYTE_THAI_TIS620, 2, + make_charset (133, Qthai_tis620, LEADING_BYTE_THAI_TIS620, 2, CHARSET_TYPE_96, 1, 1, 'T', CHARSET_LEFT_TO_RIGHT, build_string ("TIS 620.2529 (Thai)"), @@ -1305,21 +1315,21 @@ /* Japanese */ Vcharset_katakana_jisx0201 = - make_charset (Qkatakana_jisx0201, + make_charset (137, Qkatakana_jisx0201, LEADING_BYTE_KATAKANA_JISX0201, 2, CHARSET_TYPE_94, 1, 1, 'I', CHARSET_LEFT_TO_RIGHT, build_string ("JIS X0201-Katakana"), build_string ("jisx0201.1976")); Vcharset_latin_jisx0201 = - make_charset (Qlatin_jisx0201, + make_charset (138, Qlatin_jisx0201, LEADING_BYTE_LATIN_JISX0201, 2, CHARSET_TYPE_94, 1, 0, 'J', CHARSET_LEFT_TO_RIGHT, build_string ("JIS X0201-Latin"), build_string ("jisx0201.1976")); Vcharset_japanese_jisx0208_1978 = - make_charset (Qjapanese_jisx0208_1978, + make_charset (144, Qjapanese_jisx0208_1978, LEADING_BYTE_JAPANESE_JISX0208_1978, 3, CHARSET_TYPE_94X94, 2, 0, '@', CHARSET_LEFT_TO_RIGHT, @@ -1327,14 +1337,14 @@ ("JIS X0208-1978 (Japanese Kanji; Old Version)"), build_string ("\\(jisx0208\\|jisc6226\\).19")); Vcharset_japanese_jisx0208 = - make_charset (Qjapanese_jisx0208, + make_charset (146, Qjapanese_jisx0208, LEADING_BYTE_JAPANESE_JISX0208, 3, CHARSET_TYPE_94X94, 2, 0, 'B', CHARSET_LEFT_TO_RIGHT, build_string ("JIS X0208-1983 (Japanese Kanji)"), build_string ("jisx0208.19\\(83\\|90\\)")); Vcharset_japanese_jisx0212 = - make_charset (Qjapanese_jisx0212, + make_charset (148, Qjapanese_jisx0212, LEADING_BYTE_JAPANESE_JISX0212, 3, CHARSET_TYPE_94X94, 2, 0, 'D', CHARSET_LEFT_TO_RIGHT, @@ -1343,14 +1353,14 @@ /* Chinese */ Vcharset_chinese_gb2312 = - make_charset (Qchinese_gb2312, LEADING_BYTE_CHINESE_GB2312, 3, + make_charset (145, Qchinese_gb2312, LEADING_BYTE_CHINESE_GB2312, 3, CHARSET_TYPE_94X94, 2, 0, 'A', CHARSET_LEFT_TO_RIGHT, build_string ("GB 2312 (Simplified Chinese)"), build_string ("gb2312")); #define CHINESE_CNS_PLANE_RE(n) "cns11643[.-]\\(.*[.-]\\)?" n "$" Vcharset_chinese_cns11643_1 = - make_charset (Qchinese_cns11643_1, + make_charset (149, Qchinese_cns11643_1, LEADING_BYTE_CHINESE_CNS11643_1, 3, CHARSET_TYPE_94X94, 2, 0, 'G', CHARSET_LEFT_TO_RIGHT, @@ -1358,7 +1368,7 @@ ("CNS 11643 Plane 1 (Traditional Chinese for daily use)"), build_string (CHINESE_CNS_PLANE_RE("1"))); Vcharset_chinese_cns11643_2 = - make_charset (Qchinese_cns11643_2, + make_charset (150, Qchinese_cns11643_2, LEADING_BYTE_CHINESE_CNS11643_2, 3, CHARSET_TYPE_94X94, 2, 0, 'H', CHARSET_LEFT_TO_RIGHT, @@ -1366,14 +1376,14 @@ ("CNS 11643 Plane 2 (Traditional Chinese for daily use)"), build_string (CHINESE_CNS_PLANE_RE("2"))); Vcharset_chinese_big5_1 = - make_charset (Qchinese_big5_1, LEADING_BYTE_CHINESE_BIG5_1, 3, + make_charset (152, Qchinese_big5_1, LEADING_BYTE_CHINESE_BIG5_1, 3, CHARSET_TYPE_94X94, 2, 0, '0', CHARSET_LEFT_TO_RIGHT, build_string ("Big5 Level 1 (Traditional Chinese for daily use)"), build_string ("big5")); Vcharset_chinese_big5_2 = - make_charset (Qchinese_big5_2, LEADING_BYTE_CHINESE_BIG5_2, 3, + make_charset (153, Qchinese_big5_2, LEADING_BYTE_CHINESE_BIG5_2, 3, CHARSET_TYPE_94X94, 2, 0, '1', CHARSET_LEFT_TO_RIGHT, build_string @@ -1381,7 +1391,7 @@ build_string ("big5")); Vcharset_korean_ksc5601 = - make_charset (Qkorean_ksc5601, LEADING_BYTE_KOREAN_KSC5601, 3, + make_charset (147, Qkorean_ksc5601, LEADING_BYTE_KOREAN_KSC5601, 3, CHARSET_TYPE_94X94, 2, 0, 'C', CHARSET_LEFT_TO_RIGHT, build_string ("KS C5601 (Hangul and Korean Hanja)"), @@ -1390,7 +1400,7 @@ This is going to lead to problems because you can run out of room, esp. as we don't yet recycle numbers. */ Vcharset_composite = - make_charset (Qcomposite, LEADING_BYTE_COMPOSITE, 3, + make_charset (-1, Qcomposite, LEADING_BYTE_COMPOSITE, 3, CHARSET_TYPE_96X96, 2, 0, 0, CHARSET_LEFT_TO_RIGHT, build_string ("Composite characters"),