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

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

[nongnu] elpa/geiser-chicken a480598b59: Fix bug calling with-all-output


From: ELPA Syncer
Subject: [nongnu] elpa/geiser-chicken a480598b59: Fix bug calling with-all-output-to-string from eval* (issue #34)
Date: Mon, 18 Jul 2022 21:58:22 -0400 (EDT)

branch: elpa/geiser-chicken
commit a480598b5908c95bc8d3178a48f13e9072a9235b
Author: VCGS40Y <ricardo.herdt@cariad.technology>
Commit: VCGS40Y <ricardo.herdt@cariad.technology>

    Fix bug calling with-all-output-to-string from eval* (issue #34)
    
    `with-all-output-to-string` expects a `thunk`, but `eval*` calls it with
    `(write-exception exn)`. This leads to a crash, for instance when it's 
called
    from `geiser-autodoc`:
    
    ```
    (geiser-autodoc '(chicken))
    Error: (#f) "unbound variable": (geiser#cleanup-tasks)
    Call history:
    
    Error: call of non-procedure: #<unspecified>
    
            Call history:
    
            [...]
            geiser/chicken/src/geiser/chicken5.scm:106: 
chicken.port#with-error-output-to-port
    ```
    
    Wrapping the calls to 'write-exception' with a lambda fixes the issue.
---
 src/geiser/chicken5.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/geiser/chicken5.scm b/src/geiser/chicken5.scm
index fd374b9387..8bca81180b 100644
--- a/src/geiser/chicken5.scm
+++ b/src/geiser/chicken5.scm
@@ -145,13 +145,13 @@
     (cond
      ((string? str)
       (handle-exceptions exn
-          (with-all-output-to-string (write-exception exn))
+          (with-all-output-to-string (lambda () (write-exception exn)))
         (eval
          (with-input-from-string str
            (lambda () (read))))))
      ((symbol? str)
       (handle-exceptions exn
-          (with-all-output-to-string (write-exception exn))
+          (with-all-output-to-string (lambda () (write-exception exn)))
         (eval str)))
      (else (eval* (->string str)))))
 



reply via email to

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