| Did you know ... | Search Documentation: |
| Lifetime |
terminal_block->remove
is the one thing that changes the buffer rather than reading it:
everything else here only says what is already there.
A block outlives the marks it was made from but not the text it
points at. Its positions are lines of the scrollback, so a line pushed
out of the buffer takes with it the marks that named it, and a block
with nothing left is dropped from terminal_block<-blocks
with its terminal_block<-terminal
set to
@nil. A block
still held elsewhere is then harmless: every method that needs text
fails.
terminal_block<-prompt, terminal_block<-input, terminal_block<-output
and terminal_block<-end
report positions in the flat character space of the terminal, which
composes with terminal_block<-contents,
terminal_block<-find, terminal_block->selection
and terminal_block->scroll_to
-- but see Character indices in the documentation of class terminal_image:
those indices shift as output pushes lines out of the scrollback. terminal_block<-id
is the handle that outlives them.