X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fascii.c;h=1a470d0f53ee319e424634190e2a33bdb00967bb;hb=078b003b3171c6158a3419a01189b9658896f470;hp=4bad73aeceef5d32f70051ed89431d165eb1898c;hpb=c60cba893280a910c4389617d5ae62d21d54a9c5;p=pspp diff --git a/src/output/ascii.c b/src/output/ascii.c index 4bad73aece..1a470d0f53 100644 --- a/src/output/ascii.c +++ b/src/output/ascii.c @@ -183,8 +183,8 @@ struct ascii_driver #ifdef HAVE_CAIRO /* Colours for charts */ - struct xr_color fg; - struct xr_color bg; + struct cell_color fg; + struct cell_color bg; #endif int width; /* Page width. */ @@ -415,14 +415,16 @@ ascii_output_lines (struct ascii_driver *a, size_t n_lines) { for (size_t y = 0; y < n_lines; y++) { - struct u8_line *line = &a->lines[y]; + if (y < a->allocated_lines) + { + struct u8_line *line = &a->lines[y]; - while (ds_chomp_byte (&line->s, ' ')) - continue; - fwrite (ds_data (&line->s), 1, ds_length (&line->s), a->file); + while (ds_chomp_byte (&line->s, ' ')) + continue; + fwrite (ds_data (&line->s), 1, ds_length (&line->s), a->file); + u8_line_clear (&a->lines[y]); + } putc ('\n', a->file); - - u8_line_clear (&a->lines[y]); } } @@ -450,16 +452,20 @@ ascii_output_table_item (struct ascii_driver *a, } static void -ascii_output_text (struct ascii_driver *a, const char *text) +ascii_output_table_item_unref (struct ascii_driver *a, + struct table_item *table_item) { - struct table_item *table_item; - - table_item = table_item_create (table_from_string (TABLE_HALIGN_LEFT, text), - NULL, NULL); ascii_output_table_item (a, table_item); table_item_unref (table_item); } +static void +ascii_output_text (struct ascii_driver *a, const char *text) +{ + ascii_output_table_item_unref ( + a, table_item_create (table_from_string (text), NULL, NULL)); +} + static void ascii_submit (struct output_driver *driver, const struct output_item *output_item) @@ -486,7 +492,7 @@ ascii_submit (struct output_driver *driver, struct text_item *text_item; text_item = text_item_create_format ( - TEXT_ITEM_PARAGRAPH, _("See %s for a chart."), file_name); + TEXT_ITEM_LOG, _("See %s for a chart."), file_name); ascii_submit (driver, &text_item->output_item); text_item_unref (text_item); @@ -499,19 +505,9 @@ ascii_submit (struct output_driver *driver, const struct text_item *text_item = to_text_item (output_item); enum text_item_type type = text_item_get_type (text_item); - switch (type) - { - case TEXT_ITEM_PAGE_TITLE: - case TEXT_ITEM_BLANK_LINE: - break; - - case TEXT_ITEM_EJECT_PAGE: - break; - - default: - ascii_output_table_item (a, text_item_to_table_item (text_item_ref (text_item))); - break; - } + if (type != TEXT_ITEM_PAGE_TITLE && type != TEXT_ITEM_EJECT_PAGE) + ascii_output_table_item_unref ( + a, text_item_to_table_item (text_item_ref (text_item))); } else if (is_message_item (output_item)) {