summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2016-03-17 15:08:58 +0100
committerBjørn Mork <bjorn@mork.no>2016-03-17 15:08:58 +0100
commit1a40d72023ab0b222090829a0ce60b537d51b8c3 (patch)
tree3cb18850fad5faaa3499588265c88e7e8369ee24
parentfa7580782eda05ea538e7f9942334e2c065d8da4 (diff)
parsecwe.pl: finalized
Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rwxr-xr-xscripts/parsecwe.pl14
1 files changed, 6 insertions, 8 deletions
diff --git a/scripts/parsecwe.pl b/scripts/parsecwe.pl
index 483372b..13f9908 100755
--- a/scripts/parsecwe.pl
+++ b/scripts/parsecwe.pl
@@ -130,12 +130,12 @@ sub parse_nvup {
# observed pattern:
# switch (flag) {
# 00: file
- # 02: weird entry
+ # 02: weird entry - only a single 00 byte. padding?
# 08: named variable
if ($flag == 2) {
- $name = join(' ', map { sprintf "%02x" } unpack("C*", $name));
+ $name = join(' ', map { sprintf "%02x", $_ } unpack("C*", $name));
}
- printf ", <%02x> $name =>", $flag;
+ printf ", <%02x> $name => ", $flag;
} elsif ($d == 2) { # value
# observed pattern:
# data sometimes(?) contains a CWE header
@@ -143,12 +143,10 @@ sub parse_nvup {
$data = $cwelen ? substr($data, -$cwelen) : '';
} else { # nvitem
# the NVITEM data is everything
- printf " NVITEM 0x%04x =>", $d;
+ printf " NVITEM 0x%04x => ", $d;
}
- for (unpack("C*", $data)) {
- printf " %02x", $_;
- }
- $nvup = substr($nvup, 6 + $tlen);
+ print join(':', map { sprintf "%02x", $_ } unpack("C*", $data));
+ $nvup = substr($nvup, 6 + $tlen);
}
print "\n";
}