From: Eli Zaretskii Date: Fri, 25 Nov 2011 19:52:46 +0000 (+0200) Subject: Fix bug #10119 with C-e and whitespace-mode. X-Git-Tag: emacs-pretest-24.0.92~45 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=91b4a718988e9d56c2e135d3d41ae3578cbacffd;p=emacs.git Fix bug #10119 with C-e and whitespace-mode. 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. --- diff --git a/src/ChangeLog b/src/ChangeLog index fe7080f9c02..6d1a645c3ee 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 diff --git a/src/xdisp.c b/src/xdisp.c index 9397d15acb7..921155940b5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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);