From: David Kastrup <dak@gnu.org>
Date: Mon, 24 Sep 2012 09:59:42 +0000 (+0200)
Subject: Issue 2856: Get along with use of grob-property instead of grob-property-path in... 
X-Git-Tag: release/2.17.6-1~46^2~3^2~10
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b5ec3ec5062c32cf5c57e69c8bab92f79e48305d;p=lilypond.git

Issue 2856: Get along with use of grob-property instead of grob-property-path in overrides

LilyPond uses a willy-nilly mixture of grob-property and
grob-property-path when generating overrides programmatically (the
parser only uses grob-property-path).  Several override-reinterpreting
commands and functionalities were not prepared to deal with this.
---

diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly
index e1dcd992e0..0fa79af3dd 100644
--- a/ly/music-functions-init.ly
+++ b/ly/music-functions-init.ly
@@ -1067,11 +1067,17 @@ a context modification duplicating their effect.")
 	       (cons* 'push
 		      (ly:music-property m 'symbol)
 		      (ly:music-property m 'grob-value)
-		      (ly:music-property m 'grob-property-path)))
+                      (cond
+                       ((ly:music-property m 'grob-property #f) => list)
+                       (else
+                        (ly:music-property m 'grob-property-path)))))
 	      ((RevertProperty)
 	       (cons* 'pop
 		      (ly:music-property m 'symbol)
-		      (ly:music-property m 'grob-property-path)))))
+                      (cond
+                       ((ly:music-property m 'grob-property #f) => list)
+                       (else
+                        (ly:music-property m 'grob-property-path)))))))
 	   (case (ly:music-property m 'name)
 	     ((ApplyContext)
 	      (ly:add-context-mod mods
diff --git a/scm/lily-library.scm b/scm/lily-library.scm
index ec1097a32b..854980012c 100644
--- a/scm/lily-library.scm
+++ b/scm/lily-library.scm
@@ -275,11 +275,17 @@ bookoutput function"
 		(cons* 'push
 		       symbol
 		       (ly:music-property m 'grob-value)
-		       (ly:music-property m 'grob-property-path)))
-	       ((RevertProperty)
+                       (cond
+                        ((ly:music-property m 'grob-property #f) => list)
+                        (else
+                         (ly:music-property m 'grob-property-path)))))
+               ((RevertProperty)
 		(cons* 'pop
 		       symbol
-		       (ly:music-property m 'grob-property-path))))))
+                       (cond
+                        ((ly:music-property m 'grob-property #f) => list)
+                        (else
+                         (ly:music-property m 'grob-property-path))))))))
 	  (case (ly:music-property m 'name)
 	    ((ApplyContext)
 	     (ly:add-context-mod mods
@@ -326,11 +332,17 @@ bookoutput function"
 	      (cons* 'push
 		     (ly:music-property m 'symbol)
 		     (ly:music-property m 'grob-value)
-		     (ly:music-property m 'grob-property-path)))
+                     (cond
+                      ((ly:music-property m 'grob-property #f) => list)
+                      (else
+                       (ly:music-property m 'grob-property-path)))))
 	     ((RevertProperty)
 	      (cons* 'pop
 		     (ly:music-property m 'symbol)
-		     (ly:music-property m 'grob-property-path)))))
+                     (cond
+                      ((ly:music-property m 'grob-property #f) => list)
+                      (else
+                       (ly:music-property m 'grob-property-path)))))))
 	  (case (ly:music-property m 'name)
 	    ((ApplyContext)
 	     (ly:add-context-mod mods