fixing ffi doc extraction for cond-expanded procedures

This commit is contained in:
Alex Shinn 2021-05-10 18:40:33 +09:00
parent 64633d577c
commit 7b2fbb0bf2

View file

@ -723,6 +723,8 @@ h4 { color: #222288; border-top: 1px solid #4588ba; }
args))))) args)))))
(('define-c-const type (or (name _) name)) (('define-c-const type (or (name _) name))
(list (list 'const: type name))) (list (list 'const: type name)))
(('cond-expand (test . clauses) . rest)
(append-map get-ffi-signatures clauses))
(((or 'define-c-struct 'define-c-class 'define-c-type) name . rest) (((or 'define-c-struct 'define-c-class 'define-c-type) name . rest)
(let lp ((ls rest) (res '())) (let lp ((ls rest) (res '()))
(cond (cond
@ -809,9 +811,10 @@ h4 { color: #222288; border-top: 1px solid #4588ba; }
(write-to-string sig))) (write-to-string sig)))
(define (insert-signature orig-ls name sig) (define (insert-signature orig-ls name sig)
(let ((sig (if (pair? sig) sig (and name (list name)))))
(cond (cond
((not (pair? sig)) ((not (pair? sig))
orig-ls) '())
(else (else
(let ((name (let ((name
(cond (cond
@ -840,7 +843,7 @@ h4 { color: #222288; border-top: 1px solid #4588ba; }
(intersperse (map write-signature sig) '(br))))))) (intersperse (map write-signature sig) '(br)))))))
,@ls)) ,@ls))
(else (else
(lp (cdr ls) (cons (car ls) rev-pre))))))))) (lp (cdr ls) (cons (car ls) rev-pre))))))))))
;;> Extract inline Scribble documentation (with the ;;> prefix) from ;;> Extract inline Scribble documentation (with the ;;> prefix) from
;;> the source file \var{file}, associating any signatures from the ;;> the source file \var{file}, associating any signatures from the