commit 77e9dca243b35282e791da8dc31090ca38d3609c
parent 6fb5dc58de6fe9b5c2bdf21e718e9a32a7e732c6
Author: Matthew Flatt <mflatt@racket-lang.org>
Date: Fri, 26 Nov 2010 19:13:03 -0700
fixes to make pict eval results work in Scribble
original commit: 5d386a99ec8121261fd61d61da9e5ac69a217488
Diffstat:
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/collects/scribble/eval.rkt b/collects/scribble/eval.rkt
@@ -8,6 +8,7 @@
racket/sandbox
racket/promise
racket/string
+ file/convertible
(for-syntax racket/base))
(provide interaction
@@ -38,6 +39,8 @@
(define maxlen 60)
+ (define-namespace-anchor anchor)
+
(namespace-require 'racket/base)
(namespace-require '(for-syntax racket/base))
@@ -270,7 +273,12 @@
(parameterize ([sandbox-output 'string]
[sandbox-error-output 'string]
[sandbox-propagate-breaks #f])
- (make-evaluator '(begin))))))
+ (let ([e (make-evaluator '(begin))])
+ (let ([ns (namespace-anchor->namespace anchor)])
+ (call-in-sandbox-context e
+ (lambda ()
+ (namespace-attach-module ns 'file/convertible))))
+ e)))))
(define (make-base-eval-factory mod-paths)
(let ([ns (delay (let ([ns (make-base-empty-namespace)])
diff --git a/collects/scribble/racket.rkt b/collects/scribble/racket.rkt
@@ -8,6 +8,7 @@
mzlib/for
syntax/modresolve
syntax/modcode
+ file/convertible
(for-syntax racket/base))
(provide define-code
@@ -215,7 +216,8 @@
quote-depth)])
(if (or (element? (syntax-e c))
(delayed-element? (syntax-e c))
- (part-relative-element? (syntax-e c)))
+ (part-relative-element? (syntax-e c))
+ (convertible? (syntax-e c)))
(out (syntax-e c) #f)
(out (if (and (identifier? c)
color?