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';