with open("task.2") as f:
s = f.read()
o = {}
n = {}
for line in s.split("\n"):
if len(line) > 0:
(on, oi, nn, ni) = line.split(",")
if len(oi) > 0:
if on == "QK_MACRO" or on == "QK_KB":
for p in range(32):
t = "0x%0.4X" % (int(oi, 0) + p)
o[f"{on}_{p}"] = t
else:
oi = "0x%0.4X" % int(oi, 0)
o[on] = oi
if len(ni) > 0:
if nn == "QK_MACRO" or nn == "QK_KB":
for p in range(32):
t = "0x%0.4X" % (int(ni, 0) + p)
n[f"{nn}_{p}"] = t
else:
ni = "0x%0.4X" % int(ni, 0)
n[nn] = ni
for (k, v) in o.items():
nv = n.get(k)
if nv is None:
print(f"# delete {k}")
else:
print(f"sed -i '' 's/{nv}/{v}/ig' src/keycodes/v5/code_to_name.rs src/keycodes/v5/name_to_code.rs")