Refine understanding of legacy binary data format.
[pspp] / dump.c
diff --git a/dump.c b/dump.c
index 62e9307d7c8a3a70e5b8261212e65c77248019b2..7f3c2b8c75174a045f9666ff379af99efaef5aa3 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -508,6 +508,7 @@ dump_value(FILE *stream, int level)
   for (int i = 0; i <= level; i++)
     fprintf (stream, "    ");
 
+  printf ("%02x: value (%d)\n", pos, data[pos]);
   if (match_byte (1))
     {
       unsigned int format;
@@ -589,6 +590,7 @@ dump_value(FILE *stream, int level)
     }
   else
     {
+      printf ("else %#x\n", pos);
       dump_value_modifier(stream);
 
       char *base = get_string();
@@ -1008,7 +1010,8 @@ dump_fonts(void)
   printf ("<layer>%d</layer>\n", get_u32());
   if (!match_byte(0))
     match_byte_assert(1);
-  match_byte_assert(0);
+  if (!match_byte(0))
+    match_byte_assert(1);
   if (!match_byte(0))
     match_byte_assert(1);
   printf("<epoch>%d</epoch>\n", get_u32());
@@ -1117,7 +1120,7 @@ dump_fonts(void)
       printf("<locale>%s</locale>\n", get_string());
 
       get_bool();
-      match_byte_assert(0);
+      get_bool();
       get_bool();
       get_bool();