X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=dump.c;h=57bc9b4489e186abc35175038c40d53ed6031cc1;hb=35d486d1a1ca5dd788b188355fd5e090bed785b3;hp=04543c3324e7b9a0dd7b4bd80787609857b87085;hpb=5c1c0c702010a7b6fc4fd68e23c52e873e3aec4f;p=pspp diff --git a/dump.c b/dump.c index 04543c3324..57bc9b4489 100644 --- a/dump.c +++ b/dump.c @@ -154,7 +154,10 @@ dump_value_31(void) { if (match_u32 (0)) { - match_u32_assert (0); + if (match_u32 (1)) + get_string(); + else + match_u32_assert (0); int subn = get_u32 (); printf ("nested %d bytes", subn); pos += subn; @@ -173,7 +176,8 @@ dump_value_31(void) printf("(special 2)"); match_byte_assert(0); match_byte_assert(0); - match_u32_assert(1); + if (!match_u32 (2)) + match_u32_assert(1); match_byte_assert(0); match_byte_assert(0); int subn = get_u32 (); @@ -229,7 +233,7 @@ dump_value(int level) } else if (match_byte (5)) { - match_byte_assert (0x58); + dump_value_31(); printf ("variable \"%s\"", get_string()); get_string(); if (!match_byte(1) && !match_byte(2)) @@ -293,6 +297,7 @@ dump_value(int level) { dump_value_31(); char *base = get_string(); + int x = get_u32(); printf ("\"%s\" with %d variables:\n", base, x); if (match_u32(0)) @@ -338,32 +343,6 @@ dump_value(int level) } } -static void -dump_dim_value_31(void) -{ - if (match_byte (0x31)) - { - if (match_u32 (0)) - { - match_u32_assert (0); - int subn = get_u32 (); - printf ("nested %d bytes", subn); - pos += subn; - } - 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 - match_byte_assert (0x58); -} - static void dump_dim_value(int level) { @@ -373,7 +352,7 @@ dump_dim_value(int level) if (match_byte (3)) { get_string(); - dump_dim_value_31(); + dump_value_31(); get_string(); printf("string \"%s\"", get_string()); match_byte (0); @@ -422,7 +401,7 @@ dump_dim_value(int level) else { match_byte (0); - dump_dim_value_31(); + dump_value_31(); printf ("; \"%s\", substitutions:", get_string()); int total_subs = get_u32(); int x = get_u32(); @@ -526,62 +505,6 @@ dump_dims(void) } } -static void -dump_data_value_31(void) -{ - if (match_byte (0x31)) - { - if (match_u32 (0)) - { - if (match_u32 (1)) - get_string(); - else - match_u32_assert (0); - int subn = get_u32 (); - printf ("nested %d bytes", subn); - pos += subn; - } - 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 (2)) - { - printf("(special 2)"); - match_byte_assert(0); - match_byte_assert(0); - match_u32_assert(1); - match_byte_assert(0); - match_byte_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; - } - } - else - match_byte_assert (0x58); -} - static void dump_data_value(void) { @@ -594,7 +517,7 @@ dump_data_value(void) unsigned int format; double value; - dump_data_value_31(); + dump_value_31(); format = get_u32 (); value = get_double (); printf (" value %g format %d(%d.%d)", value, format >> 16, (format >> 8) & 0xff, format & 0xff); @@ -602,7 +525,7 @@ dump_data_value(void) else if (match_byte (3)) { get_string(); - dump_data_value_31(); + dump_value_31(); get_string(); printf("string \"%s\"", get_string()); match_byte (0); @@ -652,7 +575,7 @@ dump_data_value(void) } else { - dump_data_value_31(); + dump_value_31(); char *base = get_string(); int x = get_u32(); printf ("\"%s\"; %d variables:\n", base, x); @@ -700,60 +623,6 @@ dump_data(void) } } -static void -dump_title_value_31(int level) -{ - if (match_byte (0x31)) - { - if (match_u32 (0)) - { - match_u32_assert (0); - int subn = get_u32 (); - printf ("nested %d bytes", subn); - pos += subn; - } - 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 (2)) - { - printf("(special 2)"); - match_byte_assert(0); - match_byte_assert(0); - if (!match_u32(2)) - match_u32_assert(1); - match_byte_assert(0); - match_byte_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; - } - } - else - match_byte_assert (0x58); -} - static void dump_title_value(int level) { @@ -764,26 +633,22 @@ dump_title_value(int level) match_byte (0); match_byte (0); match_byte (0); - match_byte (0); if (match_byte (3)) { get_string(); - dump_title_value_31(level); + dump_value_31(); get_string(); printf("string \"%s\"", get_string()); match_byte (0); - match_byte (0); - match_byte (0); match_byte (1); match_byte (1); match_byte (0); match_byte (0); match_byte (0); - match_byte (1); } else if (match_byte (5)) { - dump_title_value_31(level); + dump_value_31(); printf ("variable \"%s\"", get_string()); get_string(); if (!match_byte(1) && !match_byte(2)) @@ -807,10 +672,6 @@ dump_title_value(int level) match_byte (0); match_byte (0); match_byte (0); - match_byte (0); - match_byte (0); - match_byte (0); - match_byte (0); } else if (match_byte (4)) { @@ -829,14 +690,13 @@ dump_title_value(int level) match_byte (0); match_byte (0); match_byte (0); - match_byte (0); } else if (match_byte (1)) { unsigned int format; double value; - dump_title_value_31(level); + dump_value_31(); format = get_u32 (); value = get_double (); printf ("value %g format %d(%d.%d)", value, format >> 16, (format >> 8) & 0xff, format & 0xff); @@ -844,11 +704,10 @@ dump_title_value(int level) match_byte (0); match_byte (0); match_byte (0); - match_byte (1); } else { - dump_title_value_31(level); + dump_value_31(); char *base = get_string(); int x = get_u32(); @@ -884,60 +743,6 @@ dump_title_value(int level) } } -static void -dump_footnote_value_31(void) -{ - if (match_byte (0x31)) - { - if (match_u32 (0)) - { - - match_u32_assert (0); - int subn = get_u32 (); - printf ("nested %d bytes", subn); - pos += subn; - } - 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 (2)) - { - printf("(special 2)"); - match_byte_assert(0); - match_byte_assert(0); - match_u32_assert(1); - match_byte_assert(0); - match_byte_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; - } - } - else - match_byte_assert (0x58); -} - static void dump_footnote_value(int level) { @@ -951,7 +756,7 @@ dump_footnote_value(int level) if (match_byte (3)) { get_string(); - dump_footnote_value_31(); + dump_value_31(); get_string(); printf("string \"%s\"", get_string()); if (!match_byte (0)) @@ -1012,14 +817,14 @@ dump_footnote_value(int level) unsigned int format; double value; - dump_footnote_value_31(); + dump_value_31(); format = get_u32 (); value = get_double (); printf ("value %g format %d(%d.%d)", value, format >> 16, (format >> 8) & 0xff, format & 0xff); } else { - dump_footnote_value_31(); + dump_value_31(); char *base = get_string(); int x = get_u32(); printf ("\"%s\"; %d variables:\n", base, x);