diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-06-17 01:57:36 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-06-17 01:57:36 +0200 |
commit | 184fd00d6f3bd1ca3ad0e6c1d93731d649668f4a (patch) | |
tree | 437bfa888715108990f3b56980d59f80bbba5fff /scheme | |
parent | 2045e7b4f66685dc1beb1159900e91df3195cc99 (diff) | |
download | geiser-guile-184fd00d6f3bd1ca3ad0e6c1d93731d649668f4a.tar.gz geiser-guile-184fd00d6f3bd1ca3ad0e6c1d93731d649668f4a.tar.bz2 |
PLT: Fixing the fix.
Diffstat (limited to 'scheme')
-rw-r--r-- | scheme/plt/geiser/eval.ss | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/scheme/plt/geiser/eval.ss b/scheme/plt/geiser/eval.ss index ec86370..1ac94a3 100644 --- a/scheme/plt/geiser/eval.ss +++ b/scheme/plt/geiser/eval.ss @@ -46,23 +46,23 @@ (vector-ref (struct->vector e) 0)) (define (set-last-error e) - (set! last-result `((error (key . ,(exn-key e))) - (output . ,(exn-message e))))) + (set! last-result `((error (key . ,(exn-key e))))) + (display (exn-message e))) (define (set-last-result v . vs) (set! last-result `((result ,v ,@vs)))) (define (eval-in form spec) (set-last-result (void)) - (with-handlers ((exn? set-last-error)) - (update-module-cache spec form) - (let ((out - (with-output-to-string - (lambda () + (let ((output + (with-output-to-string + (lambda () + (with-handlers ((exn? set-last-error)) + (update-module-cache spec form) (call-with-values (lambda () (eval form (module-spec->namespace spec))) - set-last-result))))) - (append last-result `((output . ,out)))))) + set-last-result)))))) + (append last-result `((output . ,output))))) (define compile-in eval-in) |