]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #10119 with C-e and whitespace-mode.
authorEli Zaretskii <eliz@gnu.org>
Fri, 25 Nov 2011 19:52:46 +0000 (21:52 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 25 Nov 2011 19:52:46 +0000 (21:52 +0200)
 src/xdisp.c (start_display): Don't move to the next line if the display
 should start at a newline that is part of a display vector or an overlay
 string.

src/ChangeLog
src/xdisp.c

index fe7080f9c026e30153067fd3c45284539a3d891a..6d1a645c3ee90500e279f4eff1d4f4c98e77f548 100644 (file)
@@ -4,6 +4,9 @@
        after recentering, and scroll-conservatively is set to a large
        number, scroll window by a few more lines to make the cursor fully
        visible and out of scroll-margin.  (Bug#10105)
+       (start_display): Don't move to the next line if the display should
+       start at a newline that is part of a display vector or an overlay
+       string.  (Bug#10119)
 
 2011-11-24  Juri Linkov  <juri@jurta.org>
 
index 9397d15acb7068fbb6b89c2d31f6ce916be477b2..921155940b51f533684c885db861c37fd35e1349 100644 (file)
@@ -2846,8 +2846,14 @@ start_display (struct it *it, struct window *w, struct text_pos pos)
                  || (new_x == it->last_visible_x
                      && FRAME_WINDOW_P (it->f))))
            {
-             if (it->current.dpvec_index >= 0
-                 || it->current.overlay_string_index >= 0)
+             if ((it->current.dpvec_index >= 0
+                  || it->current.overlay_string_index >= 0)
+                 /* If we are on a newline from a display vector or
+                    overlay string, then we are already at the end of
+                    a screen line; no need to go to the next line in
+                    that case, as this line is not really continued.
+                    (If we do go to the next line, C-e will not DTRT.)  */
+                 && it->c != '\n')
                {
                  set_iterator_to_next (it, 1);
                  move_it_in_display_line_to (it, -1, -1, 0);