From 2330772fe6364fc4a378e8ca00407aafbdabfba7 Mon Sep 17 00:00:00 2001 From: Simon Hancock Date: Thu, 30 May 2024 19:37:16 +0100 Subject: [PATCH] DFReader: Fix some missing bitmask info in dump verbose --- DFReader.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/DFReader.py b/DFReader.py index a8c234b7a..8c3f0c678 100644 --- a/DFReader.py +++ b/DFReader.py @@ -327,30 +327,26 @@ def dump_verbose_bitmask(self, f, c, val, field_metadata): if bit_offset > highest: highest = bit_offset - for i in range(bit_offset): + for i in range(highest+1): bit_value = 1 << i + if val & bit_value: + bang = " " + else: + bang = "!" done = False for bit in bitmask.bit: if bit["value"] != bit_value: continue - if val & bit_value: - bang = "" - else: - bang = "!" bit_name = bit.get('name') - bit_desc = None - try: - bit_desc = bit["description"] - except KeyError: - pass - if bit_desc is None: - f.write(" %s%s\n" % (bang, bit_name,)) + f.write(" %s %s" % (bang, bit_name,)) + if hasattr(bit, 'description'): + f.write(" (%s)\n" % bit["description"]) else: - f.write(" %s%s (%s)\n" % (bang, bit_name, bit_desc)) + f.write("\n") done = True break if not done: - f.write(" %{s}UNKNOWN_BIT%s\n" % (bang, str(i))) + f.write(" %s UNKNOWN_BIT%d\n" % (bang, i)) except Exception as e: # print(e) pass