From: Ben Pfaff Date: Tue, 19 Jan 2010 06:09:03 +0000 (-0800) Subject: ascii: Fix ascii_flush(). X-Git-Tag: fc11-i386-build78~2 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9c6d86621b611f04b9132400ead11681fb9df2b;p=pspp-builds.git 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. --- 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; }