summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPip Cet <pipcet@gmail.com>2020-06-05 12:54:01 +0000
committerEli Zaretskii <eliz@gnu.org>2020-07-25 19:19:27 +0300
commitefdd4632c95cc6be6efc099cfed051022fff7a84 (patch)
tree2786f4588d1edcbdf1b62f0b5e0ff35cd021bb89
parentd5acc509415869bce22c49ae311f2960494a0bdc (diff)
downloademacs-efdd4632c95cc6be6efc099cfed051022fff7a84.tar.gz
Fix Arabic shaping when column-number-mode is in effect
* src/indent.c (scan_for_column, compute_motion): Pass -1, instead of NEUTRAL_DIR, to 'composition_reseat_it'. * src/composite.c (composition_reseat_it): Interpret negative value of BIDI_LEVEL to mean the caller doesn't know what is the bidi direction of the text. (Bug#41005)
-rw-r--r--src/composite.c4
-rw-r--r--src/indent.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/src/composite.c b/src/composite.c
index 364d5c9316e..2fbe6796b59 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1217,7 +1217,9 @@ composition_reseat_it (struct composition_it *cmp_it, ptrdiff_t charpos,
continue;
if (charpos < endpos)
{
- if ((bidi_level & 1) == 0)
+ if (bidi_level < 0)
+ direction = Qnil;
+ else if ((bidi_level & 1) == 0)
direction = QL2R;
else
direction = QR2L;
diff --git a/src/indent.c b/src/indent.c
index f7db42783c1..939e5931db0 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -598,7 +598,7 @@ scan_for_column (ptrdiff_t *endpos, EMACS_INT *goalcol, ptrdiff_t *prevcol)
if (cmp_it.id >= 0
|| (scan == cmp_it.stop_pos
&& composition_reseat_it (&cmp_it, scan, scan_byte, end,
- w, NEUTRAL_DIR, NULL, Qnil)))
+ w, -1, NULL, Qnil)))
composition_update_it (&cmp_it, scan, scan_byte, Qnil);
if (cmp_it.id >= 0)
{
@@ -1506,7 +1506,7 @@ compute_motion (ptrdiff_t from, ptrdiff_t frombyte, EMACS_INT fromvpos,
if (cmp_it.id >= 0
|| (pos == cmp_it.stop_pos
&& composition_reseat_it (&cmp_it, pos, pos_byte, to, win,
- NEUTRAL_DIR, NULL, Qnil)))
+ -1, NULL, Qnil)))
composition_update_it (&cmp_it, pos, pos_byte, Qnil);
if (cmp_it.id >= 0)
{