From: Neil Puttock Date: Sat, 22 Nov 2008 17:03:20 +0000 (+0000) Subject: Allow for nested properties in list form when using \override. X-Git-Tag: release/2.11.65-1~18 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d829124c73ec0b92841ab32e64c711ede626e0c8;p=lilypond.git Allow for nested properties in list form when using \override. This patch provides a convenient way of overriding nested properties, matching the syntax available when using \revert, e.g., \override DynamicTextSpanner #'(bound-details left text) = #"foo" --- diff --git a/input/regression/property-nested-override.ly b/input/regression/property-nested-override.ly new file mode 100644 index 0000000000..710822b239 --- /dev/null +++ b/input/regression/property-nested-override.ly @@ -0,0 +1,20 @@ +\version "2.11.64" +\header { + texidoc = "Nested properties may be overridden using Scheme list +syntax. This test performs two property overrides: the first +measure uses standard @code{\\override} syntax; the second uses a +list. +" +} + +\relative c' { + \once \override TextSpanner #'bound-details #'left #'text = #"foo" + c4\startTextSpan + \once \override Tie #'details #'note-head-gap = #3 + c4 ~ c c\stopTextSpan + + \once \override TextSpanner #'(bound-details left text) = #"foo" + c4\startTextSpan + \once \override Tie #'(details note-head-gap) = #3 + c4 ~ c c\stopTextSpan +} diff --git a/scm/ly-syntax-constructors.scm b/scm/ly-syntax-constructors.scm index 584dd6b3e1..ee79823361 100644 --- a/scm/ly-syntax-constructors.scm +++ b/scm/ly-syntax-constructors.scm @@ -143,7 +143,9 @@ ((PropertySet) (list 'value (car args))) ((PropertyUnset) '()) ((OverrideProperty) (list 'grob-value (car args) - 'grob-property-path (cdr args) + 'grob-property-path (if (list? (cadr args)) + (cadr args) + (cdr args)) 'pop-first #t)) ((RevertProperty) (if (list? (car args))