Hi Juha,
On Mon, Oct 3, 2011 at 6:57 AM, Juha Erkkila <[email protected]> wrote:
> Howdy,
>
> I had some lilypond code that worked in 2.12 versions, but appears
> broken in 2.14. I had used a construction in which a music function
> calls itself. Here's an example:
>
> ----------------------------------------------------------------------
> tags = #(define-music-function (parser location tags music)
> (list? ly:music?)
> (cond ((null? tags) music)
> (else (let ((firsttag (car tags))
> (othertags (cdr tags)))
> #{ \tags $othertags \tag $firsttag $music #}))))
>
> foo = \tag #'a \tag #'b { c4 d e f }
> bar = \tags #'(a b) { c4 d e f }
>
> \score {
> {
> \keepWithTag #'a \foo
> \keepWithTag #'b \foo
>
> \keepWithTag #'a \bar
> \keepWithTag #'b \bar
> }
> }
> ----------------------------------------------------------------------
>
>
> Perhaps some definition in straight scheme might also work here?
> Any ideas?
>
>
I removed the $ from firsttag and othertags, and it seems to work in 2.14.2.
tags = #(define-music-function (parser location tags music)
(list? ly:music?)
(cond ((null? tags) music)
(else (let ((firsttag (car tags))
(othertags (cdr tags)))
#{ \tags othertags \tag firsttag $music #}))))
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user