* src/lread.c (lisp_file_lexically_bound_p): Stop scanning at end
authorAndreas Schwab <schwab@linux-m68k.org>
Thu, 5 May 2011 16:56:39 +0000 (18:56 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Thu, 5 May 2011 16:56:39 +0000 (18:56 +0200)
marker.  (Bug#8610)

src/ChangeLog
src/lread.c

index b6e30ab..ae1b9e7 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-05  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
+       marker.  (Bug#8610)
+
 2011-05-05 Eli Zaretskii  <eliz@gnu.org>
 
        * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
index 7ffc98b..2139d55 100644 (file)
@@ -830,7 +830,7 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun)
            ch = READCHAR;
 
          i = 0;
-         while (ch != ':' && ch != '\n' && ch != EOF)
+         while (ch != ':' && ch != '\n' && ch != EOF && in_file_vars)
            {
              if (i < sizeof var - 1)
                var[i++] = ch;
@@ -838,6 +838,10 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun)
              ch = READCHAR;
            }
 
+         /* Stop scanning if no colon was found before end marker.  */
+         if (!in_file_vars)
+           break;
+
          while (i > 0 && (var[i - 1] == ' ' || var[i - 1] == '\t'))
            i--;
          var[i] = '\0';