Lisp_Object Qcomposition;
Lisp_Object Qmap_decomposition;
Lisp_Object Qto_decomposition_at_superscript;
+Lisp_Object Qto_decomposition_at_circled;
Lisp_Object Q_canonical;
-Lisp_Object Q_compat_of;
+Lisp_Object Q_halfwidth_of;
+Lisp_Object Q_superscript_of;
+Lisp_Object Q_subscript_of;
+Lisp_Object Q_circled_of;
Lisp_Object Q_decomposition;
Lisp_Object Q_identical;
Lisp_Object Q_identical_from;
else
Fsetcdr (ret, character);
}
- else if (EQ (base, Qcompat))
- return Q_compat_of;
+ else if (EQ (base, Qnarrow))
+ return Q_halfwidth_of;
+ else if (EQ (base, Qsuper))
+ return Q_superscript_of;
+ else if (EQ (base, Qsub))
+ return Q_subscript_of;
+ else if (EQ (base, Qcircle))
+ return Q_circled_of;
+ else if ( EQ (base, Qisolated)||
+ EQ (base, Qinitial) ||
+ EQ (base, Qmedial) ||
+ EQ (base, Qfinal) )
+ return
+ Fintern (concat2 (build_string ("<-formed@"),
+ Fsymbol_name (base)),
+ Qnil);
+ else if (SYMBOLP (base))
+ return
+ Fintern (concat2 (build_string ("<-"),
+ Fsymbol_name (base)),
+ Qnil);
}
else if (EQ (XCAR (value), Qsuper))
return Qto_decomposition_at_superscript;
+ else if (EQ (XCAR (value), Qcircle))
+ return Qto_decomposition_at_circled;
else
return
Fintern (concat2 (build_string ("=>decomposition@"),
- symbol_name (XSYMBOL (XCAR (value)))),
+ Fsymbol_name (XCAR (value))),
Qnil);
}
else
else if ( EQ (attribute, Qmap_decomposition) ||
EQ (attribute, Q_decomposition) )
{
+ value = Fcopy_sequence (Fchar_refs_simplify_char_specs (value));
attribute = put_char_composition (character, value);
if ( !EQ (attribute, Qmap_decomposition) &&
SYMBOLP (XCAR (value)) )
EQ (attribute, Q_identical) ||
EQ (attribute, Q_identical_from) ||
EQ (attribute, Q_canonical) ||
- EQ (attribute, Q_compat_of) ||
+ EQ (attribute, Q_halfwidth_of) ||
+ EQ (attribute, Q_superscript_of) ||
+ EQ (attribute, Q_subscript_of) ||
+ EQ (attribute, Q_circled_of) ||
EQ (attribute, Q_component) ||
EQ (attribute, Q_component_of) ||
- !NILP (Fstring_match
- (build_string ("^\\(<-\\|->\\)\\("
- "canonical"
- "\\|compat"
- "\\|fullwidth\\|halfwidth"
- "\\|simplified\\|vulgar\\|wrong"
- "\\|same\\|original\\|ancient"
- "\\|Oracle-Bones\\)[^*]*$"),
- Fsymbol_name (attribute),
- Qnil, Qnil)) )
+ ( !EQ (attribute, Q_ucs_unified)
+ && !NILP (Fstring_match
+ (build_string ("^\\(<-\\|->\\)[^*]*$"),
+ Fsymbol_name (attribute),
+ Qnil, Qnil))
+ )
+ )
{
Lisp_Object rest = value;
Lisp_Object ret;
EQ (attribute, Q_identical) ||
EQ (attribute, Q_identical_from) ||
EQ (attribute, Q_canonical) ||
- EQ (attribute, Q_compat_of) ||
+ EQ (attribute, Q_halfwidth_of) ||
+ EQ (attribute, Q_superscript_of) ||
+ EQ (attribute, Q_subscript_of) ||
+ EQ (attribute, Q_circled_of) ||
!NILP (Fstring_match
(build_string ("^\\(<-\\|->\\)\\(simplified"
"\\|same\\|vulgar\\|wrong"
defsymbol (&Qmap_decomposition, "=decomposition");
defsymbol (&Qto_decomposition_at_superscript,
"=>decomposition@superscript");
+ defsymbol (&Qto_decomposition_at_circled, "=>decomposition@circled");
defsymbol (&Q_canonical, "->canonical");
- defsymbol (&Q_compat_of, "<-compat");
+ defsymbol (&Q_halfwidth_of, "<-halfwidth");
+ defsymbol (&Q_superscript_of, "<-superscript");
+ defsymbol (&Q_subscript_of, "<-subscript");
+ defsymbol (&Q_circled_of, "<-circled");
defsymbol (&Q_decomposition, "->decomposition");
defsymbol (&Qcompat, "compat");
defsymbol (&Qisolated, "isolated");