}
-#if defined(HAVE_CHISE) && !defined(HAVE_LIBCHISE_LIBCHISE)
-Lisp_Object Qsystem_char_id;
-#endif
-
Lisp_Object Qcomposition;
Lisp_Object Q_decomposition;
Lisp_Object Q_identical;
Lisp_Object Q_subsumptive_from;
Lisp_Object Q_component;
Lisp_Object Q_component_of;
-Lisp_Object Q_same;
-Lisp_Object Q_same_of;
Lisp_Object Qto_ucs;
Lisp_Object Q_ucs_unified;
Lisp_Object Qcompat;
EQ (attribute, Q_identical_from) ||
EQ (attribute, Q_component) ||
EQ (attribute, Q_component_of) ||
- EQ (attribute, Q_same) ||
- EQ (attribute, Q_same_of) ||
!NILP (Fstring_match
(build_string ("^\\(<-\\|->\\)\\(simplified"
- "\\|vulgar\\|wrong"
+ "\\|same\\|vulgar\\|wrong"
+ "\\|original\\|ancient"
"\\)[^*]*$"),
Fsymbol_name (attribute),
Qnil, Qnil)) )
rev_feature = Q_component_of;
else if (EQ (attribute, Q_component_of))
rev_feature = Q_component;
- else if (EQ (attribute, Q_same))
- rev_feature = Q_same_of;
- else if (EQ (attribute, Q_same_of))
- rev_feature = Q_same;
else
{
Lisp_String* name = symbol_name (XSYMBOL (attribute));
if (!CONSP (ffv))
put_char_attribute (ret, rev_feature, list1 (character));
else if (NILP (Fmemq (character, ffv)))
- put_char_attribute (ret, rev_feature,
- Fcons (character, ffv));
+ put_char_attribute
+ (ret, rev_feature,
+ nconc2 (Fcopy_sequence (ffv), list1 (character)));
Fsetcar (rest, ret);
}
rest = XCDR (rest);
}
#endif /* not HAVE_LIBCHISE */
+#ifdef HAVE_LIBCHISE
+Lisp_Object save_charset_properties (Lisp_Object charset);
+#endif /* HAVE_LIBCHISE */
+
DEFUN ("save-char-attribute-table", Fsave_char_attribute_table, 1, 1, 0, /*
Save values of ATTRIBUTE into database file.
*/
{
Lisp_Object (*filter)(Lisp_Object value);
- if ( EQ (attribute, Qideographic_structure)
+ if ( !NILP (Ffind_charset (attribute)) )
+ {
+#ifdef HAVE_LIBCHISE
+ save_charset_properties (attribute);
+#endif /* HAVE_LIBCHISE */
+ filter = NULL;
+ }
+ else if ( EQ (attribute, Qideographic_structure)
|| EQ (attribute, Q_identical)
|| EQ (attribute, Q_identical_from)
- || EQ (attribute, Q_same)
- || EQ (attribute, Q_same_of)
|| !NILP (Fstring_match
(build_string ("^\\(<-\\|->\\)\\(simplified"
- "\\|vulgar\\|wrong"
+ "\\|same\\|vulgar\\|wrong"
+ "\\|original\\|ancient"
"\\)[^*]*$"),
Fsymbol_name (attribute),
Qnil, Qnil)) )
defsymbol (&Q_identical_from, "<-identical");
defsymbol (&Q_component, "->ideographic-component-forms");
defsymbol (&Q_component_of, "<-ideographic-component-forms");
- defsymbol (&Q_same, "->same");
- defsymbol (&Q_same_of, "<-same");
defsymbol (&Qcomposition, "composition");
defsymbol (&Q_decomposition, "->decomposition");
defsymbol (&Qcompat, "compat");