Some checks for premature EOF.
authorJesse Thilo <jthilo@gnu.org>
Wed, 30 Dec 1998 06:07:25 +0000 (06:07 +0000)
committerJesse Thilo <jthilo@gnu.org>
Wed, 30 Dec 1998 06:07:25 +0000 (06:07 +0000)
src/reader.c

index d3b4caf06d12bcabdcbd35e5ea98414b6764422b..1e32494475aceddc8ce648a49932d62c911ded03 100644 (file)
@@ -488,8 +488,13 @@ parse_token_decl (int what_is, int what_is_not)
 
   for (;;)
     {
-      if(ungetc(skip_white_space(), finput) == '%')
+      int tmp_char = ungetc (skip_white_space (), finput);
+
+      if (tmp_char == '%')
        return;
+      if (tmp_char == EOF)
+       fatals ("Premature EOF after %s", token_buffer);
+
       token = lex();
       if (token == COMMA)
        {
@@ -671,9 +676,12 @@ parse_type_decl (void)
   for (;;)
     {
       register int t;
+      int tmp_char = ungetc (skip_white_space (), finput);
 
-      if(ungetc(skip_white_space(), finput) == '%')
+      if (tmp_char == '%')
        return;
+      if (tmp_char == EOF)
+       fatals ("Premature EOF after %s", token_buffer);
 
       t = lex();
 
@@ -716,9 +724,12 @@ parse_assoc_decl (int assoc)
   for (;;)
     {
       register int t;
+      int tmp_char = ungetc (skip_white_space (), finput);
 
-      if(ungetc(skip_white_space(), finput) == '%')
+      if (tmp_char == '%')
        return;
+      if (tmp_char == EOF)
+       fatals ("Premature EOF after %s", token_buffer);
 
       t = lex();