Mercurial > hg > octave-nkf > gnulib-hg
changeset 688:cc4dbb9f5f58
Define and use upper case variants of ctype.h IS* macros.
From Bruno Haible.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sat, 07 Sep 1996 17:42:58 +0000 |
parents | e46401d63db8 |
children | 3ca2fc0b3a66 |
files | lib/getdate.y |
diffstat | 1 files changed, 19 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/getdate.y +++ b/lib/getdate.y @@ -34,6 +34,17 @@ #include <stdio.h> #include <ctype.h> +#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 <types.h> #include <time.h> @@ -710,7 +721,7 @@ /* 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 @@ } /* 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 @@ 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';