Generalize dump_title() footnote handling.
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 7 Nov 2014 04:48:40 +0000 (20:48 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 7 Nov 2014 04:48:40 +0000 (20:48 -0800)
dump.c

diff --git a/dump.c b/dump.c
index cdd666c07c9af345c019c6c5ccfe8e5879edcd5c..a3e10f47c75ae38dd9728b670d71975b15bc7b00 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -1101,42 +1101,16 @@ dump_title(void)
           match_byte(0);
           match_byte(0);
           match_byte(0);
-          if (match_byte (1))
-            {
-              unsigned int format;
-              double value;
-
-              if (match_byte (0x31))
-                {
-                  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
-                match_byte_assert (0x58);
-              format = get_u32 ();
-              value = get_double ();
-              printf ("value %g format %d(%d.%d)", value, format >> 16, (format >> 8) & 0xff, format & 0xff);
-              match_byte (1);
-              match_byte (0);
-              match_byte (0);
-              match_byte (0);
-              match_byte (1);
-            }
+          if (data[pos] == 1)
+            dump_footnote_value(0);
           else if (match_byte (0x31))
             {
+              /* Custom footnote marker string. */
               match_byte_assert(3);
               get_string();
               match_byte_assert(0x58);
               match_u32_assert(0);
               get_string();
-              match_byte(0);
             }
           else
             match_byte_assert (0x58);