diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-10-31 02:34:30 +0100 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-10-31 02:34:30 +0100 | 
| commit | 17ebbec2d56dee484d4ccc2ed893696c5e9accd6 (patch) | |
| tree | ef6f84476bf1d91d479d548c6b53dc3446537f5c /geiser | |
| parent | 5e04bdd30219016c13963cda5cc78286db84b1b1 (diff) | |
| download | geiser-guile-17ebbec2d56dee484d4ccc2ed893696c5e9accd6.tar.gz geiser-guile-17ebbec2d56dee484d4ccc2ed893696c5e9accd6.tar.bz2 | |
Autodoc: fix for improper macro arglists scanning
Diffstat (limited to 'geiser')
| -rw-r--r-- | geiser/doc.scm | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/geiser/doc.scm b/geiser/doc.scm index 4722238..f5471b5 100644 --- a/geiser/doc.scm +++ b/geiser/doc.scm @@ -87,12 +87,14 @@            (else #f))))  (define (macro-args tf) +  (define* (collect args #:optional (req '())) +    (cond ((null? args) (arglist->args `(,(reverse req) #f #f r #f))) +          ((symbol? args) (arglist->args `(,(reverse req) #f #f r ,args))) +          ((and (pair? args) (symbol? (car args))) +           (collect (cdr args) (cons (car args) req))) +          (else #f)))    (let* ((pats (procedure-property tf 'patterns)) -         (args (and pats (filter identity -                                 (map (lambda (p) -                                        (and (every symbol? p) -                                             (list (cons 'required p)))) -                                      pats))))) +         (args (and pats (filter-map collect pats))))      (or (and args (not (null? args)) args) default-macro-args)))  (define (arity->args art) | 
