Lisp_Object Qcomposition;
Lisp_Object Q_decomposition;
+Lisp_Object Q_identical;
+Lisp_Object Q_identical_from;
Lisp_Object Q_denotational;
Lisp_Object Q_denotational_from;
Lisp_Object Q_subsumptive;
}
}
- if ( !(EQ (attribute, Q_subsumptive_from)) &&
+ if ( !(EQ (attribute, Q_identical)) &&
+ !(EQ (attribute, Q_subsumptive_from)) &&
!(EQ (attribute, Q_denotational_from)) &&
( (NILP (char_rel_max)
|| (INTP (char_rel_max) &&
if ( (name_str[0] != '=') || (name_str[1] == '>') )
{
Lisp_Object ancestors
- = Fget_char_attribute (character, Q_subsumptive_from, Qnil);
+ = Fget_char_attribute (character, Q_identical, Qnil);
+
+ if (NILP (ancestors))
+ ancestors
+ = Fget_char_attribute (character, Q_subsumptive_from, Qnil);
if (NILP (ancestors))
ancestors
EQ (attribute, Q_subsumptive_from) ||
EQ (attribute, Q_denotational) ||
EQ (attribute, Q_denotational_from) ||
+ EQ (attribute, Q_identical) ||
+ EQ (attribute, Q_identical_from) ||
!NILP (Fstring_match (build_string ("^<-simplified[^*]*$"),
Fsymbol_name (attribute),
Qnil, Qnil)) )
struct gcpro gcpro1;
GCPRO1 (rev_feature);
- if (EQ (attribute, Q_subsumptive))
+ if (EQ (attribute, Q_identical))
+ rev_feature = Q_identical_from;
+ else if (EQ (attribute, Q_identical_from))
+ rev_feature = Q_identical;
+ else if (EQ (attribute, Q_subsumptive))
rev_feature = Q_subsumptive_from;
else if (EQ (attribute, Q_subsumptive_from))
rev_feature = Q_subsumptive;
Lisp_Object (*filter)(Lisp_Object value);
if ( EQ (attribute, Qideographic_structure)
+ || EQ (attribute, Q_identical)
+ || EQ (attribute, Q_identical_from)
|| !NILP (Fstring_match
(build_string ("^\\(<-\\|->\\)simplified[^*]*$"),
Fsymbol_name (attribute),
defsymbol (&Q_subsumptive_from, "<-subsumptive");
defsymbol (&Q_denotational, "->denotational");
defsymbol (&Q_denotational_from, "<-denotational");
+ defsymbol (&Q_identical, "->identical");
+ defsymbol (&Q_identical_from, "<-identical");
defsymbol (&Qcomposition, "composition");
defsymbol (&Q_decomposition, "->decomposition");
defsymbol (&Qcompat, "compat");