X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=dump.c;h=a52cafddf0d414cb06ddd8464c9795949b91e2d9;hb=60e0b4f8a7f3210c94d9d488d7faac3b0d1d16f9;hp=b383f4359083cd6e1bef39c075947e02c324dfb6;hpb=d93eb65410dbd8eb908e39724f36f18a0d85537a;p=pspp
diff --git a/dump.c b/dump.c
index b383f43590..a52cafddf0 100644
--- a/dump.c
+++ b/dump.c
@@ -265,22 +265,25 @@ hex_dump(int ofs, int n)
}
static void
-dump_style(void)
+dump_style(FILE *stream)
{
match_byte(1);
match_byte(0);
match_byte(0);
match_byte(0);
match_byte_assert(1);
- get_string(); /* foreground */
- get_string(); /* background */
- get_string(); /* font */
+ char *fg = get_string(); /* foreground */
+ char *bg = get_string(); /* background */
+ char *font = get_string(); /* font */
+ int size = data[pos];
if (!match_byte(14))
match_byte_assert(12); /* size? */
+ fprintf(stream, " fgcolor=\"%s\" bgcolor=\"%s\" font=\"%s\" size=\"%d\"",
+ fg, bg, font, size);
}
static char *
-dump_nested_string(void)
+dump_nested_string(FILE *stream)
{
char *s = NULL;
@@ -288,8 +291,10 @@ dump_nested_string(void)
match_byte_assert (0);
int outer_end = get_end();
s = dump_counted_string();
+ if (s)
+ fprintf(stream, " \"%s\"", s);
if (match_byte(0x31))
- dump_style();
+ dump_style(stream);
else
match_byte_assert(0x58);
match_byte_assert(0x58);
@@ -303,20 +308,23 @@ dump_nested_string(void)
}
static void
-dump_optional_value(FILE *stream)
+dump_value_modifier(FILE *stream)
{
if (match_byte (0x31))
{
if (match_u32 (0))
{
+ fprintf(stream, "\n");
return;
}
@@ -341,10 +350,12 @@ dump_optional_value(FILE *stream)
/* This counted-string appears to be a template string,
e.g. "Design\: [:^1:]1 Within Subjects Design\: [:^1:]2". */
- dump_counted_string();
+ char *template = dump_counted_string();
+ if (template)
+ fprintf(stream, " template=\"%s\"", template);
if (match_byte(0x31))
- dump_style();
+ dump_style(stream);
else
match_byte_assert(0x58);
if (match_byte(0x31))
@@ -372,32 +383,36 @@ dump_optional_value(FILE *stream)
fprintf(stderr, "outer end discrepancy\n");
exit(1);
}
+ fprintf(stream, "/>\n");
}
else if (match_u32 (1))
{
- fprintf(stream, "(footnote %d) ", get_u32());
- dump_nested_string();
+ fprintf(stream, "\n");
}
else if (match_u32 (2))
{
- fprintf(stream, "(special 2)");
+ fprintf(stream, "\n");
}
else
{
+ fprintf(stream, "\n");
}
}
else
@@ -468,7 +483,7 @@ dump_value(FILE *stream, int level)
unsigned int format;
double value;
- dump_optional_value(stream);
+ dump_value_modifier(stream);
format = get_u32 ();
value = get_double ();
fprintf (stream, "\n",
@@ -480,7 +495,7 @@ dump_value(FILE *stream, int level)
char *var, *vallab;
double value;
- dump_optional_value (stream);
+ dump_value_modifier (stream);
format = get_u32 ();
value = get_double ();
var = get_string ();
@@ -498,7 +513,7 @@ dump_value(FILE *stream, int level)
else if (match_byte (3))
{
char *text = get_string();
- dump_optional_value(stream);
+ dump_value_modifier(stream);
char *identifier = get_string();
char *text_eng = get_string();
fprintf (stream, "