summaryrefslogtreecommitdiff
path: root/src/charset.h
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2008-11-27 08:00:43 +0000
committerKenichi Handa <handa@m17n.org>2008-11-27 08:00:43 +0000
commit2bc20f0b55cd7e20da31c05aa7c1711ba3786c9a (patch)
treef3b63fc040ecd9e2bd212acdda849142f5a026d2 /src/charset.h
parentecca2aad92d1b528fffbebba5867183b110a6fa9 (diff)
downloademacs-2bc20f0b55cd7e20da31c05aa7c1711ba3786c9a.tar.gz
(enum charset_method): Delete
CHARSET_METHOD_MAP_DEFERRED. (DECODE_CHAR): Check if the decoder vector is ready. (ENCODE_CHAR): Check if the encoder char-table is ready. (maybe_unify_char): Extern it.
Diffstat (limited to 'src/charset.h')
-rw-r--r--src/charset.h20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/charset.h b/src/charset.h
index a49b2d36dec..1dac7add242 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -66,9 +66,9 @@ enum charset_attr_index
/* Property list of the charset. */
charset_plist,
- /* If the method of the charset is `MAP_DEFERRED', the value is a
- mapping vector or a file name that contains mapping vector.
- Otherwise, nil. */
+ /* If the method of the charset is `MAP', the value is a mapping
+ vector or a file name that contains mapping vector. Otherwise,
+ nil. */
charset_map,
/* If the method of the charset is `MAP', the value is a vector
@@ -134,11 +134,6 @@ enum charset_method
conversion. */
CHARSET_METHOD_MAP,
- /* Same as above but decoder and encoder are loaded from a file on
- demand. Once loaded, the method is changed to
- CHARSET_METHOD_MAP. */
- CHARSET_METHOD_MAP_DEFERRED,
-
/* A charset of this method is a subset of another charset. */
CHARSET_METHOD_SUBSET,
@@ -410,9 +405,10 @@ extern Lisp_Object Vchar_charset_set;
? (code) - (charset)->min_code + (charset)->code_offset \
: decode_char ((charset), (code))) \
: (charset)->method == CHARSET_METHOD_MAP \
- ? ((charset)->code_linear_p \
+ ? (((charset)->code_linear_p \
+ && VECTORP (CHARSET_DECODER (charset))) \
? XINT (AREF (CHARSET_DECODER (charset), \
- (code) - (charset)->min_code)) \
+ (code) - (charset)->min_code)) \
: decode_char ((charset), (code))) \
: decode_char ((charset), (code)))
@@ -445,7 +441,8 @@ extern Lisp_Object charset_work;
? (c) - (charset)->code_offset + (charset)->min_code \
: encode_char ((charset), (c))) \
: (charset)->method == CHARSET_METHOD_MAP \
- ? ((charset)->compact_codes_p \
+ ? (((charset)->compact_codes_p \
+ && CHAR_TABLE_P (CHARSET_ENCODER (charset))) \
? (charset_work = CHAR_TABLE_REF (CHARSET_ENCODER (charset), (c)), \
(NILP (charset_work) \
? (charset)->invalid_code \
@@ -538,6 +535,7 @@ extern int charset_unibyte;
extern struct charset *char_charset P_ ((int, Lisp_Object, unsigned *));
extern Lisp_Object charset_attributes P_ ((int));
+extern int maybe_unify_char P_ ((int, Lisp_Object));
extern int decode_char P_ ((struct charset *, unsigned));
extern unsigned encode_char P_ ((struct charset *, int));
extern int string_xstring_p P_ ((Lisp_Object));