]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/convertrules.py
Fix 1240.
[lilypond.git] / python / convertrules.py
index c245c3d353b2c27ad77e9f498d508db3a7d95921..3571d1a9b2115e4179b271c0544b412cb99ff4fb 100644 (file)
@@ -9,7 +9,7 @@ import lilylib
 _ = lilylib._
 
 
-NOT_SMART = _ ("Not smart enough to convert %s")
+NOT_SMART = "\n" + _ ("Not smart enough to convert %s")
 UPDATE_MANUALLY = _ ("Please refer to the manual for details, and update manually.")
 FROM_TO = _ ( "%s has been replaced by %s")
 
@@ -2655,7 +2655,8 @@ def conv (str):
     return str
 
 
-@rule ((2, 11, 15), "TextSpanner #'edge-height -> #'bound-details #'right/left #'text = ...")
+@rule ((2, 11, 15), "TextSpanner #'edge-height -> #'bound-details #'right/left #'text = ...\n\
+Remove 'forced-distance for fixed spacing between staves in a PianoStaff.")
 def conv (str):
     def sub_edge_height (m):
         s = ''
@@ -2679,6 +2680,11 @@ def conv (str):
 
 
     str = re.sub (r"(\\once)?\s*\\override\s*([a-zA-Z]+\s*[.]\s*)?TextSpanner\s*#'edge-height\s*=\s*#'\(\s*([0-9.-]+)\s+[.]\s+([0-9.-]+)\s*\)", sub_edge_height, str)
+    if re.search (r"#'forced-distance", str):
+        stderr_write (NOT_SMART % ("VerticalAlignment #'forced-distance.\n"))
+        stderr_write (_ ("Use the `alignment-offsets' sub-property of\n"))
+        stderr_write (_ ("NonMusicalPaperColumn #'line-break-system-details\n"))
+        stderr_write (_ ("to set fixed distances between staves.\n"))
     return str
 
 
@@ -2895,7 +2901,7 @@ longer in reversed order.\n"))
 ly:hairpin::after-line-breaking -> ly:spanner::kill-zero-spanned-time\n\
 Dash parameters for slurs and ties are now in dash-definition"))
 def conv(str):
-    if re.search(r'\\bar\s*"."', str):
+    if re.search(r'\\bar\s*"\."', str):
         stderr_write ("\n")
         stderr_write (NOT_SMART % _("\\bar \".\" now produces a thick barline.\n"))
         stderr_write (UPDATE_MANUALLY)
@@ -2905,15 +2911,20 @@ def conv(str):
         stderr_write ("\n")
         stderr_write (NOT_SMART % _("Dash parameters for slurs and ties are now in \'dash-details.\n"))
         stderr_write (UPDATE_MANUALLY)
-    str = re.sub ('(\\bBeam\\s+#\')(?=thickness\\b)', '\\1beam-', str)
     return str
 
 @rule ((2, 13, 4),
        _ ("Autobeaming rules have changed.  override-auto-beam-setting and\n\
-revert-auto-beam-setting have been eliminated.  \\overrideBeamSettings has been\n\
-added.  BeatGrouping has been eliminated.\n\
+revert-auto-beam-setting have been eliminated.\n\
+\\overrideBeamSettings has been added.\n\
+beatGrouping has been eliminated.\n\
 Different settings for vertical layout.\n\
-ly:system-start-text::print -> system-start-text::print"))
+ly:system-start-text::print -> system-start-text::print\n\
+Beam #'thickness -> Beam #'beam-thickness\n\
+ly:note-head::brew-ez-stencil -> note-head::brew-ez-stencil\n\
+ly:ambitus::print -> ambitus::print\n\
+Explicit dynamics context definition from `Piano centered dynamics'\n\
+template replaced by new `Dynamics' context."))
 def conv(str):
     if re.search("override-auto-beam-setting", str):
         stderr_write ("\n")
@@ -2936,7 +2947,135 @@ def conv(str):
         stderr_write(NOT_SMART % _("alignment-offsets has been changed to alignment-distances: \
 you must now specify the distances between staves rather than the offset of staves.\n"))
         stderr_write(UPDATE_MANUALLY)
