diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-03-03 00:02:36 +0100 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-03-03 00:02:36 +0100 | 
| commit | 0d624953c2a5e3c999b9b36e1f777d2aa4548674 (patch) | |
| tree | b42c7bd9ea44d663c79dd96d91d4d234c35fa425 /geiser/doc.scm | |
| parent | 7fcb4ea221b8b2bfbc045335733057fe9ca9e52f (diff) | |
| download | geiser-guile-0d624953c2a5e3c999b9b36e1f777d2aa4548674.tar.gz geiser-guile-0d624953c2a5e3c999b9b36e1f777d2aa4548674.tar.bz2 | |
Fix autodoc support for multiline arities in documentation.
Diffstat (limited to 'geiser/doc.scm')
| -rw-r--r-- | geiser/doc.scm | 21 | 
1 files changed, 13 insertions, 8 deletions
| diff --git a/geiser/doc.scm b/geiser/doc.scm index f446fde..175fe19 100644 --- a/geiser/doc.scm +++ b/geiser/doc.scm @@ -143,9 +143,10 @@  (define (doc->args doc)    (define proc-rx "-- Scheme Procedure: ([^[\n]+)\n") -  (define proc-rx2 "-- Scheme Procedure: ([^[\n]+\\[[^\n]*(\n[\n]+]+)?)") +  (define proc-rx2 "-- Scheme Procedure: ([^[\n]+\\[[^\n]*(\n[^\n]+\\]+)?)")    (and doc -       (let ((match (or (string-match proc-rx doc) (string-match proc-rx2 doc)))) +       (let ((match (or (string-match proc-rx doc) +                        (string-match proc-rx2 doc))))           (and match (parse-signature-string (match:substring match 1))))))  (define (parse-signature-string str) @@ -155,11 +156,12 @@      (if (< (length tokens) 2)          '()          (let loop ((tokens (cdr tokens)) (req '()) (opt '()) (rest #f)) -          (cond ((null? tokens) `((required ,@(map string->symbol (reverse! req))) -                                  (optional ,@(map string->symbol (reverse! opt))) -                                  ,@(if rest -                                        (list (cons 'rest (string->symbol rest))) -                                        '()))) +          (cond ((null? tokens) +                 `((required ,@(map string->symbol (reverse! req))) +                   (optional ,@(map string->symbol (reverse! opt))) +                   ,@(if rest +                         (list (cons 'rest (string->symbol rest))) +                         '())))                  ((string=? "." (car tokens))                   (if (not (null? (cdr tokens)))                       (loop (cddr tokens) req opt (cadr tokens)) @@ -167,7 +169,10 @@                  ((or (string-match opt-arg-rx (car tokens))                       (string-match opt-arg-rx2 (car tokens)))                   => (lambda (m) -                      (loop (cdr tokens) req (cons (match:substring m 1) opt) rest))) +                      (loop (cdr tokens) +                            req +                            (cons (match:substring m 1) opt) +                            rest)))                  (else (loop (cdr tokens) (cons (car tokens) req) opt rest)))))))  (define (generic-args gen) | 
