projects
/
pspp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9145081
)
more progress
author
Ben Pfaff
<blp@cs.stanford.edu>
Sun, 28 Jun 2020 04:33:05 +0000
(
04:33
+0000)
committer
Ben Pfaff
<blp@cs.stanford.edu>
Sun, 28 Jun 2020 04:33:05 +0000
(
04:33
+0000)
dump-spo2.c
patch
|
blob
|
history
diff --git
a/dump-spo2.c
b/dump-spo2.c
index bc1e97d57f37136e4911589d227195fd50fc5412..02acd3af6a73612619a7ce6f6095664896bb1bfb 100644
(file)
--- a/
dump-spo2.c
+++ b/
dump-spo2.c
@@
-717,7
+717,10
@@
parse_NavHead(void)
match_byte_assert(2);
match_zeros_assert(24);
match_byte_assert(1);
match_byte_assert(2);
match_zeros_assert(24);
match_byte_assert(1);
- match_zeros_assert(7);
+ match_zeros_assert(3);
+ if (!match_byte(1))
+ match_byte_assert(0);
+ match_zeros_assert(3);
match_DspSimpleText();
parse_flexible();
}
match_DspSimpleText();
parse_flexible();
}
@@
-745,6
+748,21
@@
parse_NavOleItem(void)
match_byte_assert(0);
}
match_byte_assert(0);
}
+static void
+parse_NavTitle(void)
+{
+ match_byte_assert(2);
+ match_zeros_assert(8);
+ match_u32_assert(24);
+ get_u32();
+ pos++;
+ match_byte_assert(4);
+ match_zeros_assert(2);
+ get_u32();
+ match_u32_assert(2);
+ match_u32_assert(1);
+}
+
static void
parse_flexible(void)
{
static void
parse_flexible(void)
{
@@
-766,6
+784,8
@@
parse_flexible(void)
match_zeros_assert(14);
else if (!strcmp(heading, "NavOleItem"))
parse_NavOleItem();
match_zeros_assert(14);
else if (!strcmp(heading, "NavOleItem"))
parse_NavOleItem();
+ else if (!strcmp(heading, "NavTitle"))
+ parse_NavTitle();
else
{
fprintf(stderr, "don't know %s at offset 0x%x: ", heading, start);
else
{
fprintf(stderr, "don't know %s at offset 0x%x: ", heading, start);
@@
-964,6
+984,8
@@
main(int argc, char *argv[])
parse_flexible();
parse_flexible();
parse_flexible();
parse_flexible();
parse_flexible();
parse_flexible();
+ parse_flexible();
+ parse_flexible();
exit(0);
puts(get_padded_string(32));
if (!match_u32(80))
exit(0);
puts(get_padded_string(32));
if (!match_u32(80))