From: tomo Date: Fri, 18 Feb 2011 23:31:14 +0000 (+0000) Subject: (Fput_char_attribute): Support `=decomposition@FOO' as X-Git-Tag: r21-4-22-chise-0_25-6^20~504 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=2d990ccf7d8c308da3eda94784d0f072def544d7;p=chise%2Fxemacs-chise.git- (Fput_char_attribute): Support `=decomposition@FOO' as `=decomposition' feature. --- diff --git a/src/chartab.c b/src/chartab.c index ccfed11..748cd29 100644 --- a/src/chartab.c +++ b/src/chartab.c @@ -5,7 +5,7 @@ Copyright (C) 1995, 1997, 1999 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, - 2010 MORIOKA Tomohiko + 2010, 2011 MORIOKA Tomohiko This file is part of XEmacs. @@ -3535,13 +3535,22 @@ Store CHARACTER's ATTRIBUTE with VALUE. attribute = XCHARSET_NAME (ccs); } else if ( EQ (attribute, Qrep_decomposition) || - EQ (attribute, Q_decomposition) ) + EQ (attribute, Q_decomposition) || + !NILP (Fstring_match (build_string ("^=decomposition@[^*]+$"), + Fsymbol_name (attribute), + Qnil, Qnil)) + ) { + Lisp_Object ret; + value = Fcopy_sequence (Fchar_refs_simplify_char_specs (value)); - attribute = put_char_composition (character, value); - if ( !EQ (attribute, Qrep_decomposition) && + ret = put_char_composition (character, value); + if ( !EQ (ret, Qrep_decomposition) && SYMBOLP (XCAR (value)) ) - value = XCDR (value); + { + attribute = ret; + value = XCDR (value); + } } else if (EQ (attribute, Qto_ucs)) {