summaryrefslogtreecommitdiff
path: root/src/charset.h
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2004-02-06 11:05:20 +0000
committerKenichi Handa <handa@m17n.org>2004-02-06 11:05:20 +0000
commit1c305bc1f58f34d89f5d975a52cfc66b3df7715a (patch)
tree82e1806d3a14c4d516456dc02f90a4668b62c9d0 /src/charset.h
parentffccb0b664492a8ff27565f865927977df4af091 (diff)
downloademacs-1c305bc1f58f34d89f5d975a52cfc66b3df7715a.tar.gz
(CHAR_CHARSET_P): Fix for the case that the method is subset or
superset.
Diffstat (limited to 'src/charset.h')
-rw-r--r--src/charset.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/charset.h b/src/charset.h
index 18fdcfb16c0..0965bb29d2c 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -110,8 +110,8 @@ enum charset_attr_index
charset_unify_map,
/* If characters in the charset must be unified Unicode, the value
- is a char table that maps a character code in the charset to
- the corresponding Unicode character. */
+ is a char table that maps a unified Unicode character code to
+ the non-unified character code in the charset. */
charset_deunifier,
/* The length of the charset attribute vector. */
@@ -484,7 +484,9 @@ extern int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL];
/* 1 iff CHARSET may contain the character C. */
#define CHAR_CHARSET_P(c, charset) \
((ASCII_CHAR_P (c) && (charset)->ascii_compatible_p) \
- || (CHARSET_UNIFIED_P (charset) \
+ || ((CHARSET_UNIFIED_P (charset) \
+ || (charset)->method == CHARSET_METHOD_SUBSET \
+ || (charset)->method == CHARSET_METHOD_SUPERSET) \
? encode_char ((charset), (c)) != (charset)->invalid_code \
: (CHARSET_FAST_MAP_REF ((c), (charset)->fast_map) \
&& ((charset)->method == CHARSET_METHOD_OFFSET \