h.txt and how to treat it.
--------------------------

The fundamental model is fairly simple: a txt is a linear array of
characters. Any character codes (0..255) are allowed. There is a pointer
into this called dot, and some other pointers called markers.

The characters are displayed in a window, with a newline for each '\n'
character in the buffer. There are some bugs in the redraw of wrapped
lines. Screen updates happen for each text operation, but the result
is only sure to be good when redraws can happen too. When a txt is
displayed, dot is constrained to be visible and the text will be
scrolled in order to achieve this.

You can insert and delete characters at dot, during which the markers will
continue to point at the character that they pointed at before.

There is a "selection", independent of dot. Characters in the selection
are displayed highlighted. The selection doesn't actually do anything
else.

A txt is implemented using a single buffer containing the text, with
a gap at the dot. Moving the dot involves a block move of the intervening
text, but insertions and deletions are fast. The whole thing lives in
a flex block, which is expanded if necessary.

txt_setoaction does NOT work and should not be described, nor should
txt_overflowaction and txt_oaction. If the buffer overflows then the
block will be extended. The described action if you run out of store
is correct.

