]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/convertrules.py
Issue 4131/2: convert-ly rule "partcombine*Once -> \once \partcombine*"
[lilypond.git] / python / convertrules.py
index 77d83ff52a5420b944858b86e1ada582b0227d0e..f86b90ba4eb8fded7bcd00c5c9972d232cda100b 100644 (file)
@@ -2818,7 +2818,7 @@ def conv(str):
     if re.search(r'\\oldaddlyrics', str):
         stderr_write (NOT_SMART % "oldaddlyrics")
         stderr_write (_ ("oldaddlyrics is no longer supported. \n \
-        Use addlyrics or lyrsicsto instead.\n"))
+        Use addlyrics or lyricsto instead.\n"))
         stderr_write (UPDATE_MANUALLY)
         raise FatalConversionError ()
     return str
@@ -3746,9 +3746,17 @@ def conv(str):
                   + after_id, r'\1-\2', str)
     return str
 
-@rule ((2, 19, 22), """(define-xxx-function (parser location ...) -> (define-xxx-function (...)
+@rule ((2, 19, 22), """whiteout -> whiteout-box
+(define-xxx-function (parser location ...) -> (define-xxx-function (...)
 (xxx ... parser ...) -> (xxx ... ...)""")
 def conv(str):
+    # whiteout -> whiteout-box
+    str = re.sub (r"\\whiteout(?![a-z_-])", r"\\whiteout-box", str)
+    str = re.sub (r"\b\.whiteout(?![a-z_-])\b", r".whiteout-box", str)
+    str = re.sub (r"#'whiteout(?![a-z_-])\b", r"#'whiteout-box", str)
+    str = re.sub (r"\bstencil-whiteout\b", r"stencil-whiteout-box", str)
+    
+    # (define-xxx-function (parser location ...) -> (define-xxx-function (...)
     def subst(m):
         def subsub(m):
             str = (m.group (1)
@@ -3762,6 +3770,7 @@ def conv(str):
     str = re.sub (r'\(define-(?:music|event|scheme|void)-function(?=\s|["(])'
                   + paren_matcher (20) + r'\)', subst, str)
 
+    # (xxx ... parser ...) -> (xxx ... ...)
     def repl (m):
         return m.group (1) + inner (m.group (2))
     def inner (str):
@@ -3817,6 +3826,35 @@ def conv(str):
         return str
     return inner (str)
 
+@rule ((2, 19, 24), r"""music-has-type -> music-is-of-type?
+\applyOutput #'Context -> \applyOutput Context""")
+def conv (str):
+    str = re.sub (r'(?<=\s|["\\()])' + "music-has-type" + r'(?=\s|["\\()])',
+                  "music-is-of-type?", str)
+    str = re.sub (r"(\\applyOutput\s+)#'([a-zA-Z])", r"\1\2", str)
+    return str
+
+@rule ((2, 19, 28), r"c:5.x, c:5^x, c:sus -> c:3.5.x, c:3.5^x, c:5")
+def conv (str):
+    str = re.sub (r":5([.^][1-9])", r":3.5\1", str)
+    # row back for self-defeating forms
+    str = re.sub (r":3\.5((?:\.[0-9]+)*\^(?:[0-9]+\.)*)3\.", r":5\1", str)
+    str = re.sub (r":3\.5((?:\.[0-9]+)*\^?:[0-9]+(?:\.[0-9]+)*)\.3(?![.0-9])", r":5\1", str)
+    str = re.sub (r":3\.5((?:\.[0-9]+)*)\^3(?=\s|\})", r":5\1", str)
+    str = re.sub (r":sus(?=\s|\})", ":5", str)
+    str = re.sub (r":1\.5(?=\s|[.^}])", r":5", str)
+    return str
+
+@rule ((2, 19, 29), r"partcombine*Once -> \once \partcombine*")
+def conv(str):
+    str = re.sub (r"(\\partcombine(?:Apart|Chords|Unisono|SoloII?|Automatic))Once\b",
+                  r"\\once \1", str)
+    str = re.sub (r"(\\partcombineForce" + matcharg + r")\s*##f(\s)",
+                  r"\1\2", str)
+    str = re.sub (r"(\\partcombineForce" + matcharg + r")\s*##t(\s)",
+                  r"\\once \1\2", str)
+    return str
+
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,