emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r106133: Followup to revision 106131.


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106133: Followup to revision 106131.
Date: Wed, 19 Oct 2011 13:46:17 +0200
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106133
fixes bug(s): http://debbugs.gnu.org/9771
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Wed 2011-10-19 13:46:17 +0200
message:
  Followup to revision 106131.
  
   src/xdisp.c (try_window_reusing_current_matrix): If a line ends in a display
   vector or the next line starts in a display vector, continue
   redrawing the window even though the character position of
   start_row was reached.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-10-19 09:48:35 +0000
+++ b/src/ChangeLog     2011-10-19 11:46:17 +0000
@@ -2,6 +2,10 @@
 
        * xdisp.c (start_display): If the character at POS is displayed
        via a display vector, reset IT->current.dpvec_index to zero.
+       (try_window_reusing_current_matrix): If a line ends in a display
+       vector or the next line starts in a display vector, continue
+       redrawing the window even though the character position of
+       start_row was reached.
        (Bug#9771, part 2)
 
 2011-10-18  Chong Yidong  <address@hidden>

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2011-10-19 09:48:35 +0000
+++ b/src/xdisp.c       2011-10-19 11:46:17 +0000
@@ -16078,13 +16078,20 @@
 
              start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix);
            }
-         /* If we have reached alignment,
-            we can copy the rest of the rows.  */
-         if (IT_CHARPOS (it) == CHARPOS (start))
+         /* If we have reached alignment, we can copy the rest of the
+            rows.  */
+         if (IT_CHARPOS (it) == CHARPOS (start)
+             /* Don't accept "alignment" inside a display vector,
+                since start_row could have started in the middle of
+                that same display vector (thus their character
+                positions match), and we have no way of telling if
+                that is the case.  */
+             && it.current.dpvec_index < 0)
            break;
 
          if (display_line (&it))
            last_text_row = it.glyph_row - 1;
+
        }
 
       /* A value of current_y < last_visible_y means that we stopped


reply via email to

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