From c9199e9e9a7cf9267a91fb6417c12055e91aa4bc Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Thu, 26 Nov 2009 18:23:00 +0000
Subject: [PATCH] Simplify logic in do_down() since we now have maxrows to rely
 on.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4442 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 src/move.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/src/move.c b/src/move.c
index 4c877472..14afc70f 100644
--- a/src/move.c
+++ b/src/move.c
@@ -75,9 +75,13 @@ void do_page_up(void)
     for (i = editwinrows - 2; i - skipped > 0 && openfile->current !=
 	openfile->fileage; i--) {
 	openfile->current = openfile->current->prev;
-	if (ISSET(SOFTWRAP) && openfile->current)
+	if (ISSET(SOFTWRAP) && openfile->current) {
 	    skipped += strlenpt(openfile->current->data) / COLS;
-
+#ifdef DEBUG
+    fprintf(stderr, "do_page_up: i = %d, skipped = %d based on line %ld len %d\n", i, (unsigned long) skipped, 
+openfile->current->lineno, strlenpt(openfile->current->data));
+#endif
+	}
     }
 
     openfile->current_x = actual_x(openfile->current->data,
@@ -573,17 +577,7 @@ void do_down(
 	openfile->placewewant);
 
     if (ISSET(SOFTWRAP)) {
-	filestruct *foo;
-	ssize_t extracuzsoft = 0;
-
-	for (foo = openfile->edittop; foo
-		&& foo->lineno - openfile->edittop->lineno + extracuzsoft < editwinrows;
-		foo = foo->next) {
-	    extracuzsoft += strlenpt(foo->data) / (COLS - 1);
-	    if (foo == openfile->current)
-		break;
-	}
-	if (foo && foo->lineno - openfile->edittop->lineno + extracuzsoft >= editwinrows)
+	if (openfile->current->lineno - openfile->edittop->lineno >= maxrows)
 	    onlastline = TRUE;
     }
 
-- 
GitLab