From 5546ba7c94fc0e11e15cd5185e74dde65a4dd772 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 7 Sep 1996 17:42:58 +0000 Subject: [PATCH] Define and use upper case variants of ctype.h IS* macros. From Bruno Haible. --- lib/getdate.y | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/getdate.y b/lib/getdate.y index cc53fde59..4bcc4c8a1 100644 --- a/lib/getdate.y +++ b/lib/getdate.y @@ -34,6 +34,17 @@ #include #include +#if defined (STDC_HEADERS) || !defined (isascii) +# define ISASCII(c) 1 +#else +# define ISASCII(c) isascii(c) +#endif + +#define ISSPACE(c) (ISASCII (c) && isspace (c)) +#define ISALPHA(c) (ISASCII (c) && isalpha (c)) +#define ISUPPER(c) (ISASCII (c) && isupper (c)) +#define ISDIGIT(c) (ISASCII (c) && isdigit (c)) + #if defined (vms) #include #include @@ -710,7 +721,7 @@ LookupWord (buff) /* Make it lowercase. */ for (p = buff; *p; p++) - if (isupper (*p)) + if (ISUPPER (*p)) *p = tolower (*p); if (strcmp (buff, "am") == 0 || strcmp (buff, "a.m.") == 0) { @@ -779,7 +790,7 @@ LookupWord (buff) } /* Military timezones. */ - if (buff[1] == '\0' && isalpha (*buff)) { + if (buff[1] == '\0' && ISALPHA (*buff)) { for (tp = MilitaryTable; tp->name; tp++) if (strcmp (buff, tp->name) == 0) { yylval.Number = tp->value; @@ -815,27 +826,27 @@ yylex () int sign; for ( ; ; ) { - while (isspace (*yyInput)) + while (ISSPACE (*yyInput)) yyInput++; - if (isdigit (c = *yyInput) || c == '-' || c == '+') { + if (ISDIGIT (c = *yyInput) || c == '-' || c == '+') { if (c == '-' || c == '+') { sign = c == '-' ? -1 : 1; - if (!isdigit (*++yyInput)) + if (!ISDIGIT (*++yyInput)) /* skip the '-' sign */ continue; } else sign = 0; - for (yylval.Number = 0; isdigit (c = *yyInput++); ) + for (yylval.Number = 0; ISDIGIT (c = *yyInput++); ) yylval.Number = 10 * yylval.Number + c - '0'; yyInput--; if (sign < 0) yylval.Number = -yylval.Number; return sign ? tSNUMBER : tUNUMBER; } - if (isalpha (c)) { - for (p = buff; isalpha (c = *yyInput++) || c == '.'; ) + if (ISALPHA (c)) { + for (p = buff; ISALPHA (c = *yyInput++) || c == '.'; ) if (p < &buff[sizeof buff - 1]) *p++ = c; *p = '\0'; -- 2.11.0