Add diffing utility for minor patches

This commit is contained in:
Flawed
2023-01-17 09:42:34 -08:00
parent dddec0d4d4
commit 8e538e083e
3 changed files with 230 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
import sys
import time
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
def create_r2_byte_pattern(sig):
tokens = sig.split()
r2_tokens = []
for token in tokens:
if token == "?":
r2_tokens.append("..")
else:
r2_tokens.append(token)
return "".join(r2_tokens)
def sync_r2_output(r2):
"""
For some fucking reason r2pipe output gets desynced from the start,
making the result of every command what the previous command should
have returned.
Read stuff from the process pipe until it stops being stupid.
"""
for i in range(10):
p = r2.process.stdout.read(1)
if len(p) > 0:
break
time.sleep(1)
output = r2.cmd(f"?vi 123").strip()
if output != "123":
raise Exception("R2 state never got synced")