diff options
-rw-r--r-- | RichString.c | 5 | ||||
-rw-r--r-- | Settings.c | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/RichString.c b/RichString.c index 556674b0..248b3ae0 100644 --- a/RichString.c +++ b/RichString.c @@ -9,7 +9,9 @@ in the source distribution for its full text. #include "RichString.h" +#include <assert.h> #include <ctype.h> +#include <limits.h> // IWYU pragma: keep #include <stdlib.h> #include <string.h> @@ -144,7 +146,8 @@ static inline int RichString_writeFromAscii(RichString* this, int attrs, const c int newLen = from + len; RichString_setLen(this, newLen); for (int i = from, j = 0; i < newLen; i++, j++) { - this->chptr[i] = (CharType) { .attr = attrs & 0xffffff, .chars = { (isprint(data[j]) ? data[j] : L'\xFFFD') } }; + assert((unsigned char)data[j] <= SCHAR_MAX); + this->chptr[i] = (CharType) { .attr = attrs & 0xffffff, .chars = { (isprint((unsigned char)data[j]) ? data[j] : L'\xFFFD') } }; } return len; @@ -233,7 +233,7 @@ static const char* toFieldName(Hashtable* columns, int id, bool* enabled) { } static int toFieldIndex(Hashtable* columns, const char* str) { - if (isdigit(str[0])) { + if (isdigit((unsigned char)str[0])) { // This "+1" is for compatibility with the older enum format. int id = atoi(str) + 1; if (toFieldName(columns, id, NULL)) { |