]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix display of reordered Arabic text
authorEli Zaretskii <eliz@gnu.org>
Mon, 26 Feb 2024 17:26:04 +0000 (19:26 +0200)
committerEshel Yaron <me@eshelyaron.com>
Wed, 28 Feb 2024 17:53:06 +0000 (18:53 +0100)
* 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)

(cherry picked from commit 76fa7f1f2fb7fbc3dcbd0be7928d0ec112e532e7)

src/xdisp.c

index 4d60915f31c9e6514edf7ad7ac34e6ad8832bf27..d03769e2a31acb92915874f19a737d896682e572 100644 (file)
@@ -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