diff options
Diffstat (limited to 'src/charset.h')
-rw-r--r-- | src/charset.h | 75 |
1 files changed, 36 insertions, 39 deletions
diff --git a/src/charset.h b/src/charset.h index 1743eb4c909..1edb4a248ac 100644 --- a/src/charset.h +++ b/src/charset.h @@ -150,8 +150,7 @@ struct charset /* Index to charset_table. */ int id; - /* Index to Vcharset_hash_table. */ - ptrdiff_t hash_index; + Lisp_Object attributes; /* Dimension of the charset: 1, 2, 3, or 4. */ int dimension; @@ -267,18 +266,18 @@ extern int emacs_mule_charset[256]; /* Return the attribute vector of charset whose symbol is SYMBOL. */ #define CHARSET_SYMBOL_ATTRIBUTES(symbol) \ - Fgethash ((symbol), Vcharset_hash_table, Qnil) - -#define CHARSET_ATTR_ID(attrs) AREF ((attrs), charset_id) -#define CHARSET_ATTR_NAME(attrs) AREF ((attrs), charset_name) -#define CHARSET_ATTR_PLIST(attrs) AREF ((attrs), charset_plist) -#define CHARSET_ATTR_MAP(attrs) AREF ((attrs), charset_map) -#define CHARSET_ATTR_DECODER(attrs) AREF ((attrs), charset_decoder) -#define CHARSET_ATTR_ENCODER(attrs) AREF ((attrs), charset_encoder) -#define CHARSET_ATTR_SUBSET(attrs) AREF ((attrs), charset_subset) -#define CHARSET_ATTR_SUPERSET(attrs) AREF ((attrs), charset_superset) -#define CHARSET_ATTR_UNIFY_MAP(attrs) AREF ((attrs), charset_unify_map) -#define CHARSET_ATTR_DEUNIFIER(attrs) AREF ((attrs), charset_deunifier) + Fgethash (symbol, Vcharset_hash_table, Qnil) + +#define CHARSET_ATTR_ID(attrs) AREF (attrs, charset_id) +#define CHARSET_ATTR_NAME(attrs) AREF (attrs, charset_name) +#define CHARSET_ATTR_PLIST(attrs) AREF (attrs, charset_plist) +#define CHARSET_ATTR_MAP(attrs) AREF (attrs, charset_map) +#define CHARSET_ATTR_DECODER(attrs) AREF (attrs, charset_decoder) +#define CHARSET_ATTR_ENCODER(attrs) AREF (attrs, charset_encoder) +#define CHARSET_ATTR_SUBSET(attrs) AREF (attrs, charset_subset) +#define CHARSET_ATTR_SUPERSET(attrs) AREF (attrs, charset_superset) +#define CHARSET_ATTR_UNIFY_MAP(attrs) AREF (attrs, charset_unify_map) +#define CHARSET_ATTR_DEUNIFIER(attrs) AREF (attrs, charset_deunifier) #define CHARSET_SYMBOL_ID(symbol) \ CHARSET_ATTR_ID (CHARSET_SYMBOL_ATTRIBUTES (symbol)) @@ -286,14 +285,12 @@ extern int emacs_mule_charset[256]; /* Return an index to Vcharset_hash_table of the charset whose symbol is SYMBOL. */ #define CHARSET_SYMBOL_HASH_INDEX(symbol) \ - hash_lookup (XHASH_TABLE (Vcharset_hash_table), symbol, NULL) + hash_lookup (XHASH_TABLE (Vcharset_hash_table), symbol) /* Return the attribute vector of CHARSET. */ -#define CHARSET_ATTRIBUTES(charset) \ - (HASH_VALUE (XHASH_TABLE (Vcharset_hash_table), (charset)->hash_index)) +#define CHARSET_ATTRIBUTES(charset) (charset)->attributes #define CHARSET_ID(charset) ((charset)->id) -#define CHARSET_HASH_INDEX(charset) ((charset)->hash_index) #define CHARSET_DIMENSION(charset) ((charset)->dimension) #define CHARSET_CODE_SPACE(charset) ((charset)->code_space) #define CHARSET_CODE_LINEAR_P(charset) ((charset)->code_linear_p) @@ -314,21 +311,21 @@ extern int emacs_mule_charset[256]; #define CHARSET_UNIFIED_P(charset) ((charset)->unified_p) #define CHARSET_NAME(charset) \ - (CHARSET_ATTR_NAME (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_NAME (CHARSET_ATTRIBUTES (charset)) #define CHARSET_MAP(charset) \ - (CHARSET_ATTR_MAP (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_MAP (CHARSET_ATTRIBUTES (charset)) #define CHARSET_DECODER(charset) \ - (CHARSET_ATTR_DECODER (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_DECODER (CHARSET_ATTRIBUTES (charset)) #define CHARSET_ENCODER(charset) \ - (CHARSET_ATTR_ENCODER (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_ENCODER (CHARSET_ATTRIBUTES (charset)) #define CHARSET_SUBSET(charset) \ - (CHARSET_ATTR_SUBSET (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_SUBSET (CHARSET_ATTRIBUTES (charset)) #define CHARSET_SUPERSET(charset) \ - (CHARSET_ATTR_SUPERSET (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_SUPERSET (CHARSET_ATTRIBUTES (charset)) #define CHARSET_UNIFY_MAP(charset) \ - (CHARSET_ATTR_UNIFY_MAP (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_UNIFY_MAP (CHARSET_ATTRIBUTES (charset)) #define CHARSET_DEUNIFIER(charset) \ - (CHARSET_ATTR_DEUNIFIER (CHARSET_ATTRIBUTES (charset))) + CHARSET_ATTR_DEUNIFIER (CHARSET_ATTRIBUTES (charset)) INLINE void set_charset_attr (struct charset *charset, enum charset_attr_index idx, @@ -345,7 +342,7 @@ set_charset_attr (struct charset *charset, enum charset_attr_index idx, #define CHECK_CHARSET(x) \ do { \ if (! SYMBOLP (x) || CHARSET_SYMBOL_HASH_INDEX (x) < 0) \ - wrong_type_argument (Qcharsetp, (x)); \ + wrong_type_argument (Qcharsetp, x); \ } while (false) @@ -356,7 +353,7 @@ set_charset_attr (struct charset *charset, enum charset_attr_index idx, ptrdiff_t idx; \ \ if (! SYMBOLP (x) || (idx = CHARSET_SYMBOL_HASH_INDEX (x)) < 0) \ - wrong_type_argument (Qcharsetp, (x)); \ + wrong_type_argument (Qcharsetp, x); \ id = XFIXNUM (AREF (HASH_VALUE (XHASH_TABLE (Vcharset_hash_table), idx), \ charset_id)); \ } while (false) @@ -367,7 +364,7 @@ set_charset_attr (struct charset *charset, enum charset_attr_index idx, #define CHECK_CHARSET_GET_ATTR(x, attr) \ do { \ if (!SYMBOLP (x) || NILP (attr = CHARSET_SYMBOL_ATTRIBUTES (x))) \ - wrong_type_argument (Qcharsetp, (x)); \ + wrong_type_argument (Qcharsetp, x); \ } while (false) @@ -383,7 +380,7 @@ set_charset_attr (struct charset *charset, enum charset_attr_index idx, contains the character C. */ #define CHAR_CHARSET(c) \ ((c) < 0x80 ? CHARSET_FROM_ID (charset_ascii) \ - : char_charset ((c), Qnil, NULL)) + : char_charset (c, Qnil, NULL)) #if false /* Char-table of charset-sets. Each element is a bool vector indexed @@ -410,18 +407,18 @@ extern Lisp_Object Vchar_charset_set; : ((code) < (charset)->min_code || (code) > (charset)->max_code) \ ? -1 \ : (charset)->unified_p \ - ? decode_char ((charset), (code)) \ + ? decode_char (charset, code) \ : (charset)->method == CHARSET_METHOD_OFFSET \ ? ((charset)->code_linear_p \ ? (int) ((code) - (charset)->min_code) + (charset)->code_offset \ - : decode_char ((charset), (code))) \ + : decode_char (charset, code)) \ : (charset)->method == CHARSET_METHOD_MAP \ ? (((charset)->code_linear_p \ && VECTORP (CHARSET_DECODER (charset))) \ ? XFIXNUM (AREF (CHARSET_DECODER (charset), \ (code) - (charset)->min_code)) \ - : decode_char ((charset), (code))) \ - : decode_char ((charset), (code))) + : decode_char (charset, code)) \ + : decode_char (charset, code)) extern Lisp_Object charset_work; @@ -462,7 +459,7 @@ extern bool charset_map_loaded; /* Set CHARSET to the charset highest priority of C, CODE to the code-point of C in CHARSET. */ #define SPLIT_CHAR(c, charset, code) \ - ((charset) = char_charset ((c), Qnil, &(code))) + ((charset) = char_charset (c, Qnil, &(code))) #define ISO_MAX_DIMENSION 3 @@ -501,15 +498,15 @@ extern int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL]; || ((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) \ + ? encode_char (charset, c) != (charset)->invalid_code \ + : (CHARSET_FAST_MAP_REF (c, (charset)->fast_map) \ && ((charset)->method == CHARSET_METHOD_OFFSET \ ? (c) >= (charset)->min_char && (c) <= (charset)->max_char \ : ((charset)->method == CHARSET_METHOD_MAP \ && (charset)->compact_codes_p \ && CHAR_TABLE_P (CHARSET_ENCODER (charset))) \ - ? ! NILP (CHAR_TABLE_REF (CHARSET_ENCODER (charset), (c))) \ - : encode_char ((charset), (c)) != (charset)->invalid_code)))) + ? ! NILP (CHAR_TABLE_REF (CHARSET_ENCODER (charset), c)) \ + : encode_char (charset, c) != (charset)->invalid_code)))) /* Special macros for emacs-mule encoding. */ |