From 20bd60aa1752ea5e5db0f98efe97e763e4e3f950 Mon Sep 17 00:00:00 2001 From: tomo Date: Sat, 5 Jun 2004 21:52:05 +0000 Subject: [PATCH] Sync up with r21-4-14-chise-0_21-27. --- src/ChangeLog | 31 +++++++++++++++++++++++++++++++ src/chartab.c | 55 ++++++++++++++++++++++++------------------------------- 2 files changed, 55 insertions(+), 31 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 113f5af..384416d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,34 @@ +2004-05-14 MORIOKA Tomohiko + + * chartab.c (Fput_char_attribute): When processing a reference of + a character, put into the end of the reversed reference of each + target character. + +2004-05-10 MORIOKA Tomohiko + + * chartab.c (Q_same): Deleted. + (Q_same_of): Deleted. + (Fput_char_attribute): Use Fstring_match to find `{<-|->}same'. + (Fsave_char_attribute_table): Use `Fchar_refs_simplify_char_specs' + for `{<-|->}same'. + (syms_of_chartab): Delete builtin symbol `{<-|->}same'. + +2004-05-08 MORIOKA Tomohiko + + * chartab.c (Q_vulgar): Deleted. + (Q_vulgar_of): Deleted. + (Fput_char_attribute): Use Fstring_match to find `{<-|->}vulgar'. + (Fsave_char_attribute_table): Use `Fchar_refs_simplify_char_specs' + for `{<-|->}vulgar'. + (syms_of_chartab): Don't define `{<-|->}vulgar'. + +2004-04-26 MORIOKA Tomohiko + + * chartab.c (Fput_char_attribute): Convert char-refs in value of + `{<-|->}wrong[^*]*' to characters and put reverse links. + (Fsave_char_attribute_table): Use `Fchar_refs_simplify_char_specs' + for `{<-|->}wrong[^*]*'. + 2004-04-17 MORIOKA Tomohiko * chartab.c (Q_vulgar): New variable. diff --git a/src/chartab.c b/src/chartab.c index f7f90bf..6fa3be2 100644 --- a/src/chartab.c +++ b/src/chartab.c @@ -1140,10 +1140,6 @@ Lisp_Object Q_subsumptive; 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 Q_vulgar; -Lisp_Object Q_vulgar_of; Lisp_Object Qto_ucs; Lisp_Object Q_ucs_unified; Lisp_Object Qcompat; @@ -3512,13 +3508,12 @@ Store CHARACTER's ATTRIBUTE with VALUE. EQ (attribute, Q_identical_from) || EQ (attribute, Q_component) || EQ (attribute, Q_component_of) || - EQ (attribute, Q_same) || - EQ (attribute, Q_same_of) || - EQ (attribute, Q_vulgar) || - EQ (attribute, Q_vulgar_of) || - !NILP (Fstring_match (build_string ("^<-simplified[^*]*$"), - Fsymbol_name (attribute), - Qnil, Qnil)) ) + !NILP (Fstring_match + (build_string ("^\\(<-\\|->\\)\\(simplified" + "\\|same\\|vulgar\\|wrong" + "\\)[^*]*$"), + Fsymbol_name (attribute), + Qnil, Qnil)) ) { Lisp_Object rest = value; Lisp_Object ret; @@ -3542,27 +3537,28 @@ Store CHARACTER's ATTRIBUTE with VALUE. 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 if (EQ (attribute, Q_vulgar)) - rev_feature = Q_vulgar_of; - else if (EQ (attribute, Q_vulgar_of)) - rev_feature = Q_vulgar; else { Lisp_String* name = symbol_name (XSYMBOL (attribute)); Bufbyte *name_str = string_data (name); - if (name_str[0] == '<' && name_str[1] == '-') + if ( (name_str[0] == '<' && name_str[1] == '-') || + (name_str[0] == '-' && name_str[1] == '>') ) { Bytecount length = string_length (name); Bufbyte *rev_name_str = alloca (length + 1); memcpy (rev_name_str + 2, name_str + 2, length - 2); - rev_name_str[0] = '-'; - rev_name_str[1] = '>'; + if (name_str[0] == '<') + { + rev_name_str[0] = '-'; + rev_name_str[1] = '>'; + } + else + { + rev_name_str[0] = '<'; + rev_name_str[1] = '-'; + } rev_name_str[length] = 0; rev_feature = intern (rev_name_str); } @@ -3583,8 +3579,9 @@ Store CHARACTER's ATTRIBUTE with VALUE. 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); @@ -3834,10 +3831,10 @@ Save values of ATTRIBUTE into database file. 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[^*]*$"), + (build_string ("^\\(<-\\|->\\)\\(simplified" + "\\|same\\|vulgar\\|wrong" + "\\)[^*]*$"), Fsymbol_name (attribute), Qnil, Qnil)) ) filter = &Fchar_refs_simplify_char_specs; @@ -4613,10 +4610,6 @@ syms_of_chartab (void) 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 (&Q_vulgar, "->vulgar"); - defsymbol (&Q_vulgar_of, "<-vulgar"); defsymbol (&Qcomposition, "composition"); defsymbol (&Q_decomposition, "->decomposition"); defsymbol (&Qcompat, "compat"); -- 1.7.10.4