From 529724fec7ce48fe562991a753736da2009bb7df Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 9 Feb 1998 11:16:35 +0000 Subject: [PATCH] (compute_motion): If right margin is reached and we are truncating don't clobber PREV_HPOS if we are already past TO. --- src/indent.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/indent.c b/src/indent.c index a067db21440..28a661dd9f1 100644 --- a/src/indent.c +++ b/src/indent.c @@ -1165,20 +1165,21 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width, && width + 1 < FRAME_WIDTH (XFRAME (WINDOW_FRAME (win)))) || !NILP (current_buffer->truncate_lines)) { - /* Truncating: skip to newline. */ - if (pos <= to) /* This IF is needed because we may past TO */ + /* Truncating: skip to newline, unless we are already past + TO (we need to go back below). */ + if (pos <= to) { pos = find_before_next_newline (pos, to, 1); pos_byte = CHAR_TO_BYTE (pos); + hpos = width; + /* If we just skipped next_boundary, + loop around in the main while + and handle it. */ + if (pos >= next_boundary) + next_boundary = pos + 1; + prev_hpos = width; + prev_tab_offset = tab_offset; } - hpos = width; - /* If we just skipped next_boundary, - loop around in the main while - and handle it. */ - if (pos >= next_boundary) - next_boundary = pos + 1; - prev_hpos = width; - prev_tab_offset = tab_offset; } else { -- 2.39.5