]> git.donarmstrong.com Git - lilypond.git/commitdiff
convert-ly: Don't update \version when no rule is applied.
authorJulien Rioux <jrioux@physics.utoronto.ca>
Fri, 5 Oct 2012 22:09:48 +0000 (18:09 -0400)
committerJulien Rioux <jrioux@physics.utoronto.ca>
Fri, 12 Oct 2012 19:20:43 +0000 (15:20 -0400)
Note that this is not the same as what the existing -d
--diff-version-update command does. The behavior of convert-ly is
unchanged when rules are being applied, and -d is still used in the
same way. The change concerns itself only with the case that no rule
applies, because the version of the file is already up-to-date. In
this case, it used to be that the version in the file would be set to
version of the last rule, which would sometimes mean that the version
of the file upon output is lower than the version at input. This is
what we avoid in this patch.

This fixes issue 2670.

scripts/convert-ly.py

index 8795f343aed0b599f757ec3e8420b43be1f85515..e14a137f97a71e2cad18e2aecf1e8aa8bff3ab8a 100644 (file)
@@ -185,11 +185,9 @@ string."""
 
     ly.progress (_ ("Applying conversion: "), newline = False)
 
-    last_conversion = ()
+    last_conversion = None
     errors = 0
     try:
-        if not conv_list:
-            last_conversion = to_version
         for x in conv_list:
             if x != conv_list[-1]:
                 ly.progress (tup_to_str (x[0]), newline = False)
@@ -260,10 +258,10 @@ def do_one_file (infile_name):
 
     (last, result, errors) = do_conversion (input, from_version, to_version)
 
+    if global_options.force_current_version and \
+            (last is None or last == to_version):
+        last = str_to_tuple (program_version)
     if last:
-        if global_options.force_current_version and last == to_version:
-            last = str_to_tuple (program_version)
-
         if global_options.diff_version_update:
             if result == input:
                 # check the y in x.y.z  (minor version number)
@@ -283,21 +281,20 @@ def do_one_file (infile_name):
         elif not global_options.skip_version_add:
             result = newversion + '\n' + result
 
-        ly.progress ('\n')
-    
-        if global_options.edit:
-            try:
-                os.remove(infile_name + '~')
-            except:
-                pass
-            os.rename (infile_name, infile_name + '~')
-            outfile = open (infile_name, 'w')
-        else:
-            outfile = sys.stdout
-
+    ly.progress ('\n')
 
-        outfile.write (result)
+    if global_options.edit:
+        try:
+            os.remove (infile_name + '~')
+        except:
+            pass
+        os.rename (infile_name, infile_name + '~')
+        outfile = open (infile_name, 'w')
+    else:
+        outfile = sys.stdout
 
+    outfile.write (result)
+    
     sys.stderr.flush ()
 
     return errors