* Chris Hofstaedtler <[email protected]> [251123 15:53]:
Reducing the system zshrc gives me:
$ zsh -f
tiksta% echo "$terminfo[smkx]"
yes
tiksta% echo "$terminfo[rmkx]"
yes
tiksta% echo $TERM
alacritty
After downgrading *ncurses* and libtinfo6 to 6.5+20250216-2:
$ zsh -f
tiksta% echo "$terminfo[smkx]"
tiksta% echo "$terminfo[rmkx]"
Looking at this further, with this C test program:
#include <curses.h>
#include <term.h>
int main(int argc, char** argv)
{
char *name = "rmkx";
int num;
initscr();
num = tigetnum(name);
printf("tigetnum %s = %d\n", name, num);
num = tigetflag(name);
printf("tigetflag %s = %d\n", name, num);
return 0;
}
I get the following results, with ncurses 6.5+20251115-2:
tigetnum rmkx = -2
tigetflag rmkx = 255
With the older ncurses 6.5+20250216-2:
tigetnum rmkx = -2
tigetflag rmkx = -1
Note that these results were obtained using the Debian binaries in
an arm64 VM.
I see patch 20251101 changed the definition of ABSENT_BOOLEAN from
((signed char)-1)
to
((NCURSES_SBOOL)-1)
While configure.in detects the possibility of using `signed char`
for `NCURSES_SBOOL`, I think by default it uses `char` (without
--enable-signed-char).
That seems like a problem on platforms where char is unsigned, like
arm64. Note that on amd64 ("x86"), char is signed.
Chris