diff options
| author | Andreas Schwab | 2016-03-09 19:40:00 +0100 |
|---|---|---|
| committer | Andreas Schwab | 2016-03-09 19:45:40 +0100 |
| commit | 711ca362e7f8ca7c4f664dc2fe60bc5fa4e4f4fe (patch) | |
| tree | fb06c21131638649f0530f1700c2a91905973095 | |
| parent | 1b9d6163b023aaefd15d38ea28e968a113202402 (diff) | |
| download | emacs-711ca362e7f8ca7c4f664dc2fe60bc5fa4e4f4fe.tar.gz emacs-711ca362e7f8ca7c4f664dc2fe60bc5fa4e4f4fe.zip | |
Properly handle lambda as read function (bug 22961)
* src/lread.c (readchar): Be more strict about checking for
string in cons for read_vector.
(unreadchar): Likewise.
| -rw-r--r-- | src/lread.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lread.c b/src/lread.c index 25e3ff01d47..828c76ce49d 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -264,7 +264,7 @@ readchar (Lisp_Object readcharfun, bool *multibyte) | |||
| 264 | return c; | 264 | return c; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | if (CONSP (readcharfun)) | 267 | if (CONSP (readcharfun) && STRINGP (XCAR (readcharfun))) |
| 268 | { | 268 | { |
| 269 | /* This is the case that read_vector is reading from a unibyte | 269 | /* This is the case that read_vector is reading from a unibyte |
| 270 | string that contains a byte sequence previously skipped | 270 | string that contains a byte sequence previously skipped |
| @@ -406,7 +406,7 @@ unreadchar (Lisp_Object readcharfun, int c) | |||
| 406 | read_from_string_index_byte | 406 | read_from_string_index_byte |
| 407 | = string_char_to_byte (readcharfun, read_from_string_index); | 407 | = string_char_to_byte (readcharfun, read_from_string_index); |
| 408 | } | 408 | } |
| 409 | else if (CONSP (readcharfun)) | 409 | else if (CONSP (readcharfun) && STRINGP (XCAR (readcharfun))) |
| 410 | { | 410 | { |
| 411 | unread_char = c; | 411 | unread_char = c; |
| 412 | } | 412 | } |