From b4dabeeded0ad706e185b030d812423ff79ae4c8 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 6 Nov 2014 22:13:11 -0800 Subject: [PATCH] Factor more out into new dump_value__(). --- dump.c | 96 +++++++++++++++------------------------------------------- 1 file changed, 24 insertions(+), 72 deletions(-) diff --git a/dump.c b/dump.c index c4a63b0563..d403c0fd77 100644 --- a/dump.c +++ b/dump.c @@ -204,16 +204,11 @@ dump_value_31(void) match_byte_assert (0x58); } +static void dump_value(int level); + static void -dump_value(int level) +dump_value__(int level) { - for (int i = 0; i <= level; i++) - printf (" "); - - match_byte (0); - match_byte (0); - match_byte (0); - match_byte (0); if (match_byte (3)) { char *s1 = get_string(); @@ -327,6 +322,19 @@ dump_value(int level) } } } +} + +static void +dump_value(int level) +{ + for (int i = 0; i <= level; i++) + printf (" "); + + match_byte (0); + match_byte (0); + match_byte (0); + match_byte (0); + dump_value__(level); match_byte(0); match_byte(0); match_byte(0); @@ -338,23 +346,8 @@ dump_dim_value(int level) for (int i = 0; i <= level; i++) printf (" "); - if (match_byte (3)) - { - get_string(); - dump_value_31(); - get_string(); - printf("string \"%s\"", get_string()); - if (!match_byte (0)) - match_byte_assert(1); - } - else if (match_byte (5)) - { - match_byte_assert (0x58); - printf ("variable \"%s\"", get_string()); - get_string(); - if (!match_byte (1) && !match_byte (2)) - match_byte_assert(3); - } + if (data[pos] == 3 || data[pos] == 5) + dump_value__(level); else dump_value(level); } @@ -470,37 +463,8 @@ dump_data_value(void) if (!match_byte (0)) match_byte_assert(1); } - else if (match_byte (2)) - { - unsigned int format; - char *var, *vallab; - double value; - - match_byte_assert (0x58); - format = get_u32 (); - value = get_double (); - var = get_string (); - vallab = get_string (); - printf ("value %g format %d(%d.%d) var \"%s\" vallab \"%s\"", - value, format >> 16, (format >> 8) & 0xff, format & 0xff, var, vallab); - if (!match_byte (1) && !match_byte(2)) - match_byte_assert (3); - } - else if (match_byte (4)) - { - unsigned int format; - char *var, *vallab, *value; - - match_byte_assert (0x58); - format = get_u32 (); - vallab = get_string (); - var = get_string (); - if (!match_byte(1) && !match_byte(2)) - match_byte_assert (3); - value = get_string (); - printf ("value \"%s\" format %d(%d.%d) var \"%s\" vallab \"%s\"", - value, format >> 16, (format >> 8) & 0xff, format & 0xff, var, vallab); - } + else if (data[pos] == 2 || data[pos] == 4) + dump_value__(0); else if (data[pos] == 5) dump_value (0); else @@ -565,14 +529,8 @@ dump_title_value(int level) match_byte (0); if (data[pos] == 3 || data[pos] == 2 || data[pos] == 4 || data[pos] == 1) dump_value(level); - else if (match_byte (5)) - { - dump_value_31(); - printf ("variable \"%s\"", get_string()); - get_string(); - if (!match_byte(1) && !match_byte(2)) - match_byte_assert(3); - } + else if (data[pos] == 5) + dump_value__(level); else { dump_value_31(); @@ -611,6 +569,8 @@ dump_footnote_value(int level) match_byte (0); if (data[pos] == 2 || data[pos] == 4) dump_value(level); + else if (data[pos] == 5) + dump_value__(level); else if (match_byte (3)) { get_string(); @@ -620,14 +580,6 @@ dump_footnote_value(int level) if (!match_byte (0)) match_byte_assert (1); } - else if (match_byte (5)) - { - match_byte_assert (0x58); - printf ("variable \"%s\"", get_string()); - get_string(); - if (!match_byte(1) && !match_byte(2)) - match_byte_assert(3); - } else if (match_byte (1)) { unsigned int format; -- 2.30.2