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.
- An `EGC` is an UTF-8 string of length 1, not a unicode code point (char).
- remove the `NcEgc` type and use `&str` and `String`, instead (for now).
- update some docs.
- rustfmt.
Add new internal function coerce_styles(). This only,
and explicitly, attempts to work on UNDERLINE, BOLD, ITALICS,
STRUCK, and UNDERCURL. It does not use sgr0, eliminating the
need to recover colors on a style change. It furthermore fixes
a bug when undercurl and underline changed at the same time.
Finally, it is written in a way suitable for calling from
ncdirect, meaning we can eliminate the duplicated code
therein (its own copy of term_setstyles()) #1818.