waveplate pointed out that we needed to move to
STATE_WANT_DATA rather than STATE_WANT_HASH following
a '$' in sixel text. this was breaking ncsixel_as_rgba()
for larger sixels, for which we now have a unit test.
Closes#2784
apparently _nl_normalize_charset() of glibc removes
everything but alnums, and converts to lowercase.
replace strcmp() against "UTF-8" with encoding_is_utf8(),
which matches this behavior, and supports the optional
"cs" ("character set") prefix.
Closes#2780
In the metric test is a call to ncnmetric, which eventually calls
snprintf. Along the way is a size that is much larger than the actual
bufsize, but it shouldn't matter as the buffer size exceeds what we
print (or at least what is expected).
In testing with glibc 2.37 on armhf on Ubuntu Lunar, I found that these
metric tests can fail with some unexpected truncation of the values.
For example, in the following check,
```
impericize_ncmetric(0, 1, buf, 0, 1000, '\0');
CHECK(!strcmp("0.00", buf));
```
buf would actually be "0.0".
Using a more realistic buffer size produces a working result.
Fix bugs that occur when moving a plane-family up in the z-order with
ncplane_move_family_above, or down in the z-order with
ncplane_move_family_below.
There are small typos in:
- src/demo/fission.c
- src/tests/wide.cpp
Fixes:
- Should read `obliterated` rather than `oblitrated`.
- Should read `range` rather than `reange`.
several functions appear to have recently been marked
as accepting a const ncplane, despite potentially writing
into that plane's egcpool. in such cases, the ncplane
argument cannot be marked constant, as indicated by
compiler warnings. all have been rectified.