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

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

[nongnu] elpa/geiser-chez e80f797a5c 10/15: autodoc: fix for arity 0 fun


From: ELPA Syncer
Subject: [nongnu] elpa/geiser-chez e80f797a5c 10/15: autodoc: fix for arity 0 functions
Date: Tue, 11 Oct 2022 13:58:55 -0400 (EDT)

branch: elpa/geiser-chez
commit e80f797a5c8e3b5ea647fb74194fea161df0550b
Author: jao <jao@gnu.org>
Commit: jao <jao@gnu.org>

    autodoc: fix for arity 0 functions
---
 src/geiser/geiser.ss | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/geiser/geiser.ss b/src/geiser/geiser.ss
index dae82c00eb..04fbca8190 100644
--- a/src/geiser/geiser.ss
+++ b/src/geiser/geiser.ss
@@ -74,6 +74,14 @@
                   (map write-to-string
                        (environment-symbols (interaction-environment))))))
 
+  (define not-found (gensym))
+
+  (define (try-eval sym . env)
+    (call/cc
+     (lambda (k)
+       (with-exception-handler (lambda (e) (k not-found))
+         (lambda () (if (null? env) (eval sym) (eval sym (car env))))))))
+
   (define (geiser:eval module form)
     (call-with-result
      (lambda () (if module (eval form (environment module)) (eval form)))))
@@ -137,14 +145,6 @@
            (l (string-length s)))
       (if (<= l max-len) s (string-append (substring s 0 sub-len) sub-str))))
 
-  (define not-found (gensym))
-
-  (define (try-eval sym)
-    (call/cc
-     (lambda (k)
-       (with-exception-handler (lambda (e) (k not-found))
-         (lambda () (eval sym))))))
-
   (define (operator-arglist operator)
     (define (procedure-parameter-list p)
       (and (procedure? p)
@@ -159,9 +159,10 @@
     (let ([binding (try-eval operator)])
       (if (not (eq? binding not-found))
           (let ([arglists (procedure-parameter-list binding)])
-            (if arglists
-                `(,operator ("args" ,@(map autodoc-arglist arglists)))
-                `(,operator ("value" . ,(value->string binding)))))
+            (cond ((null? arglists) `(,operator ("args" (("required")))))
+                  (arglists
+                   `(,operator ("args" ,@(map autodoc-arglist arglists))))
+                  (else `(,operator ("value" . ,(value->string binding))))))
           '())))
 
   (define (geiser:autodoc ids)



reply via email to

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