We might have already unambiguously identified our terminal
by the time we start probing (the Linux console, for instance,
is identified via ioctl()s). If we have, we still want to
send non-identification-related queries in, particularly to
get the cursor position. This fixes up notcurses-info on the
Linux console (#1837).
Synchronized Updates are implemented in two different ways,
depending on the terminal. Some use DCS, and some use SM/RM.
If the terminal replies with a ?2026 advertisement, use
SM/RM. Otherwise, if heuristics suggest it, use DCS.
Closes#1850.
If we're a transparent sprixcell, we don't need an
auxiliary vector...until we do. If we reload the sprixel,
we have to update the auxiliary vectors, and assume one
is there. Since we're going to be getting rid of auxvecs
for kitty once we're using animation extensions, just go
ahead and always create one. Closes#1847.
Pull out the dreadful 'cursor_hack' code that was
used for MLterm. If you send DECSDM the way MLterm
wants it, you don't have the problem of the cursor
becoming visible whenever you draw a Sixel. We send
it as expected now, so that's all good.
On the Linux console, we were using an uninitialized
variable for ASU detection. This has been remedied.
- fix notcurses_debug test on s390x & ppc64le.
- fix NcChannels parameters for NcPlane methods gradient & gradient_sized.
- fix ncplane_gradient & ncplane_gradient_sized on i686 & arm7hl by reimplementing them as a thin wrapper.
- fix ncdirect_hline_interp & ncdirect_vline_interp on i686 & arm7hl by reimplementing them as a thin wrapper.
- fix some docs & do some minimal refactoring.