From c53db1b5dd3e48eb247d513033d4ca3f02311929 Mon Sep 17 00:00:00 2001 From: tomo Date: Sat, 11 Oct 2003 12:33:15 +0000 Subject: [PATCH] (COMPOSE_ADD_CHAR): Fixed. --- src/text-coding.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/text-coding.c b/src/text-coding.c index 19c6a31..6baefdd 100644 --- a/src/text-coding.c +++ b/src/text-coding.c @@ -3493,11 +3493,11 @@ COMPOSE_ADD_CHAR (struct decoding_stream *str, if (CHARP (ret)) { Emchar char2 = XCHARVAL (ret); - ret = Fget_char_attribute (make_char (character), Qcomposition, - Qnil); - if (NILP (ret)) + Lisp_Object ret2 = Fget_char_attribute (ret, Qcomposition, Qnil); + + if (NILP (ret2)) { - decode_add_er_char (str, character, dst); + decode_add_er_char (str, char2, dst); str->combined_char_count = 0; str->combining_table = Qnil; } @@ -3505,13 +3505,23 @@ COMPOSE_ADD_CHAR (struct decoding_stream *str, { str->combined_chars[0] = char2; str->combined_char_count = 1; - str->combining_table = ret; + str->combining_table = ret2; } } else { + ret = Fget_char_attribute (make_char (character), Qcomposition, + Qnil); + COMPOSE_FLUSH_CHARS (str, dst); - decode_add_er_char (str, character, dst); + if (NILP (ret)) + decode_add_er_char (str, character, dst); + else + { + str->combined_chars[0] = character; + str->combined_char_count = 1; + str->combining_table = ret; + } } } } -- 1.7.10.4