-    str = re.sub ('ly:system-start-text::print', 'system-start-text::print', str)
+    str = re.sub ('ly:(system-start-text::print|note-head::brew-ez-stencil|ambitus::print)',
+                  '\\1', str)
+    str = re.sub ('(\\bBeam\\s+#\')(?=thickness\\b)', '\\1beam-', str)
+    str = re.sub (r'(\\context\s*\{{1}[^\}]+\\name\s+"*Dynamics"*[^\}]*\}{1})',
+                  '', str)
+    return str
+
+@rule ((2, 13, 10),
+       _ ("Remove obsolete engravers/translators: Note_swallow_translator,\n\
+Rest_swallow_translator, Skip_event_swallow_translator, Swallow_engraver,\n\
+Swallow_performer and String_number_engraver.\n\
+New vertical spacing variables."))
+def conv(str):
+    str = re.sub (r'\\(consists|remove)\s+"*(Swallow_(engraver|performer)|'
+                  '(Note|Rest|Skip_event)_swallow_translator|String_number_engraver)"*',
+                  '', str)
+
+    str = re.sub (r"page-top-space\s*=\s*#([0-9.]+)",
+                  r"top-system-spacing #'space = #\1",
+                  str)
+    str = re.sub (r"between-system-space\s*=\s*#([0-9.]+)",
+                  r"between-system-spacing #'space = #\1\nbetween-scores-system-spacing #'space = #\1",
+                  str)
+    str = re.sub (r"between-system-padding\s*=\s*#([0-9.]+)",
+                  r"between-system-spacing #'padding = #\1\nbetween-scores-system-spacing #'padding = #\1",
+                  str)
+    str = re.sub (r"(after|between|before)-title-space\s*=\s*#([0-9.]+)",
+                  r"\1-title-spacing #'space = #\2",
+                  str)
+
+    if re.search(r'minimum-Y-extent', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("vertical spacing has been changed; minimum-Y-extent is obsolete.\n"))
+        stderr_write(UPDATE_MANUALLY)
+
+    return str
+
+@rule ((2, 13, 16),
+       _ ("Unify fetaNumber and fetaDynamic encodings"))
+def conv(str):
+    return re.sub(r'\bfeta(Number|Dynamic)', 'fetaText', str)
+
+@rule ((2, 13, 18),
+       _ ("\\RemoveEmpty*StaffContext -> \\*Staff \\RemoveEmptyStaves"))
+def conv(str):
+    str = re.sub (r"\\RemoveEmpty(|Drum|Rhythmic|Tab)StaffContext",
+                  r"\\\1Staff \\RemoveEmptyStaves",
+                  str);
+    str = re.sub (r"\\AncientRemoveEmptyStaffContext",
+                  r"\\VaticanaStaff \\RemoveEmptyStaves",
+                  str);
+    return str
+
+@rule ((2, 13, 20),
+       _ ("\\cresc etc. are now postfix operators"))
+def conv (str):
+    str = re.sub (r'\\(cresc|dim|endcresc|enddim)\b', r'\\deprecated\1', str)
+    return str
+
+@rule ((2, 13, 29),
+       _ ("Eliminate beamSettings, beatLength, \\setBeatGrouping, \\overrideBeamSettings and \\revertBeamSettings.\n\
+\"accordion.accEtcbase\" -> \"accordion.etcbass\""))
+def conv(str):
+    def sub_acc (m):
+       d = {
+            'Dot': 'dot',
+            'Discant': 'discant',
+            'Bayanbase': 'bayanbass',
+            'Stdbase': 'stdbass',
+            'Freebase': 'freebass',
+            'OldEE': 'oldEE'
+            }
+       return '"accordion.%s"' %  d[m.group (1)]
+
+    str = re.sub (r'"accordion\.acc([a-zA-Z]+)"',
+                 sub_acc, str)
+    if re.search(r'overrideBeamSettings', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("\\overrideBeamSettings.  Use \\set beamExceptions or \\overrideTimeSignatureSettings.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    if re.search(r'revertBeamSettings', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("\\revertBeamSettings. Use \\set beamExceptions or \\revertTimeSignatureSettings.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    if re.search(r'beamSettings', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("beamSettings. Use baseMoment, beatStructure, and beamExceptions.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    if re.search(r'beatLength', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("beatLength. Use baseMoment and beatStructure.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    if re.search(r'setBeatGrouping', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("setbeatGrouping. Use baseMoment and beatStructure.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    return str
+
+@rule ((2, 13, 31),
+    _ ("Woodwind diagrams: Move size, thickness, and graphic from argument list to properties.\n\
+Deprecate negative dash-period for hidden lines: use #'style = #'none instead."))
+def conv(str):
+    if re.search(r'woodwind-diagram', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("woodwind-diagrams.  Move size, thickness, and graphic to properties.  Argument should be just the key list.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    str = re.sub (r"dash-period\s+=\s*#\s*-[0-9.]+",
+                  r"style = #'none",
+                  str);
+    return str
+
+@rule ((2, 13, 36),
+    _ ("Rename vertical spacing variables.\n\
+Add fretboard-table argument to savePredefinedFretboard."))
+def conv(str):
+    str = re.sub ('after-title-spacing',           'markup-system-spacing', str)
+    str = re.sub ('before-title-spacing',          'score-markup-spacing',  str)
+    str = re.sub ('between-scores-system-spacing', 'score-system-spacing',  str)
+
+    # also converts page-breaking-between-system-spacing:
+    str = re.sub ('between-system-spacing',        'system-system-spacing', str)
+
+    str = re.sub ('between-title-spacing',         'markup-markup-spacing', str)
+    str = re.sub ('bottom-system-spacing',         'last-bottom-spacing',   str)
+    str = re.sub ('top-title-spacing',             'top-markup-spacing',    str)
+
+    str = re.sub (r"storePredefinedDiagram",
+                  r"storePredefinedDiagram #default-fret-table",
+                  str);
     return str
 
 # Guidelines to write rules (please keep this at the end of this file)