Generalize special cases in dump_title_value().
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 7 Nov 2014 03:11:36 +0000 (19:11 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 7 Nov 2014 03:11:36 +0000 (19:11 -0800)
dump.c

diff --git a/dump.c b/dump.c
index 58dbd498b409a1a5edba15fac623f3bbd037078d..e6d2369a80a112f9ef5aaa57277ff4b724d1bdcf 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -1166,75 +1166,46 @@ dump_title_value(int level)
       match_byte (0);
       match_byte (1);
     }
-  else if (match_byte (0x31))
+  else
     {
-      if (match_u32 (1))
-        {
-          printf("(footnote %d) ", get_u32());
-          match_byte_assert (0);
-          match_byte_assert (0);
-          int subn = get_u32 ();
-          printf ("nested %d bytes", subn);
-          pos += subn;
-        }
-      else if (match_u32 (0))
-        {
-          match_u32_assert (0);
-          int subn = get_u32 ();
-          printf ("nested %d bytes", subn);
-          pos += subn;
-        }
-      else
-        {
-          match_u32_assert(3);
-          printf("(special 3)");
-          match_byte_assert(0);
-          match_byte_assert(0);
-          match_byte_assert(1);
-          match_byte_assert(0);
-          int subn = get_u32 ();
-          printf ("nested %d bytes, ", subn);
-          pos += subn;
-          subn = get_u32 ();
-          printf ("nested %d bytes, ", subn);
-          pos += subn;
-        }
-
-      char *base = get_string();
-      int x = get_u32();
-      printf ("\"%s\"; %d variables:\n", base, x);
-      for (int i = 0; i < x; i++)
+      if (match_byte (0x31))
         {
-          int y = get_u32();
-          if (!y)
-            y = 1;
+          if (match_u32 (1))
+            {
+              printf("(footnote %d) ", get_u32());
+              match_byte_assert (0);
+              match_byte_assert (0);
+              int subn = get_u32 ();
+              printf ("nested %d bytes", subn);
+              pos += subn;
+            }
+          else if (match_u32 (0))
+            {
+              match_u32_assert (0);
+              int subn = get_u32 ();
+              printf ("nested %d bytes", subn);
+              pos += subn;
+            }
           else
-            match_u32_assert(0);
-          for (int j = 0; j <= level; j++)
-            printf ("    ");
-          printf("variable %d has %d values:\n", i, y);
-          for (int j = 0; j < y; j++)
             {
-              if (match_byte(3))
-                {
-                  char *a = get_string();
-                  match_byte_assert(0x58);
-                  char *b = get_string();
-                  char *c = get_string();
-                  for (int k = 0; k <= level + 1; k++)
-                    printf ("    ");
-                  printf ("\"%s\", \"%s\", \"%s\"", a, b, c);
-                  match_byte(0);
-                }
-              else
-                dump_title_value (level+1);
-              putchar('\n');
+              match_u32_assert(3);
+              printf("(special 3)");
+              match_byte_assert(0);
+              match_byte_assert(0);
+              match_byte_assert(1);
+              match_byte_assert(0);
+              int subn = get_u32 ();
+              printf ("nested %d bytes, ", subn);
+              pos += subn;
+              subn = get_u32 ();
+              printf ("nested %d bytes, ", subn);
+              pos += subn;
             }
+
         }
-    }
-  else
-    {
-      match_byte_assert (0x58);
+      else
+        match_byte_assert (0x58);
+
       char *base = get_string();
       int x = get_u32();
       printf ("\"%s\" with %d variables:\n", base, x);