(MH-0158): New character.
[chise/xemacs-chise.git-] / src / chartab.c
index cd30619..2f5c6b5 100644 (file)
@@ -1740,8 +1740,10 @@ decode_char_table_range (Lisp_Object range, struct chartab_range *outrange)
 {
   if (EQ (range, Qt))
     outrange->type = CHARTAB_RANGE_ALL;
+#ifdef UTF2000
   else if (EQ (range, Qnil))
     outrange->type = CHARTAB_RANGE_DEFAULT;
+#endif
   else if (CHAR_OR_CHAR_INTP (range))
     {
       outrange->type = CHARTAB_RANGE_CHAR;
@@ -2143,7 +2145,7 @@ put_char_table (Lisp_Char_Table *ct, struct chartab_range *range,
          {
            for (c = 0; c < 1 << 24; c++)
              {
-               if ( charset_code_point (range->charset, c) >= 0 )
+               if ( charset_code_point (range->charset, c, 0) >= 0 )
                  put_char_id_table_0 (ct, c, val);
              }
          }
@@ -2181,7 +2183,7 @@ put_char_table (Lisp_Char_Table *ct, struct chartab_range *range,
          {
            Emchar ch = DECODE_CHAR (range->charset, (range->row << 8) | i);
 
-           if ( charset_code_point (range->charset, ch) >= 0 )
+           if ( charset_code_point (range->charset, ch, 0) >= 0 )
              put_char_id_table_0 (ct, ch, val);
          }
       }
@@ -2611,7 +2613,7 @@ map_char_table (Lisp_Char_Table *ct,
          {
            Emchar ch = DECODE_CHAR (range->charset, (range->row << 8) | i);
 
-           if ( charset_code_point (range->charset, ch) >= 0 )
+           if ( charset_code_point (range->charset, ch, 0) >= 0 )
              {
                Lisp_Object val
                  = get_byte_table (get_byte_table
@@ -2897,6 +2899,7 @@ Store CHARACTER's ATTRIBUTE with VALUE.
     {
       CHECK_CHAR (character);
       value = put_char_ccs_code_point (character, ccs, value);
+      attribute = XCHARSET_NAME (ccs);
     }
   else if (EQ (attribute, Q_decomposition))
     {
@@ -3086,10 +3089,12 @@ Store character's ATTRIBUTES.
        (attributes))
 {
   Lisp_Object rest = attributes;
-  Lisp_Object code = Fcdr (Fassq (Qucs, attributes));
+  Lisp_Object code = Fcdr (Fassq (Qmap_ucs, attributes));
   Lisp_Object character;
 
   if (NILP (code))
+    code = Fcdr (Fassq (Qucs, attributes));
+  if (NILP (code))
     {
       while (CONSP (rest))
        {