#ifdef UTF2000
+EXFUN (Fmake_char, 3);
+EXFUN (Fdecode_char, 3);
+
+EXFUN (Fput_char_attribute, 3);
+
+
/************************************************************************/
/* Char-ID Tables */
/************************************************************************/
\f
#ifdef UTF2000
-Lisp_Object get_char_id_table (Lisp_Char_Table* cit, Emchar ch);
+INLINE_HEADER Lisp_Object get_char_id_table (Lisp_Char_Table* cit, Emchar ch);
+INLINE_HEADER Lisp_Object
+get_char_id_table (Lisp_Char_Table* cit, Emchar ch)
+{
+ Lisp_Object val = get_byte_table (get_byte_table
+ (get_byte_table
+ (get_byte_table
+ (cit->table,
+ (unsigned char)(ch >> 24)),
+ (unsigned char) (ch >> 16)),
+ (unsigned char) (ch >> 8)),
+ (unsigned char) ch);
+ if (UNBOUNDP (val))
+ return cit->default_value;
+ else
+ return val;
+}
INLINE_HEADER void
put_char_id_table_0 (Lisp_Char_Table* cit, Emchar code, Lisp_Object value);
cit->table = put_byte_table (table1, (unsigned char)(code >> 24), table2);
}
-void put_char_id_table (Lisp_Char_Table* table,
- Lisp_Object character, Lisp_Object value);
+void
+decode_char_table_range (Lisp_Object range, struct chartab_range *outrange);
+
+INLINE_HEADER void
+put_char_id_table (Lisp_Char_Table* table,
+ Lisp_Object character, Lisp_Object value);
+INLINE_HEADER void
+put_char_id_table (Lisp_Char_Table* table,
+ Lisp_Object character, Lisp_Object value)
+{
+ struct chartab_range range;
+
+ decode_char_table_range (character, &range);
+ put_char_table (table, &range, value);
+}
+
EXFUN (Fget_char_attribute, 3);
#ifdef MULE
int check_category_char(Emchar ch, Lisp_Object ctbl,
- unsigned int designator, unsigned int not);
+ unsigned int designator, unsigned int not_p);
extern Lisp_Object Vstandard_category_table;