MFC: xkb: Escape non-printable characters correctly

XkbStringText escapes non-printable characters using octal numbers.
Such escape sequence would be at most 5 characters long ("\0123"), so
it reserves 5 bytes in the buffer. Due to char->unsigned int
conversion, it would print much longer string for negative numbers.
This commit is contained in:
matthieu
2017-10-14 09:12:44 +00:00
parent 2f2a50b99b
commit fd77a34918

View File

@@ -603,7 +603,7 @@ XkbStringText(char *str, unsigned format)
}
else {
*out++ = '0';
sprintf(out, "%o", *in);
sprintf(out, "%o", (unsigned char) *in);
while (*out != '\0')
out++;
}