From c9c6d86621b611f04b9132400ead11681fb9df2b Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 18 Jan 2010 22:09:03 -0800 Subject: [PATCH] ascii: Fix ascii_flush(). ascii_flush() was not actually flushing the contents of the page, so this commit changes it to do that. This change made it clear that the proper place to reset the "y" position on the page is in ascii_close_page(), so it makes that change too. --- src/output/ascii.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/output/ascii.c b/src/output/ascii.c index 4978e125..afd91526 100644 --- a/src/output/ascii.c +++ b/src/output/ascii.c @@ -352,8 +352,15 @@ static void ascii_flush (struct output_driver *driver) { struct ascii_driver *a = ascii_driver_cast (driver); - if (a->file != NULL) - fflush (a->file); + if (a->y > 0) + { + ascii_close_page (a); + + if (fn_close (a->file_name, a->file) != 0) + error (0, errno, _("ascii: closing output file \"%s\""), + a->file_name); + a->file = NULL; + } } static void @@ -408,10 +415,7 @@ ascii_submit (struct output_driver *driver, } if (a->file == NULL) - { - ascii_open_page (a); - a->y = 0; - } + ascii_open_page (a); page = render_page_create (¶ms, table_item_get_table (table_item)); for (render_break_init (&x_break, page, H); @@ -435,7 +439,6 @@ ascii_submit (struct output_driver *driver, { assert (a->y > 0); ascii_close_page (a); - a->y = 0; ascii_open_page (a); continue; } @@ -915,4 +918,6 @@ ascii_close_page (struct ascii_driver *a) putc ('\n', a->file); if (a->paginate) putc ('\f', a->file); + + a->y = 0; } -- 2.30.2