changeset 17321:9f837bea89e3

(CHARSET_TABLE_ENTRY): Handle ASCII charset correctly. (SPLIT_NON_ASCII_CHAR, SPLIT_CHAR): Return -1 in C2 for DIMENSION1 characters.
author Kenichi Handa <handa@m17n.org>
date Mon, 07 Apr 1997 07:12:13 +0000
parents 9d15bec5f47e
children a7d9b8e167ca
files src/charset.h
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/charset.h	Mon Apr 07 07:12:13 1997 +0000
+++ b/src/charset.h	Mon Apr 07 07:12:13 1997 +0000
@@ -310,8 +310,9 @@
    We provide these macros for efficiency.  No range check of CHARSET.  */
 
 /* Return entry of CHARSET (lisp integer) in Vcharset_table.  */
-#define CHARSET_TABLE_ENTRY(charset) \
-  XCHAR_TABLE (Vcharset_table)->contents[charset]
+#define CHARSET_TABLE_ENTRY(charset)					\
+  XCHAR_TABLE (Vcharset_table)->contents[((charset) == CHARSET_ASCII	\
+					  ? 0 : (charset) + 128)]
 
 /* Return information INFO-IDX of CHARSET.  */
 #define CHARSET_TABLE_INFO(charset, info_idx) \
@@ -464,12 +465,12 @@
 
 /* The charset of non-ASCII character C is set to CHARSET, and the
    position-codes of C are set to C1 and C2.  C2 of DIMENSION1 character
-   is 0.  */
+   is -1.  */
 #define SPLIT_NON_ASCII_CHAR(c, charset, c1, c2)			 \
   ((c) < MIN_CHAR_OFFICIAL_DIMENSION2					 \
    ? (charset = CHAR_FIELD2 (c) + 0x70,					 \
       c1 = CHAR_FIELD3 (c),						 \
-      c2 = 0)								 \
+      c2 = -1)								 \
    : (charset = ((c) < MIN_CHAR_COMPOSITION				 \
 		 ? (CHAR_FIELD1 (c)					 \
 		    + ((c) < MIN_CHAR_PRIVATE_DIMENSION2 ? 0x8F : 0xE0)) \
@@ -479,14 +480,14 @@
 
 /* The charset of character C is set to CHARSET, and the
    position-codes of C are set to C1 and C2.  C2 of DIMENSION1 character
-   is 0.  */
+   is -1.  */
 #define SPLIT_CHAR(c, charset, c1, c2)		 	\
   (SINGLE_BYTE_CHAR_P (c)			 	\
-   ? charset = CHARSET_ASCII, c1 = (c), c2 = 0	 	\
+   ? charset = CHARSET_ASCII, c1 = (c), c2 = -1	 	\
    : SPLIT_NON_ASCII_CHAR (c, charset, c1, c2))
 
 /* The charset of the character at STR is set to CHARSET, and the
-   position-codes are set to C1 and C2.  C2 of DIMENSION1 character is 0.
+   position-codes are set to C1 and C2.  C2 of DIMENSION1 character is -1.
    If the character is a composite character, the upper 7-bit and
    lower 7-bit of CMPCHAR-ID are set in C1 and C2 respectively.  No
    range checking.  */