<stdlib.h>: Include if HAVE_STDLIB_H, since bison 1.27 invokes "free".
authorJim Meyering <jim@meyering.net>
Sun, 18 Apr 1999 23:17:30 +0000 (23:17 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 18 Apr 1999 23:17:30 +0000 (23:17 +0000)
(LookupWord, yylex): Don't pass negative char to ctype macros.

lib/getdate.y

index 857433648e232ae76b69219f76b9804d565b0582..3807e2f82ce771e45276a2cbffa4aa10bff26078 100644 (file)
 #include <stdio.h>
 #include <ctype.h>
 
+#if HAVE_STDLIB_H
+# include <stdlib.h> /* for `free'; used by Bison 1.27 */
+#endif
+
 #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
 # define IN_CTYPE_DOMAIN(c) 1
 #else
@@ -706,7 +710,7 @@ LookupWord (buff)
 
   /* Make it lowercase. */
   for (p = buff; *p; p++)
-    if (ISUPPER (*p))
+    if (ISUPPER ((unsigned char) *p))
       *p = tolower (*p);
 
   if (strcmp (buff, "am") == 0 || strcmp (buff, "a.m.") == 0)
@@ -787,7 +791,7 @@ LookupWord (buff)
       }
 
   /* Military timezones. */
-  if (buff[1] == '\0' && ISALPHA (*buff))
+  if (buff[1] == '\0' && ISALPHA ((unsigned char) *buff))
     {
       for (tp = MilitaryTable; tp->name; tp++)
        if (strcmp (buff, tp->name) == 0)
@@ -818,7 +822,7 @@ LookupWord (buff)
 static int
 yylex ()
 {
-  register char c;
+  register unsigned char c;
   register char *p;
   char buff[20];
   int Count;
@@ -826,7 +830,7 @@ yylex ()
 
   for (;;)
     {
-      while (ISSPACE (*yyInput))
+      while (ISSPACE ((unsigned char) *yyInput))
        yyInput++;
 
       if (ISDIGIT (c = *yyInput) || c == '-' || c == '+')