X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fgregorian.ly;h=b268cb8e4851ec2aca884b522d935e638991bbe9;hb=0a0274a3bf5792dfb7ce3719f5dfaef36059affe;hp=af073aa42d0f3265cb1daa4dcf6e9e55414bb640;hpb=1d509b27723ea1c359b51c0f2fe623a32867d6f9;p=lilypond.git diff --git a/ly/gregorian.ly b/ly/gregorian.ly index af073aa42d..b268cb8e48 100644 --- a/ly/gregorian.ly +++ b/ly/gregorian.ly @@ -3,7 +3,7 @@ $Id$ %} -\version "2.15.10" +\version "2.15.30" % % Declare memorable shortcuts for special unicode characters @@ -22,28 +22,18 @@ iij = \lyricmode { iij } % Given some music that represents lyrics, add a prefix to the first % lyric event. % -% TODO: Robustify this function. For example, this function works -% correctly for "\versus { some lyrics }", but it barfs with a wrong type -% argument error for e.g. "\versus some lyrics". -% #(define (add-prefix-to-lyrics prefix music) - (make-music - 'SequentialMusic - 'elements (append - (cons - (let* ((elems (car (ly:music-property music 'elements))) - (props (ly:music-mutable-properties elems)) - (events (filter (lambda (x) - (equal? (car x) 'elements)) - props)) - (first-evt (cadar events)) - (first-syllable (ly:prob-property first-evt 'text)) - (first-duration (ly:prob-property first-evt 'duration))) - (make-music - 'LyricEvent - 'duration first-duration - 'text (string-append prefix first-syllable))) - (cdr (ly:music-property music 'elements)))))) + (let ((found? #f)) + (map-some-music + (lambda (m) + (if found? m + (and (music-is-of-type? m 'lyric-event) + (begin + (set! (ly:music-property m 'text) + (string-append prefix (ly:music-property m 'text))) + (set! found? #t) + m)))) + music))) % Add unicode 2123 (versicle) as prefix to lyrics. versus =