emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-chibi 8588086 11/38: Improve geiser:eval to return


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-chibi 8588086 11/38: Improve geiser:eval to return output Add docstring to geiser:output.
Date: Sun, 1 Aug 2021 18:26:16 -0400 (EDT)

branch: elpa/geiser-chibi
commit 8588086242bc5b8a3b6dbc05d986955cf414e96e
Author: Lockywolf <lockywolf@gmail.com>
Commit: Lockywolf <lockywolf@gmail.com>

    Improve geiser:eval to return output Add docstring to geiser:output.
---
 scheme/chibi/geiser/geiser.scm | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/scheme/chibi/geiser/geiser.scm b/scheme/chibi/geiser/geiser.scm
index 94f745a..5f9e25e 100644
--- a/scheme/chibi/geiser/geiser.scm
+++ b/scheme/chibi/geiser/geiser.scm
@@ -19,14 +19,22 @@
     (write form out)
     (get-output-string out)))
 
+;;> Evaluate a \var{form} in the namespace of the \var{module}.
+;;> The meaning of \var{rest} is unknown.
+;;> Return the alist with the first field, \scheme{result}, holds
+;;> the result of evaluation \scheme{(write)}'d and the second
+;;> field, \scheme{output}, contains everyting that the evaluation
+;;> would print to the standard output.
+
 (define (geiser:eval module form . rest)
   rest
   (guard (err (else (write `((result ,(show #f err))))))
-    (let ((output (open-output-string))
-          (result (if module
+    (let* ((output (open-output-string))
+          (result (parameterize ((current-output-port output))
+                   (if module
                       (let ((mod (module-env (find-module module))))
                         (eval form mod))
-                      (eval form))))
+                      (eval form)))))
       (write `((result ,(write-to-string result))
                (output . ,(get-output-string output))))))
   (values))
@@ -95,7 +103,7 @@
   #f)
 
 ;;> A chibi implementation of the standard geiser's location-making
-;;> subrouting. \var{file} is a string representing file name with path,
+;;> subroutine. \var{file} is a string representing file name with path,
 ;;> \var{line} is the line number starting from 0 (scheme way).
 
 (define (make-location file line)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]