]> git.donarmstrong.com Git - lilypond.git/commitdiff
Add regtest for music argument semantics of make-relative macro
authorDavid Kastrup <dak@gnu.org>
Fri, 22 Nov 2013 12:36:56 +0000 (13:36 +0100)
committerDavid Kastrup <dak@gnu.org>
Sun, 8 Dec 2013 08:33:52 +0000 (09:33 +0100)
input/regression/make-relative-music.ly [new file with mode: 0644]

diff --git a/input/regression/make-relative-music.ly b/input/regression/make-relative-music.ly
new file mode 100644 (file)
index 0000000..25941d2
--- /dev/null
@@ -0,0 +1,32 @@
+\version "2.17.97"
+
+\header {
+  texidoc = "@code{make-relative} can make relativization on music
+function calls behave as one would expect from looking at the
+function's arguments rather than at the actually resulting
+expressions.  This regtest defines an example function
+@code{\\withOctave} which works equally well inside and outside of
+@code{\\relative}." 
+}
+
+withOctave =
+#(define-music-function (parser location music)
+  (ly:music?)
+  (make-relative
+   (music) music
+   #{ \context Bottom << $music \transpose c c' $music >> #}))
+
+mus = {
+  \partial 4. c'8 e g |
+  c2 e,4 g |
+  c,8 c' b a <g d'> <f c'> <e b'> <d a'> |
+  <c g'>1 | \bar "|."
+}
+
+<<
+  \relative \new Staff { <>^"original" \mus }
+  \relative \new Staff { <>^\markup \typewriter "\\relative \\withOctave"
+                        \withOctave \mus }
+  \new Staff { <>^\markup \typewriter "\\withOctave \\relative"
+              \withOctave \relative \mus }
+>>