From 0c3a0ea770a280a1d4093b0da833634cea3f7a02 Mon Sep 17 00:00:00 2001 From: Neil Puttock Date: Sat, 22 Nov 2008 17:03:20 +0000 Subject: [PATCH] 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" --- input/regression/property-nested-override.ly | 20 ++++++++++++++++++++ scm/ly-syntax-constructors.scm | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 input/regression/property-nested-override.ly 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)) -- 2.11.4.GIT