]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 4671: convert-ly rule for ly:music-function-extract
authorDavid Kastrup <dak@gnu.org>
Wed, 25 Nov 2015 12:19:26 +0000 (13:19 +0100)
committerDavid Kastrup <dak@gnu.org>
Mon, 7 Dec 2015 10:39:01 +0000 (11:39 +0100)
The extracted music function no longer takes parser/location arguments since
version 2.19.22.  This convert-ly rule caters with the simplest use of
ly:music-function-extract, calling one music function from inside another.

python/convertrules.py

index 444d04d46162debd75d34b922e012849b1b1d31a..3c9caad397a8e72d65b80279172b71fcc8b691ee 100644 (file)
@@ -3824,7 +3824,16 @@ def conv(str):
                       r'(?=\s|[()]))(' + paren_matcher (20) + ")"
                       r"(?:\s+parser(?=\s|[()])|\s*\(\*parser\*\))", repl, str)
         return str
-    return inner (str)
+    str = inner (str)
+    # This is the simplest case, resulting from one music function
+    # trying to call another one via Scheme.  The caller is supposed
+    # to have its uses of parser/location converted to
+    # (*parser*)/(*location*) already.  Other uses of
+    # ly:music-function-extract are harder to convert but unlikely.
+    str = re.sub (r'(\(\s*\(ly:music-function-extract\s+' + wordsyntax +
+                  r'\s*\)\s+)\(\*parser\*\)\s*\(\*location\*\)', r'\1',
+                  str)
+    return str
 
 @rule ((2, 19, 24), r"""music-has-type -> music-is-of-type?
 \applyOutput #'Context -> \applyOutput Context""")