X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-markup.scm;h=35347ae15083c0fac3c47c416c05857f88d4b37b;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=318a26b9e60718108a78cdb4ab4f4ee6106602e8;hpb=c39d188d28fdc84cef8cbaea7b8d6e2fb718c30f;p=lilypond.git diff --git a/scm/document-markup.scm b/scm/document-markup.scm index 318a26b9e6..35347ae150 100644 --- a/scm/document-markup.scm +++ b/scm/document-markup.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2015 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -42,19 +42,20 @@ prop-strings)) (define (doc-markup-function func) - (let* ((doc-str (procedure-documentation func)) + (let* ((full-doc (procedure-documentation func)) + (match-args (and full-doc (string-match "^\\([^)]*\\)\n" full-doc))) + (arg-names (if match-args + (with-input-from-string (match:string match-args) read) + (circular-list "arg"))) + (doc-str (if match-args (match:suffix match-args) full-doc)) (f-name (symbol->string (procedure-name func))) (c-name (regexp-substitute/global #f "-markup(-list)?$" f-name 'pre "" 'post)) (sig (object-property func 'markup-signature)) - (arg-names (let ((arg-list (cadr (procedure-source func)))) - (if (list? arg-list) - (map symbol->string (cddr arg-list)) - (make-list (length sig) "arg")))) (sig-type-names (map type-name sig)) (signature-str (string-join - (map (lambda (x y) (string-append - "@var{" x "} (" y ")" )) + (map (lambda (x y) + (format #f "@var{~a} (~a)" x y)) arg-names sig-type-names) " " )))