fix: ensure isprint() receives unsigned char to prevent MSVC debug assertions

This commit is contained in:
lightovernight 2025-03-07 18:38:03 +08:00
parent 1d73bdf241
commit d3035c5dd0

View File

@ -103,7 +103,7 @@ void c11_sbuf__write_quoted(c11_sbuf* self, c11_sv sv, char quote) {
if(i + u8bytes > sv.size) u8bytes = 0; // invalid utf8
if(u8bytes <= 1) {
// not a valid utf8 char, or ascii
if(!isprint(c)) {
if(!isprint((unsigned char)c)) {
unsigned char uc = (unsigned char)c;
c11_sbuf__write_cstrn(self, "\\x", 2);
c11_sbuf__write_char(self, PK_HEX_TABLE[uc >> 4]);