#ifndef INCLUDED_chartab_h_
#define INCLUDED_chartab_h_
+
+#ifdef UTF2000
+
+#include "char-ucs.h"
+
+Lisp_Object make_char_id_table (Lisp_Object initval);
+
+void put_char_id_table (Emchar ch, Lisp_Object value, Lisp_Object table);
+
+EXFUN (Fget_char_attribute, 3);
+
+#endif
+
+
/************************************************************************/
/* Char Tables */
/************************************************************************/
#ifdef MULE
Lisp_Object get_non_ascii_char_table_value (Lisp_Char_Table *ct,
- int leading_byte,
+ Charset_ID leading_byte,
Emchar c);
-INLINE Lisp_Object
+INLINE_HEADER Lisp_Object
CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (Lisp_Char_Table *ct, Emchar ch);
-INLINE Lisp_Object
+INLINE_HEADER Lisp_Object
CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (Lisp_Char_Table *ct, Emchar ch)
{
- unsigned char lb = CHAR_LEADING_BYTE (ch);
+#ifdef UTF2000
+ Charset_ID lb = CHAR_CHARSET_ID (ch);
+#else
+ Charset_ID lb = CHAR_LEADING_BYTE (ch);
+#endif
if (!CHAR_TABLE_ENTRYP ((ct)->level1[lb - MIN_LEADING_BYTE]))
return (ct)->level1[lb - MIN_LEADING_BYTE];
else
#endif /* not MULE */
+#define XCHAR_TABLE_VALUE_UNSAFE(ct, ch) \
+ CHAR_TABLE_VALUE_UNSAFE (XCHAR_TABLE (ct), ch)
+
enum chartab_range_type
{
CHARTAB_RANGE_ALL,