blob: e9454dca7458cae715b34090b38ac130ef6e7bea [file] [log] [blame] [edit]
#!/usr/bin/python3 -B
# © 2020 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
# Takes one filename command-line argument and changes CR LF and CR
# line endings to LF.
import sys
CR = 0xd
LF = 0xa
def main():
filename = sys.argv[1]
with open(filename, "rb") as f: data = f.read()
buffer = bytearray(data)
changed = False
i = 0
while i < len(buffer):
j = i + 1
if buffer[i] == CR:
if j < len(buffer) and buffer[j] == LF:
# Delete CR from CR LF.
del buffer[i]
else:
# Replace CR with LF.
buffer[i] = LF
changed = True
i = j
if changed:
print("eol2lf:", filename)
with open(filename, "wb") as f: f.write(buffer)
if __name__ == "__main__":
main()