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 <>)