# term: rendered reads keep blank lines between content \(\#140\) · lucenx/signaltty

[View on GitCafe](https://git.cafe/lucenx/signaltty/commit/f28a6d9ebbb70a20ebd2e625f5f8dc275e5fafa6)

Repository: [lucenx/signaltty](https://git.cafe/lucenx/signaltty)

Visibility: public

Requested revision: f28a6d9ebbb70a20ebd2e625f5f8dc275e5fafa6

Requested commit: f28a6d9ebbb70a20ebd2e625f5f8dc275e5fafa6

Commit: f28a6d9ebbb70a20ebd2e625f5f8dc275e5fafa6

Tree: e5b74be8c28eac061889255e96dccdeedb73951e

Author: Simone

Committer: GitHub

## Message

```
term: rendered reads keep blank lines between content (#140)

* term: rendered reads keep blank lines between content

The fast-path pre-sizing gave every fresh screen row seq 0. A row that
stays blank keeps that seq, and rendered reads filter on seq > after_seq,
so a full read (after_seq 0) silently dropped blank lines that tail
returns: "a\r\n\r\nb" read back as "a\nb". Mint a sequence per row,
as fit_len does on the legacy path.

* term: keep seq 0 for fresh rows, full rendered reads include them

Minting seqs in the pre-size loop pushed head past dropped_floor on a
restored surface, so pre-restart cursors stopped reading as dropped.
Rows stay seq 0 again; rendered() treats after_seq 0 as 'oldest retained'
and includes seq-0 rows. Reply seq is the first non-zero seq, else head.

---------

Co-authored-by: Grok Bot <grok-bot@users.noreply.github.com>
```

## Parents

- [f78247d794612a2e15e51d0ab541c4517b8bb255](https://git.cafe/lucenx/signaltty/commit/f78247d794612a2e15e51d0ab541c4517b8bb255?format=markdown)

[Source at this commit](https://git.cafe/lucenx/signaltty/tree/f28a6d9ebbb70a20ebd2e625f5f8dc275e5fafa6?format=markdown)
