# HG changeset patch # User Kenichi Handa # Date 888888556 0 # Node ID 9f32198e0d9f6d6a4e817fcd9e0697642ee71ad8 # Parent 3bf522f06501d8e96b10a12870fd44708bca9d7e (NONASCII_INSERT_OFFSET): New macro. (VALID_MULTIBYTE_CHAR_P): New macro. diff -r 3bf522f06501 -r 9f32198e0d9f src/charset.h --- a/src/charset.h Tue Mar 03 01:29:16 1998 +0000 +++ b/src/charset.h Tue Mar 03 01:29:16 1998 +0000 @@ -475,6 +475,29 @@ ((c) >= 0 \ && (SINGLE_BYTE_CHAR_P (c) || char_valid_p (c, genericp))) +/* This default value is used when nonascii-translate-table or + nonascii-insert-offset fail to convert unibyte character to a valid + multibyte character. This makes a Latin-1 character. */ + +#define DEFAULT_NONASCII_INSERT_OFFSET 0x800 + +/* Check if the character C is valid as a multibyte character. */ + +#define VALID_MULTIBYTE_CHAR_P(c) \ + ((c) < MIN_CHAR_OFFICIAL_DIMENSION2 \ + ? (!NILP (XCHAR_TABLE (Vcharset_table)->contents[CHAR_FIELD2 (c) \ + + 0xF0]) \ + && CHAR_FIELD3 (c) >= 32) \ + : ((c) < MIN_CHAR_PRIVATE_DIMENSION2 \ + ? (!NILP (XCHAR_TABLE (Vcharset_table)->contents[CHAR_FIELD1 (c) \ + + 0x10F]) \ + && CHAR_FIELD2 (c) >= 32 && CHAR_FIELD3 (c) >= 32) \ + : ((c) < MIN_CHAR_COMPOSITION \ + ? (!NILP (XCHAR_TABLE (Vcharset_table)->contents[CHAR_FIELD1 (c) \ + + 0x160]) \ + && CHAR_FIELD2 (c) >= 32 && CHAR_FIELD3 (c) >= 32) \ + : (c) < MIN_CHAR_COMPOSITION + n_cmpchars))) + /* The charset of non-ASCII character C is stored in CHARSET, and the position-codes of C are stored in C1 and C2. We store -1 in C2 if the character is just 2 bytes.