branch: elpa/geiser-gauche
commit 98c52e662fcea85e0b7af2ddf5ccd2ee36a2ad0f
Author: András Simonyi <[email protected]>
Commit: András Simonyi <[email protected]>

    Deal with complex key arguments
---
 geiser.scm | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/geiser.scm b/geiser.scm
index 031ae4c..a6841e1 100644
--- a/geiser.scm
+++ b/geiser.scm
@@ -112,16 +112,18 @@
     ("module" user)))
 
 (define (process-normal-arg-info arg-info)
-  (let* ((required '("required"))
-        (optional '("optional"))
-        (key '("key"))
-        (section :required))
+  (let ((required '("required"))
+       (optional '("optional"))
+       (key '("key"))
+       (section :required))
     (dolist (x arg-info)
            (if (memq x '(:optional :key :rest))
                (set! section x)
                (case section
                  ((:optional) (push! optional x))
-                 ((:key) (push! key x))
+                 ((:key) (push! key
+                                (let1 sym (if (pair? x) (car x) x)
+                                      (symbol-append ': sym))))
                  ((:rest) (push! required "..."))
                  (else (push! required x)))))
     (map (cut reverse <>)

Reply via email to