On 2026-08-18 11:23, Bruno Haible wrote:
So, for me, (3) is the right approach: In the "C" locale, map 0x80..0xFF not to U+0080..U+00FF but to U+DF80..U+DFFF, like musl libc does it. This will ensure that c32isprint returns 0 on these inputs, like isprint does.
This sounds good to me as well. It is unfortunate that the "C" locale, which is supposed to be fast, will have a small performance penalty on OpenBSD and Cygwin (and I assume native MS-Windows?) due to Gnulib having to replace mbrtoc32. But that's better than incorrect behavior.
