(Fput_char_attribute): Convert char-specs in value of
[chise/xemacs-chise.git-] / src / chartab.c
index d955a1a..15acf41 100644 (file)
@@ -76,7 +76,6 @@ EXFUN (Fchar_refs_simplify_char_specs, 1);
 extern Lisp_Object Qideographic_structure;
 
 Lisp_Object Vnext_defined_char_id;
-EXFUN (Fdefine_char, 1);
 
 EXFUN (Fmap_char_attribute, 3);
 
@@ -3426,7 +3425,7 @@ put_char_composition (Lisp_Object character, Lisp_Object value)
 
       if (INTP (v))
        {
-         Emchar c = XINT (v);
+         Emchar c = DECODE_CHAR (Vcharset_ucs, XINT (v), 0);
          Lisp_Object ret
            = Fchar_feature (make_char (c), Q_ucs_unified, Qnil,
                             Qnil, Qnil);
@@ -3489,7 +3488,7 @@ Store CHARACTER's ATTRIBUTE with VALUE.
       if (!INTP (value))
        signal_simple_error ("Invalid value for =>ucs", value);
 
-      c = XINT (value);
+      c = DECODE_CHAR (Vcharset_ucs, XINT (value), 0);
 
       ret = Fchar_feature (make_char (c), Q_ucs_unified, Qnil,
                           Qnil, Qnil);
@@ -3509,9 +3508,10 @@ Store CHARACTER's ATTRIBUTE with VALUE.
            EQ (attribute, Q_component) ||
            EQ (attribute, Q_component_of) ||
            !NILP (Fstring_match
-                  (build_string ("^\\(<-\\|->\\)\\(simplified"
-                                 "\\|same\\|vulgar\\|wrong"
-                                 "\\|original\\|ancient"
+                  (build_string ("^\\(<-\\|->\\)\\("
+                                 "fullwidth\\|halfwidth"
+                                 "\\|simplified\\|vulgar\\|wrong"
+                                 "\\|same\\|original\\|ancient"
                                  "\\)[^*]*$"),
                    Fsymbol_name (attribute),
                    Qnil, Qnil)) )