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) {