Move hardcursorpos into the renderstate carried
across rasterizations. This eliminates undesirable vertical
movement following pixel image emission #1400.
Add `notcurses_check_pixel_support()` and
`ncdirect_check_pixel_support()` per #1367. Removes
NCOPTION_VERIFY_SIXEL, again per #1367. Adds
`free_terminfo_cache()`, and calls it from both
`notcurses_stop_minimal()` and `ncdirect_stop()`.
Update all documentation. Closes#1371 and #1367.
notcurses_stats() and notcurses_stats_reset() now take the
new statlock member, as do stat modifications from render,
raster, writeout, resize, plane creation, and plane
destruction. Add nonnull attributes to stats API. Initialize
and destroy statlock as part of notcurses struct. Update
documentation. Free pilelock on error paths. Closes#1139.
After a long delay, apologies :)
Added:
* NotCurses: `can_sextant` (`notcurses_cansextant`)
* Notcurses: `linesigs_enable` (`notcurses_linesigs_enable`)
* Notcurses: `linesigs_disable` (`notcurses_linesigs_disable`)
* Pile: `top_with` (`ncpile_top`)
* Pile: `bottom_with` (`ncpile_bottom`)
* Plane: `resize_maximize` (`ncplane_resize_maximize`)
* Plane: `get_abs_x` (`ncplane_abs_x`)
* Plane: `get_abs_y` (`ncplane_abs_y`)
* Plane: `get_abs_yx` (`ncplane_abs_yx`)
* Plane: `load_egc32` (`cell_load_egc32`)
* Plane: `is_descendant_of` (`ncplane_descendant_p`)
* Progbar: new class, wraps `ncprogbar_*`
Changed:
* Plane (ABI break): `at_cursor` overloads now return `int` where
before they returned `bool` because the underlying Notcurses API
only signalled the operation status with the return value while now
it returns actual information.
Eliminate NCDIRECT_OPTION_NO_READLINE (it was only introduced in
Notcurses 2.1.6). Add a new function, ncdirect_readline(). Upon
first call to this function, initialize libreadline. Destroy
libreadline in ncdirect_stop() iff we initialized it. Add
hilodirect guessing game PoC from #1325. Rename
notcurses_directmode.3 to notcurses_direct.3. Closes#1326.