From 3b830ee19472f4c68586cb5fdd92ec6bb7c3b300 Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Fri, 27 Nov 2009 03:04:59 +0000
Subject: [PATCH] 2009-11-26 Chris Allegretta <chrisa@asty.org>         *
 winio.c (edit_scroll): Adjust for long lines when scrolling.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4444 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   | 3 +++
 src/move.c  | 2 +-
 src/winio.c | 3 +++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index a6b455be..863c1fbf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2009-11-26 Chris Allegretta <chrisa@asty.org>
+	* winio.c (edit_scroll): Adjust for long lines when scrolling.
+
 2009-11-26 Jordi Mallach <jordi@gnu.org>
 	* doc/man/*: Update all man pages to escape unescapred hyphens.
 
diff --git a/src/move.c b/src/move.c
index 14afc70f..578e3ef4 100644
--- a/src/move.c
+++ b/src/move.c
@@ -133,7 +133,7 @@ void do_page_down(void)
 	openfile->placewewant);
 
     /* Scroll the edit window down a page. */
-    edit_scroll(DOWN_DIR, maxrows - 2);
+    edit_scroll(DOWN_DIR, editwinrows - 2);
 }
 
 #ifndef DISABLE_JUSTIFY
diff --git a/src/winio.c b/src/winio.c
index c617fc8b..9f93ab1d 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -3038,6 +3038,9 @@ void edit_scroll(scroll_dir direction, ssize_t nlines)
 		break;
 	    openfile->edittop = openfile->edittop->next;
 	}
+	/* Don't over-scroll on long lines */
+	if (ISSET(SOFTWRAP))
+	    i -= strlenpt(openfile->edittop->data) / COLS;
     }
 
     compute_maxrows();
-- 
GitLab