diff --git a/dtc-lexer.l b/dtc-lexer.l index 369407a..0cd7e67 100644 --- a/dtc-lexer.l +++ b/dtc-lexer.l @@ -75,11 +75,11 @@ static bool pop_input_file(void); char *line, *tmp, *fn; /* skip text before line # */ line = yytext; - while (!isdigit(*line)) + while (!isdigit((unsigned char)*line)) line++; /* skip digits in line # */ tmp = line; - while (!isspace(*tmp)) + while (!isspace((unsigned char)*tmp)) tmp++; /* "NULL"-terminate line # */ *tmp = '\0'; diff --git a/treesource.c b/treesource.c index ffebb77..bf7a626 100644 --- a/treesource.c +++ b/treesource.c @@ -56,7 +56,7 @@ static void write_prefix(FILE *f, int level) static bool isstring(char c) { - return (isprint(c) + return (isprint((unsigned char)c) || (c == '\0') || strchr("\a\b\t\n\v\f\r", c)); } @@ -119,7 +119,7 @@ static void write_propval_string(FILE *f, struct data val) fprintf(f, "\""); break; default: - if (isprint(c)) + if (isprint((unsigned char)c)) fprintf(f, "%c", c); else fprintf(f, "\\x%02hhx", c); diff --git a/util.c b/util.c index 2347af9..330b594 100644 --- a/util.c +++ b/util.c @@ -87,7 +87,7 @@ bool util_is_printable_string(const void *data, int len) while (s < se) { ss = s; - while (s < se && *s && isprint(*s)) + while (s < se && *s && isprint((unsigned char)*s)) s++; /* not zero, or not done yet */