diff --git a/src/ChangeLog b/src/ChangeLog index b6e30ab817c..ae1b9e773a2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-05-05 Andreas Schwab + + * lread.c (lisp_file_lexically_bound_p): Stop scanning at end + marker. (Bug#8610) + 2011-05-05 Eli Zaretskii * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]: diff --git a/src/lread.c b/src/lread.c index 7ffc98b254f..2139d558851 100644 --- a/src/lread.c +++ b/src/lread.c @@ -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';