X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdisplay-lily.scm;h=788f89e3596f35f48a81279e4a7e47aa37194919;hb=ffd278ab691a1ada9b0ff0f8fd7548ab791f1647;hp=55c9f9f135f784428398efad1317ce36131da623;hpb=823403a0718dfdf09124089ce1b32763ca6f4cf1;p=lilypond.git diff --git a/scm/display-lily.scm b/scm/display-lily.scm index 55c9f9f135..788f89e359 100644 --- a/scm/display-lily.scm +++ b/scm/display-lily.scm @@ -82,13 +82,21 @@ display method will be called." (define* (tweaks->lily-string expr #:optional (post-event? #f)) (format #f "~{~a ~}" (map (lambda (tweak) - (format #f "~a\\tweak ~a #~a" - (if post-event? "-" "") - (if (pair? (car tweak)) - (format #f "~a.~a" - (caar tweak) (cdar tweak)) - (format #f "~a" (car tweak))) - (scheme-expr->lily-string (cdr tweak)))) + (let ((addr (car tweak)) + (val (cdr tweak))) + (format #f "~a\\tweak ~a #~a" + (if post-event? "-" "") + (cond + ((symbol? addr) + (format #f "~a" addr)) + ((symbol? (cdr addr)) + (format #f "~a.~a" (car addr) (cdr addr))) + (else + (format #f "~{~a~^.~}" + (if (symbol? (car addr)) + addr + (cdr addr))))) + (scheme-expr->lily-string val)))) (ly:music-property expr 'tweaks)))) (define-public (music->lily-string expr parser)