On system with signed char, ascii would incorrectly handle bytes with the highest bit set.
Before: $ ascii $(printf '\xff') ASCII 268435455/15 is decimal 4294967295, hex ffffffff, octal 37777777777, bits 11111111: meta-^_ After: $ ascii $(printf '\xff') ASCII 15/15 is decimal 255, hex ff, octal 377, bits 11111111: meta-^? Fixes: https://bugs.debian.org/437945 --- ascii.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ascii.c b/ascii.c index 4ad7d5b..8a6ff4d 100644 --- a/ascii.c +++ b/ascii.c @@ -224,7 +224,7 @@ static void ascii(char *str) /* interpret single characters as themselves */ if (len == 1) { - speak((unsigned int)str[0]); + speak((unsigned char)str[0]); /* also interpret single digits as numeric */ if(!line && strchr("0123456789ABCDEFabcdef",str[0])) { int hval; -- 2.17.1