From db7a0b4f1d883f537c669c09f651350b0ef0d3cf Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 5 May 2011 18:56:39 +0200 Subject: [PATCH] * src/lread.c (lisp_file_lexically_bound_p): Stop scanning at end marker. (Bug#8610) --- src/ChangeLog | 5 +++++ src/lread.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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'; -- 2.39.2