GNU bug report logs - #21080
Scrolling bug

Previous Next

Package: emacs;

Reported by: Bru Rom <sortir <at> gmail.com>

Date: Fri, 17 Jul 2015 17:29:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #13 received at 21080-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Bru Rom <sortir <at> gmail.com>
Cc: 21080-done <at> debbugs.gnu.org
Subject: Re: bug#21080: Scrolling bug
Date: Sat, 18 Jul 2015 13:07:20 +0300
> Date: Sat, 18 Jul 2015 00:58:14 +0300
> From: Bru Rom <sortir <at> gmail.com>
> 
> It can be any file with long enough lines.
> 
> For standard terminal 80x24, let the part of wikipedia article on Emacs be our
> "sample file". Emacs history from it:
> [...]

> Copy text to file, open it in Emacs with emacs -nw -Q
> 
> Next, exact sequence of commands:
> 
> alt-x customize-option
> scroll-conservatively
> Set there 10000, tab into state, enter state, press 0 = Set for Current Session
> Press 'q' to exit
> 
> Then alt-x visual-line-mode
> 
> Then C-End to go to end of buffer. Then scroll up line-by-line with Up. It
> scrolls by 2 over warped lines, but if you go down from start of buffer -
> everything will be ok.

Thanks.  This bug is now fixed in the development sources with the
simple change below (which you could probably easily apply to 24.5 or
previous versions, as that code was in Emacs since Mar 2002).

commit d3816bf8ad1fcfed2a32d23216a55850ee4325b5
Author: Eli Zaretskii <eliz <at> gnu.org>
Date:   Sat Jul 18 13:02:06 2015 +0300

    Fix scrolling backwards on TTY frames under scroll-conservatively
    
    * src/xdisp.c (move_it_vertically_backward): Fix off-by-one error
    in moving backwards on TTY frames.  (Bug#21080)

diff --git a/src/xdisp.c b/src/xdisp.c
index 5bef44c..16a7a64 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -9428,7 +9428,7 @@ struct overlay_entry
 	     treating terminal frames specially here.  */
 
 	  if (!FRAME_WINDOW_P (it->f))
-	    move_it_vertically (it, target_y - (it->current_y + line_height));
+	    move_it_vertically (it, target_y - it->current_y);
 	  else
 	    {
 	      do




This bug report was last modified 9 years and 312 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.