From 64179bce4669bb1da753bd9de1f4bf3aeb1b6141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 28 Aug 2019 17:26:30 +0200 Subject: [PATCH] search: start search in current view, rather than from end-of-output --- search.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/search.c b/search.c index d0740b02..903645e5 100644 --- a/search.c +++ b/search.c @@ -60,15 +60,17 @@ search_update(struct terminal *term) (len > 0 && start_row >= 0 && start_col >= 0)); if (len == 0) { - start_row = grid_row_absolute(term->grid, term->rows - 1); + start_row = grid_row_absolute_in_view(term->grid, term->rows - 1); start_col = term->cols - 1; } - LOG_DBG("search: update: starting at row=%d col=%d", start_row, start_col); + LOG_DBG("search: update: starting at row=%d col=%d (offset = %d, view = %d)", + start_row, start_col, term->grid->offset, term->grid->view); #define ROW_DEC(_r) ((_r) = ((_r) - 1 + term->grid->num_rows) % term->grid->num_rows) /* Scan backward from current end-of-output */ + /* TODO: don't search "scrollback" in alt screen? */ for (size_t r = 0; r < term->grid->num_rows; ROW_DEC(start_row), r++) { const struct row *row = term->grid->rows[start_row]; if (row == NULL)