diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-09-15 11:52:41 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-09-15 11:52:41 -0400 |
commit | 8b055201c01d3ac5816b687792ce2f179d1bf9ef (patch) | |
tree | 548b547e27a0d4781256e3343d2e1b46df34092d /tools/xor_compress.py | |
parent | cfa63ef5e073da0d3eb6964917665f7e948c0313 (diff) |
Implement xor_compress in C
Diffstat (limited to 'tools/xor_compress.py')
-rw-r--r-- | tools/xor_compress.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/tools/xor_compress.py b/tools/xor_compress.py index 6deb2aa..b3bf317 100644 --- a/tools/xor_compress.py +++ b/tools/xor_compress.py @@ -9,7 +9,7 @@ for filename in sys.argv[1:]: with open(filename, 'rb') as f: data.extend(f.read()) -n = len(data) +n = len(data) output = bytearray() v = 0x00 i = 0 @@ -20,14 +20,14 @@ while i < n: if data[i] == v: # Alternating (>= 0x80) - # Run stops at 0x81 bytes or when the values stop alternating - size = 1 - while i < n and size < 0x81 and data[i] == (v if size % 2 else byte): + # Run stops at 0x80 bytes or when the values stop alternating + size = 0 + while i < n and size < 0x80 and data[i] == (byte if size % 2 else v): size += 1 i += 1 - output.append(size + 0x7e) + output.append(size + 0x7f) output.append(v ^ byte) - if size % 2: + if not size % 2: v = byte else: |