mirror of
https://github.com/python/cpython
synced 2024-09-06 02:48:33 +00:00
bpo-45231: update_file.py preserves end of line (GH-28411)
The update_file.py tool now preserves the end of line of the updated file. Fix the "make regen-frozen" command: it no longer changes the end of line of PCbuild/ files on Unix. Git changes the end of line depending on the platform.
This commit is contained in:
parent
778b07565e
commit
c5a677da9e
|
@ -28,7 +28,19 @@ def updating_file_with_tmpfile(filename, tmpfile=None):
|
|||
elif os.path.isdir(tmpfile):
|
||||
tmpfile = os.path.join(tmpfile, filename + '.tmp')
|
||||
|
||||
with open(tmpfile, 'w') as outfile:
|
||||
with open(filename, 'rb') as infile:
|
||||
line = infile.readline()
|
||||
|
||||
if line.endswith(b'\r\n'):
|
||||
newline = "\r\n"
|
||||
elif line.endswith(b'\r'):
|
||||
newline = "\r"
|
||||
elif line.endswith(b'\n'):
|
||||
newline = "\n"
|
||||
else:
|
||||
raise ValueError(f"unknown end of line: {filename}: {line!a}")
|
||||
|
||||
with open(tmpfile, 'w', newline=newline) as outfile:
|
||||
with open(filename) as infile:
|
||||
yield infile, outfile
|
||||
update_file_with_tmpfile(filename, tmpfile)
|
||||
|
|
Loading…
Reference in a new issue