From d8d4b343626807e421ff95c032041165bae65597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 10 Jul 2019 14:28:20 +0200 Subject: [PATCH] scrollback: fix scrolling outside initialized lines in new terminal --- commands.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/commands.c b/commands.c index 006e537c..dcf2a3f6 100644 --- a/commands.c +++ b/commands.c @@ -29,6 +29,16 @@ cmd_scrollback_up(struct terminal *term, int rows) while (!term->grid->rows[new_view]->initialized) new_view = (new_view + 1) % term->grid->num_rows; + if (new_view == term->grid->view) { + /* + * This happens when scrolling up in a newly opened terminal; + * every single line (except those already visible) are + * uninitalized, and the loop above will bring us back to + * where we started. + */ + return; + } + /* Don't scroll past scrollback history */ int end = (term->grid->offset + term->rows - 1) % term->grid->num_rows; if (end >= term->grid->offset) {