X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-identifiers.scm;h=39d428408817911c5b403c77537550b7e270594d;hb=3af0951f9a11677240efa6228683dd4fcea13eaf;hp=22088605d70f7fbaa1df1d9c27ccc4fb21d51b58;hpb=652ed35a2013489d0a14fede6307cd2595abb2c4;p=lilypond.git diff --git a/scm/document-identifiers.scm b/scm/document-identifiers.scm index 22088605d7..39d4284088 100644 --- a/scm/document-identifiers.scm +++ b/scm/document-identifiers.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 2006--2012 Han-Wen Nienhuys +;;;; Copyright (C) 2006--2015 Han-Wen Nienhuys ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -22,10 +22,12 @@ ((name-sym (car music-func-pair)) (music-func (cdr music-func-pair)) (func (ly:music-function-extract music-func)) - (arg-names - (map symbol->string - (cddr (cadr (procedure-source func))))) - (doc (procedure-documentation func)) + (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 (if match-args (match:suffix match-args) full-doc)) (sign (ly:music-function-signature music-func)) (type-names (map (lambda (pred) (if (pair? pred) @@ -44,7 +46,7 @@ name-sym (car type-names) (if (string-null? signature-str) "" " - ") signature-str name-sym - (if doc + (if (and doc (not (string-null? doc))) doc (begin (ly:warning "music function `~a' not documented." name-sym)