Resolves #410. notcurses_at_yx() accepted a cell*, but the gcluster of this cell was always set to 0. The EGC is instead a heap-allocated copy, returned as the primary return value. This is due to the absence of an egcpool to bind against. Existing callers can be converted thus: * instead of passing cell 'c', pass &(c)->attrword, &(c)->channels * either initialize 'c' with CELL_TRIVIAL_INITIALIZER, or set its gcluster field to 0 following the call I've updated all calls from tests/demos, updated the docs, and updated the C++ and Python wrappers.
1011 B
This document attempts to list user-visible changes and any major internal rearrangements of Notcurse.
-
1.2.5 (not yet released) **
ncvisual_render()
now returns the number of cells emitted on success, as opposed to 0. Failure still sees -1 returned. **ncvisual_render()
now interprets length parameters of -1 to mean "to the end along this axis", and no longer interprets 0 to mean this. 0 now means "a length of 0", resulting in a zero-area rendering. **notcurses_at_yx()
no longer accepts acell*
as its last parameter. Instead, it accepts auint32_t*
and auint64_t*
, and writes the attribute and channels to these parameters. This was done because thegcluster
field of thecell*
was always set to 0, which was surprising and a source of blunders. The EGC is returned via thechar*
return value. https://github.com/dankamongmen/notcurses/issues/410 -
1.2.4 2020-03-24 ** Add ncmultiselector ** Add
ncdirect_cursor_enable()
andncdirect_cursor_disable()
.