prefab structure types (3.99.0.18)
svn: r8967 original commit: 293ba025bad3b0341715153f8cbfd37f4d871a38
This commit is contained in:
parent
db1a358d81
commit
9cfbf28481
|
@ -391,6 +391,13 @@
|
|||
(add-spaces (- n 8) port))
|
||||
(write-string " " port 0 n))))
|
||||
|
||||
(define (prefab?! obj v)
|
||||
(let ([d (prefab-struct-key obj)])
|
||||
(and d
|
||||
(begin
|
||||
(vector-set! v 0 d)
|
||||
#t))))
|
||||
|
||||
(define (generic-write obj display? width pport
|
||||
print-graph? print-struct? print-hash-table? print-vec-length? print-box?
|
||||
depth size-hook)
|
||||
|
@ -713,7 +720,10 @@
|
|||
#f #f
|
||||
(lambda ()
|
||||
(out "#")
|
||||
(wr-lst (vector->list (struct->vector obj)) #f (dsub1 depth) pair? car cdr "(" ")")))
|
||||
(let ([v (struct->vector obj)])
|
||||
(when (prefab?! obj v)
|
||||
(out "s"))
|
||||
(wr-lst (vector->list v) #f (dsub1 depth) pair? car cdr "(" ")"))))
|
||||
(parameterize ([print-struct #f])
|
||||
((if display? orig-display orig-write) obj pport)))]
|
||||
[(hash-table? obj)
|
||||
|
@ -832,7 +842,10 @@
|
|||
(write-custom pp* obj pport depth display? width)]
|
||||
[(struct? obj) ; print-struct is on if we got here
|
||||
(out "#")
|
||||
(pp-list (vector->list (struct->vector obj)) extra pp-expr #f depth)]
|
||||
(let ([v (struct->vector obj)])
|
||||
(when (prefab?! obj v)
|
||||
(out "s"))
|
||||
(pp-list (vector->list v) extra pp-expr #f depth))]
|
||||
[(hash-table? obj)
|
||||
(out (if (hash-table? obj 'equal)
|
||||
"#hash"
|
||||
|
|
Loading…
Reference in New Issue
Block a user