From a27aa206869ce9f5520de3a825b72c71070f5077 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sat, 24 Nov 2012 18:57:00 +0100 Subject: [PATCH] Issue 2976: Allow ly:grob-set-nested-property! to set a single (unnested) property This makes things more orthogonal. --- lily/grob-scheme.cc | 9 ++++++--- ly/music-functions-init.ly | 6 ++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index 1fe50f00f1..e5976a569b 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -66,7 +66,7 @@ LY_DEFINE (ly_grob_set_nested_property_x, "ly:grob-set-nested-property!", LY_ASSERT_SMOB (Grob, grob, 1); - bool type_ok = ly_cheap_is_list (symlist); + bool type_ok = scm_is_pair (symlist); if (type_ok) for (SCM s = symlist; scm_is_pair (s) && type_ok; s = scm_cdr (s)) @@ -74,7 +74,10 @@ LY_DEFINE (ly_grob_set_nested_property_x, "ly:grob-set-nested-property!", SCM_ASSERT_TYPE (type_ok, symlist, SCM_ARG2, __FUNCTION__, "list of symbols"); - set_nested_property (sc, symlist, val); + if (scm_is_pair (scm_cdr (symlist))) + set_nested_property (sc, symlist, val); + else + ly_grob_set_property_x (grob, scm_car (symlist), val); return SCM_UNSPECIFIED; } @@ -477,4 +480,4 @@ LY_DEFINE (ly_grob_get_vertical_axis_group_index, "ly:grob-get-vertical-axis-gro LY_ASSERT_SMOB (Grob, grob, 1); return scm_from_int (Grob::get_vertical_axis_group_index (gr)); -} \ No newline at end of file +} diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 3b25cca544..a6a91174ff 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -736,10 +736,8 @@ with subproperties given as well.") (if (equal? (cdr (assoc 'name (ly:grob-property grob 'meta))) (second p)) - (if (null? (cdddr p)) - (ly:grob-set-property! grob (caddr p) value) - (ly:grob-set-nested-property! - grob (cddr p) value))))) + (ly:grob-set-nested-property! + grob (cddr p) value)))) (make-music 'Music)))) -- 2.39.5