From 0cb1657860363730191182dd5b2e3dfc4d945ff4 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Mon, 29 May 2017 22:33:38 -0400 Subject: [PATCH] added first/last line logic to page-up/dn --- lib/view.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/view.c b/lib/view.c index 03b46bb..870cb8a 100644 --- a/lib/view.c +++ b/lib/view.c @@ -572,7 +572,13 @@ void view_scrollpage(View* view, int move) { find_cursor(view, &col, &row); move = (move < 0 ? -1 : 1) * view->nrows; view_scroll(view, move); - size_t off = view->rows[view->nrows/2]->off; + size_t off = view->rows[view->nrows/2]->off; + size_t scrbeg = view->rows[0]->off; + size_t scrend = view->rows[view->nrows-1]->off + view->rows[view->nrows-1]->rlen - 1; + if (scrbeg == 0) + off = 0; + else if (scrend >= buf_end(&(view->buffer))) + off = view->rows[view->nrows-1]->off; // size_t off = (move == UP ? view->rows[0]->off : view->rows[view->nrows/2]->off); // if (row != SIZE_MAX && col != SIZE_MAX) { -- 2.54.0