summaryrefslogtreecommitdiff
path: root/src/composite.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/composite.c')
-rw-r--r--src/composite.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/composite.c b/src/composite.c
index d44acf24722..332f4df81de 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -537,7 +537,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))
{
min_pos = start;
if (end > to)
@@ -550,7 +551,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, from, prop))
{
if (from > to)
max_pos = from;
@@ -565,6 +567,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, from, prop)
&& from < to - 1)
run_composition_function (start, from, prop);
}
@@ -572,7 +575,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
@@ -589,7 +593,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);
max_pos = end;