emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master bd6cfabdc3: Fix 'bidi-find-overridden-directionality' for Lisp st


From: Eli Zaretskii
Subject: master bd6cfabdc3: Fix 'bidi-find-overridden-directionality' for Lisp strings
Date: Thu, 20 Jan 2022 05:03:48 -0500 (EST)

branch: master
commit bd6cfabdc3b9932ef4725b0594c41fc814bc1058
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Fix 'bidi-find-overridden-directionality' for Lisp strings
    
    * src/bidi.c (bidi_find_first_overridden): Don't use ZV for Lisp
    strings.  Reported by Lars Ingebrigtsen <larsi@gnus.org>.
---
 src/bidi.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/bidi.c b/src/bidi.c
index c5d524f049..d6ed607f14 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -3569,7 +3569,9 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it)
 ptrdiff_t
 bidi_find_first_overridden (struct bidi_it *bidi_it)
 {
-  ptrdiff_t found_pos = ZV;
+  ptrdiff_t eob
+    = STRINGP (bidi_it->string.lstring) ? bidi_it->string.schars : ZV;
+  ptrdiff_t found_pos = eob;
   /* Maximum bidi levels we allow for L2R and R2L characters.  Note
      that these are levels after resolving explicit embeddings,
      overrides, and isolates, i.e. before resolving implicit levels.  */
@@ -3607,8 +3609,8 @@ bidi_find_first_overridden (struct bidi_it *bidi_it)
          || ((category == WEAK || bidi_it->orig_type == NEUTRAL_ON)
              && level > max_weak))
        found_pos = bidi_it->charpos;
-    } while (found_pos == ZV
-            && bidi_it->charpos < ZV
+    } while (found_pos == eob
+            && bidi_it->charpos < eob
             && bidi_it->ch != BIDI_EOB
             && bidi_it->ch != '\n');
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]