aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa <[email protected]>2007-06-14 12:33:56 +0000
committerKenichi Handa <[email protected]>2007-06-14 12:33:56 +0000
commit553d31640139f393e80dd411fe2b07509d47bd5b (patch)
treee3a86094a94c1d4de3cf21bd2b9edd4eb833cb21
parent6dadd99f86f4c4ec30e8cfc7de286b15aaa31304 (diff)
(update_compositions): Check the validness of
compositions.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/composite.c13
2 files changed, 14 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fd8c323516..4342561ae5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-14 Kenichi Handa <[email protected]>
+
+ * composite.c (update_compositions): Check the validness of
+ compositions.
+
2007-06-14 YAMAMOTO Mitsuharu <[email protected]>
* frame.h (struct frame) [MAC_OS]: New member external_tool_bar.
diff --git a/src/composite.c b/src/composite.c
index 3e0606e900..4e6c08a65c 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);
}
}