]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3075: Fix \displayLilyMusic with \tweak of subproperties
authorDavid Kastrup <dak@gnu.org>
Tue, 1 Jan 2013 19:46:40 +0000 (20:46 +0100)
committerDavid Kastrup <dak@gnu.org>
Mon, 7 Jan 2013 03:05:33 +0000 (04:05 +0100)
scm/display-lily.scm

index 55c9f9f135f784428398efad1317ce36131da623..788f89e3596f35f48a81279e4a7e47aa37194919 100644 (file)
@@ -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)