From: Ben Pfaff Date: Sat, 8 Aug 2015 08:01:11 +0000 (-0700) Subject: dump: Revert changes that caused regressions. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=eb5a888913207139985fcd85886b6b9c36aa01a0 dump: Revert changes that caused regressions. I thought that these changes were OK but I just wasn't testing correctly. --- diff --git a/dump.c b/dump.c index 2c778210ff..55ad4bc64c 100644 --- a/dump.c +++ b/dump.c @@ -407,7 +407,7 @@ format_to_string (int type) } static void -dump_value(FILE *stream, int level) +dump_value(FILE *stream, int level, bool match1) { match_byte(0); match_byte(0); @@ -431,7 +431,8 @@ dump_value(FILE *stream, int level) fprintf (stream, "/>\n"); if (!match_byte (0)) match_byte_assert(1); - + if (match1) + match_byte (1); } else if (match_byte (5)) { @@ -496,6 +497,8 @@ dump_value(FILE *stream, int level) value = get_double (); fprintf (stream, "\n", DBL_DIG, value, format_to_string(format >> 16), (format >> 8) & 0xff, format & 0xff); + if (match1) + match_byte (1); } else { @@ -515,7 +518,7 @@ dump_value(FILE *stream, int level) fprintf (stream, " "); fprintf (stream, "\n", i + 1); for (int j = 0; j < y; j++) - dump_value (stream, level + 2); + dump_value (stream, level + 2, false); for (int j = 0; j <= level + 1; j++) fprintf (stream, " "); fprintf (stream, "\n"); @@ -557,8 +560,10 @@ dump_category(int level, int *indexes, int *n_indexes, int max_indexes) for (int i = 0; i <= level; i++) fprintf (stdout, " "); printf ("\n"); - dump_value (stdout, level + 1); - match_u32(1); + dump_value (stdout, level + 1, true); + match_byte(0); + match_byte(0); + match_byte(0); if (match_u32 (1)) match_byte (0); @@ -607,7 +612,7 @@ dump_dim(int indx) int n_categories; printf ("\n", indx); - dump_value (stdout, 0); + dump_value (stdout, 0, false); /* This byte is usually 0x02 but many other values have been spotted. */ pos++; @@ -665,7 +670,7 @@ dump_data(void) match_u32_assert(0); if (version == 1) match_byte(0); - dump_value(stdout, 1); + dump_value(stdout, 1, false); fprintf (stdout, " \n"); } printf ("\n"); @@ -676,20 +681,17 @@ dump_title(void) { pos = 0x27; printf ("\n"); - dump_value(stdout, 0); - match_byte(1); + dump_value(stdout, 0, true); printf ("\n"); printf ("\n"); - dump_value(stdout, 0); - match_byte(1); + dump_value(stdout, 0, true); printf ("\n"); match_byte_assert(0x31); printf ("\n"); - dump_value(stdout, 0); - match_byte(1); + dump_value(stdout, 0, true); printf ("\n"); match_byte(0); @@ -697,7 +699,7 @@ dump_title(void) if (match_byte(0x31)) { printf ("\n"); - dump_value(stdout, 0); + dump_value(stdout, 0, false); printf ("\n"); } else @@ -708,7 +710,7 @@ dump_title(void) for (int i = 0; i < n_footnotes; i++) { printf ("\n", i); - dump_value(stdout, 0); + dump_value(stdout, 0, false); if (match_byte (0x31)) { /* Custom footnote marker string. */