diff --git a/usr.bin/tar/getdate.y b/usr.bin/tar/getdate.y index 641afb080c0..16162c35424 100644 --- a/usr.bin/tar/getdate.y +++ b/usr.bin/tar/getdate.y @@ -611,7 +611,7 @@ yylex(void) char buff[64]; for ( ; ; ) { - while (isspace(*yyInput)) + while (isspace((unsigned char)*yyInput)) yyInput++; /* Skip parenthesized comments. */ @@ -638,11 +638,11 @@ yylex(void) /* Force to lowercase and strip '.' characters. */ while (*src != '\0' - && (isalnum(*src) || *src == '.') + && (isalnum((unsigned char)*src) || *src == '.') && i < sizeof(buff)-1) { if (*src != '.') { - if (isupper(*src)) - buff[i++] = tolower(*src); + if (isupper((unsigned char)*src)) + buff[i++] = tolower((unsigned char)*src); else buff[i++] = *src; } @@ -676,8 +676,8 @@ yylex(void) * Because '-' and '+' have other special meanings, I * don't deal with signed numbers here. */ - if (isdigit(c = *yyInput)) { - for (yylval.Number = 0; isdigit(c = *yyInput++); ) + if (isdigit((unsigned char)(c = *yyInput))) { + for (yylval.Number = 0; isdigit((unsigned char)(c = *yyInput++)); ) yylval.Number = 10 * yylval.Number + c - '0'; yyInput--; return (tUNUMBER);