emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r105223: Fix vertical cursor motion i


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105223: Fix vertical cursor motion in Speedbar frames under bidi display.
Date: Fri, 15 Jul 2011 13:50:03 +0300
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105223
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Fri 2011-07-15 13:50:03 +0300
message:
  Fix vertical cursor motion in Speedbar frames under bidi display.
  
   src/xdisp.c (move_it_in_display_line_to): Fix vertical motion with
   bidi redisplay when a line includes both an image and is
   truncated.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-07-15 02:18:02 +0000
+++ b/src/ChangeLog     2011-07-15 10:50:03 +0000
@@ -1,3 +1,9 @@
+2011-07-15  Eli Zaretskii  <address@hidden>
+
+       * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
+       bidi redisplay when a line includes both an image and is
+       truncated.
+
 2011-07-14  Paul Eggert  <address@hidden>
 
        Fix minor problems found by static checking.

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2011-07-14 21:34:18 +0000
+++ b/src/xdisp.c       2011-07-15 10:50:03 +0000
@@ -7928,7 +7928,14 @@
              || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
            {
              if (!get_next_display_element (it)
-                 || BUFFER_POS_REACHED_P ())
+                 || BUFFER_POS_REACHED_P ()
+                 /* If we are past TO_CHARPOS, but never saw any
+                    character positions smaller than TO_CHARPOS,
+                    return MOVE_POS_MATCH_OR_ZV, like the
+                    unidirectional display did.  */
+                 || ((op & MOVE_TO_POS) != 0
+                     && !saw_smaller_pos
+                     && IT_CHARPOS (*it) > to_charpos))
                {
                  result = MOVE_POS_MATCH_OR_ZV;
                  break;
@@ -7939,6 +7946,13 @@
                  break;
                }
            }
+         else if ((op & MOVE_TO_POS) != 0
+                  && !saw_smaller_pos
+                  && IT_CHARPOS (*it) > to_charpos)
+           {
+             result = MOVE_POS_MATCH_OR_ZV;
+             break;
+           }
          result = MOVE_LINE_TRUNCATED;
          break;
        }


reply via email to

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