From d01756bb69f42f324e5e56fb5d76a900d13444b6 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Mon, 27 Mar 2017 15:50:46 -0500
Subject: [PATCH] moving: determine the correct leftedge when paging up/down
 too

The change in commit 244a503d for the <Up> and <Down> keys
needs to be done for <PageUp> and <PageDown> too.
---
 src/move.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/move.c b/src/move.c
index c98f3043..09ce649c 100644
--- a/src/move.c
+++ b/src/move.c
@@ -65,7 +65,12 @@ void do_page_up(void)
 
 #ifndef NANO_TINY
     if (ISSET(SOFTWRAP)) {
-	leftedge = (openfile->placewewant / editwincols) * editwincols;
+	size_t realspan = strlenpt(openfile->current->data);
+
+	if (openfile->placewewant < realspan)
+	    realspan = openfile->placewewant;
+
+	leftedge = (realspan / editwincols) * editwincols;
 	target_column = openfile->placewewant % editwincols;
     } else
 #endif
@@ -103,7 +108,12 @@ void do_page_down(void)
 
 #ifndef NANO_TINY
     if (ISSET(SOFTWRAP)) {
-	leftedge = (openfile->placewewant / editwincols) * editwincols;
+	size_t realspan = strlenpt(openfile->current->data);
+
+	if (openfile->placewewant < realspan)
+	    realspan = openfile->placewewant;
+
+	leftedge = (realspan / editwincols) * editwincols;
 	target_column = openfile->placewewant % editwincols;
     } else
 #endif
-- 
GitLab