/* Declarations having to do with Mule char tables.
Copyright (C) 1992 Free Software Foundation, Inc.
Copyright (C) 1995 Sun Microsystems, Inc.
+ Copyright (C) 1999,2000,2001 MORIOKA Tomohiko
This file is part of XEmacs.
#ifdef UTF2000
/************************************************************************/
-/* Char-ID Tables */
+/* Char-ID Tables */
/************************************************************************/
struct Lisp_Uint8_Byte_Table
Lisp_Object value);
-struct Lisp_Char_ID_Table
-{
- struct lcrecord_header header;
-
- Lisp_Object table;
-};
-typedef struct Lisp_Char_ID_Table Lisp_Char_ID_Table;
-
-DECLARE_LRECORD (char_id_table, Lisp_Char_ID_Table);
-#define XCHAR_ID_TABLE(x) XRECORD (x, char_id_table, Lisp_Char_ID_Table)
-#define XSETCHAR_ID_TABLE(x, p) XSETRECORD (x, p, char_id_table)
-#define CHAR_ID_TABLE_P(x) RECORDP (x, char_id_table)
-#define GC_CHAR_ID_TABLE_P(x) GC_RECORDP (x, char_id_table)
-/* #define CHECK_CHAR_ID_TABLE(x) CHECK_RECORD (x, char_id_table)
- char table entries should never escape to Lisp */
+typedef struct Lisp_Char_Table Lisp_Char_ID_Table;
+#define XCHAR_ID_TABLE(x) XCHAR_TABLE(x)
+#define XSETCHAR_ID_TABLE(x, p) XSETCHAR_TABLE(x, p)
+#define CHAR_ID_TABLE_P(x) CHAR_TABLEP(x)
Lisp_Object make_char_id_table (Lisp_Object initval);
-Lisp_Object get_char_id_table (Lisp_Char_ID_Table* cit, Emchar ch);
-
-INLINE_HEADER void
-put_char_id_table_0 (Lisp_Char_ID_Table* cit, Emchar code, Lisp_Object value);
-INLINE_HEADER void
-put_char_id_table_0 (Lisp_Char_ID_Table* cit, Emchar code, Lisp_Object value)
-{
- Lisp_Object table1, table2, table3, table4;
-
- table1 = cit->table;
- table2 = get_byte_table (table1, (unsigned char)(code >> 24));
- table3 = get_byte_table (table2, (unsigned char)(code >> 16));
- table4 = get_byte_table (table3, (unsigned char)(code >> 8));
-
- table4 = put_byte_table (table4, (unsigned char) code, value);
- table3 = put_byte_table (table3, (unsigned char)(code >> 8), table4);
- table2 = put_byte_table (table2, (unsigned char)(code >> 16), table3);
- cit->table = put_byte_table (table1, (unsigned char)(code >> 24), table2);
-}
-
-void put_char_id_table (Lisp_Char_ID_Table* table,
- Lisp_Object character, Lisp_Object value);
-
-EXFUN (Fget_char_attribute, 3);
-
#endif
extern Lisp_Object Vall_syntax_tables;
\f
+#ifdef UTF2000
+
+Lisp_Object get_char_id_table (Lisp_Char_Table* cit, Emchar ch);
+
+INLINE_HEADER void
+put_char_id_table_0 (Lisp_Char_Table* cit, Emchar code, Lisp_Object value);
+INLINE_HEADER void
+put_char_id_table_0 (Lisp_Char_Table* cit, Emchar code, Lisp_Object value)
+{
+ Lisp_Object table1, table2, table3, table4;
+
+ table1 = cit->table;
+ table2 = get_byte_table (table1, (unsigned char)(code >> 24));
+ table3 = get_byte_table (table2, (unsigned char)(code >> 16));
+ table4 = get_byte_table (table3, (unsigned char)(code >> 8));
+
+ table4 = put_byte_table (table4, (unsigned char) code, value);
+ table3 = put_byte_table (table3, (unsigned char)(code >> 8), table4);
+ table2 = put_byte_table (table2, (unsigned char)(code >> 16), table3);
+ 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);
+
+EXFUN (Fget_char_attribute, 3);
+
+#endif
+\f
#ifdef MULE
int check_category_char(Emchar ch, Lisp_Object ctbl,