Script Python untuk Memperbaiki Patch EDK2 dari ThunderBird
Kalo kamu sering download patch EDK2 dari mailing list pake ThunderBird, kadang bakal dapet masalah double line feed yang nyebelin banget. Daripada ribet benerin manual, bisa pake Python script ini:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('files', type=argparse.FileType('rb+'), nargs='+')
args = parser.parse_args()
for file in args.files:
buffer = bytearray(file.read())
# Hapus line kosong di awal
while (buffer[0] == 0x0d) or (buffer[0] == 0x0a):
del buffer[0]
# Gabung Subject:, CC:, dll yang kepotong
for i in range(buffer.find(b'\x0d\x0a---')):
if (buffer[i] == 0x3a) and (buffer[i+1] == 0x0d) and (buffer[i+2] == 0x0a):
del buffer[i+1]
buffer[i+1] = 0x20
# Hapus double CRLF di chunk
i = buffer.find(b'\x0d\x0a@@')
while i < len(buffer) - 3:
if (buffer[i] == 0x0d) and (buffer[i+1] == 0x0a) and (buffer[i+2] == 0x0d) and (buffer[i+3] == 0x0a):
del buffer[i]
del buffer[i]
i = i + 1
file.seek(0)
file.write(buffer)
file.truncate()
Script ini bakal otomatis hapus CRLF ganda, gabung header yang kepotong, dan bikin patch jadi rapi lagi. Tinggal jalanin aja di terminal.