grid: reflow: fix empty line coalescing

If a range of empty lines ended with a non-empty line at the very
bottom of the to-be-resized grid, all those empty lines were removed.

Closes #2011
This commit is contained in:
Daniel Eklöf 2025-03-29 10:15:13 +01:00
parent 9b776f2d6d
commit c8470f40c1
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 5 additions and 4 deletions

View file

@ -79,8 +79,11 @@
* Regression: assertion in `url-mode.c` when activating a second URL
via `show-urls-persistent` ([#2000][2000]).
* Build failure (`srgb.h` not found) when doing a parallel build.
* Regression: reflowing (changing the window size) removing empty
lines ([#2011][2011]).
[2000]: https://codeberg.org/dnkl/foot/issues/2000
[2011]: https://codeberg.org/dnkl/foot/issues/2011
### Security

4
grid.c
View file

@ -985,13 +985,11 @@ grid_resize_and_reflow(
underline_range = underline_range_terminator = NULL;
if (unlikely(col_count > 0 && coalesced_linebreaks > 0)) {
for (size_t apa = 0; apa < coalesced_linebreaks; apa++) {
for (size_t line_no = 0; line_no < coalesced_linebreaks; line_no++) {
/* Erase the remaining cells */
memset(&new_row->cells[new_col_idx], 0,
(new_cols - new_col_idx) * sizeof(new_row->cells[0]));
new_row->linebreak = true;
if (r + 1 < old_rows)
line_wrap();
}