mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
search: don't line-wrap unless we actually have a match on the next row
When matching characters, we moved on to next row directly after matching the last character in a row. This was wrong since if that last character was the last matching character, we tried to create a selection that was on the wrong row.
This commit is contained in:
parent
d94fc80966
commit
10cf722617
1 changed files with 6 additions and 4 deletions
10
search.c
10
search.c
|
|
@ -148,10 +148,7 @@ search_update(struct terminal *term)
|
|||
size_t match_len = 0;
|
||||
|
||||
for (size_t i = 0; i < term->search.len; i++, match_len++) {
|
||||
if (wcsncasecmp(&row->cells[end_col].wc, &term->search.buf[i], 1) != 0)
|
||||
break;
|
||||
|
||||
if (++end_col >= term->cols) {
|
||||
if (end_col >= term->cols) {
|
||||
if (end_row + 1 > grid_row_absolute(term->grid, term->grid->offset + term->rows - 1)) {
|
||||
/* Don't continue past end of the world */
|
||||
break;
|
||||
|
|
@ -161,6 +158,11 @@ search_update(struct terminal *term)
|
|||
end_col = 0;
|
||||
row = term->grid->rows[end_row];
|
||||
}
|
||||
|
||||
if (wcsncasecmp(&row->cells[end_col].wc, &term->search.buf[i], 1) != 0)
|
||||
break;
|
||||
|
||||
end_col++;
|
||||
}
|
||||
|
||||
if (match_len != term->search.len) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue