summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2024-02-26 19:26:04 +0200
committerEli Zaretskii <eliz@gnu.org>2024-02-26 19:26:04 +0200
commit76fa7f1f2fb7fbc3dcbd0be7928d0ec112e532e7 (patch)
treece1722a98a5bad092ebf80ee385984329cad293f /src
parent1687adcb5c93b490e2e7edcd14615af295e791ed (diff)
Fix display of reordered Arabic text
* src/xdisp.c (compute_stop_pos): Fix a year-old thinko in handling auto-composed characters. It was introduced as part of solving bug#62780, which optimized the search for composable characters. (Bug#69384)
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 4d60915f31c..d03769e2a31 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -4345,10 +4345,7 @@ compute_stop_pos (struct it *it)
}
}
- if (it->cmp_it.id < 0
- && (STRINGP (it->string)
- || ((!it->bidi_p || it->bidi_it.scan_dir >= 0)
- && it->cmp_it.stop_pos <= IT_CHARPOS (*it))))
+ if (it->cmp_it.id < 0)
{
ptrdiff_t stoppos = it->end_charpos;
@@ -4357,7 +4354,9 @@ compute_stop_pos (struct it *it)
characters to that position. */
if (it->bidi_p && it->bidi_it.scan_dir < 0)
stoppos = -1;
- else if (cmp_limit_pos > 0)
+ else if (!STRINGP (it->string)
+ && it->cmp_it.stop_pos <= IT_CHARPOS (*it)
+ && cmp_limit_pos > 0)
stoppos = cmp_limit_pos;
/* Force composition_compute_stop_pos avoid the costly search
for static compositions, since those were already found by