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.
ly.progress (_ ("Applying conversion: "), newline = False)
ly.progress (_ ("Applying conversion: "), newline = False)
- 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)
for x in conv_list:
if x != conv_list[-1]:
ly.progress (tup_to_str (x[0]), newline = False)
(last, result, errors) = do_conversion (input, from_version, to_version)
(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 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)
if global_options.diff_version_update:
if result == input:
# check the y in x.y.z (minor version number)
elif not global_options.skip_version_add:
result = newversion + '\n' + result
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
-
+ 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
sys.stderr.flush ()
return errors