sharp-s-reader: read should be invoked recursively

Patch provided by drmeister. Test case:

(defstruct foo a)
(read-from-string
 "(#1=\"Hello\" #S(FOO :A #1#))"))

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
This commit is contained in:
Daniel Kochmański 2015-09-01 15:07:06 +02:00
parent a584aeb7c3
commit 1ed1a45fb2

View file

@ -177,7 +177,7 @@ printed. If FORMAT-STRING is NIL, however, no prompt will appear."
(declare (ignore subchar))
(when (and arg (null *read-suppress*))
(error "~S is an extra argument for the #s readmacro." arg))
(let ((l (read stream)))
(let ((l (read stream t nil t)))
(when *read-suppress*
(return-from sharp-s-reader nil))
(unless (get-sysprop (car l) 'is-a-structure)