From 553d31640139f393e80dd411fe2b07509d47bd5b Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 14 Jun 2007 12:33:56 +0000 Subject: [PATCH] (update_compositions): Check the validness of compositions. --- src/ChangeLog | 5 +++++ src/composite.c | 13 +++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index fd8c3235166..4342561ae54 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-06-14 Kenichi Handa + + * composite.c (update_compositions): Check the validness of + compositions. + 2007-06-14 YAMAMOTO Mitsuharu * frame.h (struct frame) [MAC_OS]: New member external_tool_bar. diff --git a/src/composite.c b/src/composite.c index 3e0606e9007..4e6c08a65cc 100644 --- a/src/composite.c +++ b/src/composite.c @@ -500,7 +500,8 @@ update_compositions (from, to, check_mask) avoid it, in such a case, we change the property of the latter to the copy of it. */ if (from > BEGV - && find_composition (from - 1, -1, &start, &end, &prop, Qnil)) + && find_composition (from - 1, -1, &start, &end, &prop, Qnil) + && COMPOSITION_VALID_P (start, end, prop)) { if (from < end) Fput_text_property (make_number (from), make_number (end), @@ -510,7 +511,8 @@ update_compositions (from, to, check_mask) from = end; } else if (from < ZV - && find_composition (from, -1, &start, &from, &prop, Qnil)) + && find_composition (from, -1, &start, &from, &prop, Qnil) + && COMPOSITION_VALID_P (start, end, prop)) run_composition_function (start, from, prop); } @@ -521,6 +523,7 @@ update_compositions (from, to, check_mask) (to - 1). */ while (from < to - 1 && find_composition (from, to, &start, &from, &prop, Qnil) + && COMPOSITION_VALID_P (start, end, prop) && from < to - 1) run_composition_function (start, from, prop); } @@ -528,7 +531,8 @@ update_compositions (from, to, check_mask) if (check_mask & CHECK_TAIL) { if (from < to - && find_composition (to - 1, -1, &start, &end, &prop, Qnil)) + && find_composition (to - 1, -1, &start, &end, &prop, Qnil) + && COMPOSITION_VALID_P (start, end, prop)) { /* TO should be also at composition boundary. But, insertion or deletion will make two compositions adjacent @@ -542,7 +546,8 @@ update_compositions (from, to, check_mask) run_composition_function (start, end, prop); } else if (to < ZV - && find_composition (to, -1, &start, &end, &prop, Qnil)) + && find_composition (to, -1, &start, &end, &prop, Qnil) + && COMPOSITION_VALID_P (start, end, prop)) run_composition_function (start, end, prop); } } -- 2.39.2