Add some missing mappings to CHINA3-JEF code points.
[chise/xemacs-chise.git] / src / chartab.h
index 444d41a..778186b 100644 (file)
@@ -1,7 +1,7 @@
 /* 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
+   Copyright (C) 1999,2000,2001,2002 MORIOKA Tomohiko
 
 This file is part of XEmacs.
 
@@ -31,6 +31,14 @@ Boston, MA 02111-1307, USA.  */
 
 #ifdef UTF2000
 
+EXFUN (Fmake_char, 3);
+EXFUN (Fdecode_char, 3);
+
+EXFUN (Fput_char_attribute, 3);
+
+EXFUN (Ffind_char, 1);
+
+
 /************************************************************************/
 /*                         Char-ID Tables                              */
 /************************************************************************/
@@ -308,7 +316,23 @@ extern Lisp_Object Vall_syntax_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);
@@ -328,8 +352,22 @@ 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);
 
@@ -338,7 +376,7 @@ 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;