fix zo-parse problem with graphs in literal data
svn: r14596
original commit: 2439b4cb75
This commit is contained in:
parent
0a8691e0bb
commit
cd3f1c8707
|
@ -729,7 +729,7 @@
|
||||||
[read-accept-dot #t]
|
[read-accept-dot #t]
|
||||||
[read-accept-infix-dot #t]
|
[read-accept-infix-dot #t]
|
||||||
[read-accept-quasiquote #t])
|
[read-accept-quasiquote #t])
|
||||||
(read (open-input-bytes s))))]
|
(read/recursive (open-input-bytes s))))]
|
||||||
[(reference)
|
[(reference)
|
||||||
(make-primval (read-compact-number cp))]
|
(make-primval (read-compact-number cp))]
|
||||||
[(small-list small-proper-list)
|
[(small-list small-proper-list)
|
||||||
|
@ -837,7 +837,17 @@
|
||||||
[(box)
|
[(box)
|
||||||
(box (read-compact cp))]
|
(box (read-compact cp))]
|
||||||
[(quote)
|
[(quote)
|
||||||
(make-reader-graph (read-compact cp))]
|
(make-reader-graph
|
||||||
|
;; Nested escapes need to share graph references. So get inside the
|
||||||
|
;; read where `read/recursive' can be used:
|
||||||
|
(let ([rt (current-readtable)])
|
||||||
|
(parameterize ([current-readtable (make-readtable
|
||||||
|
#f
|
||||||
|
#\x 'terminating-macro
|
||||||
|
(lambda args
|
||||||
|
(parameterize ([current-readtable rt])
|
||||||
|
(read-compact cp))))])
|
||||||
|
(read (open-input-bytes #"x")))))]
|
||||||
[(symref)
|
[(symref)
|
||||||
(let* ([l (read-compact-number cp)]
|
(let* ([l (read-compact-number cp)]
|
||||||
[v (vector-ref (cport-symtab cp) l)])
|
[v (vector-ref (cport-symtab cp) l)])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user