X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Foutput%2Fdriver.c;h=f627e31248d69c1398739bd369307ec94dcd86fc;hb=8cd5044ab132aec4256dbbac41844a196cb1b108;hp=61ce6f51aa4e30272c6f6b09917a65c340a5f88c;hpb=507ebaea36737618ef8265a60cd3e9005d9f3457;p=pspp diff --git a/src/output/driver.c b/src/output/driver.c index 61ce6f51aa..f627e31248 100644 --- a/src/output/driver.c +++ b/src/output/driver.c @@ -91,7 +91,7 @@ put_strftime (const char *key, const char *format, void output_engine_push (void) { - struct output_engine *e = xzalloc (sizeof (*e)); + struct output_engine *e = XZALLOC (struct output_engine); llx_init (&e->drivers); @@ -156,7 +156,6 @@ output_driver_should_show (const struct output_driver *d, case OUTPUT_ITEM_GROUP: case OUTPUT_ITEM_IMAGE: case OUTPUT_ITEM_PAGE_BREAK: - case OUTPUT_ITEM_PAGE_SETUP: case OUTPUT_ITEM_TABLE: break; } @@ -367,9 +366,21 @@ output_log (const char *format, ...) char *s = xvasprintf (format, args); va_end (args); + output_log_nocopy (s); +} + +void +output_log_nocopy (char *s) +{ output_submit (text_item_create_nocopy (TEXT_ITEM_LOG, s, NULL)); } +const char * +output_get_title (void) +{ + return engine_stack_top ()->title; +} + void output_set_title (const char *title) { @@ -378,6 +389,12 @@ output_set_title (const char *title) output_set_title__ (e, &e->title, title); } +const char * +output_get_subtitle (void) +{ + return engine_stack_top ()->subtitle; +} + void output_set_subtitle (const char *subtitle) { @@ -462,6 +479,20 @@ output_driver_is_registered (const struct output_driver *driver) { return output_driver_get_engine (driver) != NULL; } + +void +output_set_page_setup (const struct page_setup *ps) +{ + struct output_engine *e = engine_stack_top (); + + struct llx *llx; + llx_for_each (llx, &e->drivers) + { + struct output_driver *d = llx_data (llx); + if (d->class->setup) + d->class->setup (d, ps); + } +} extern const struct output_driver_factory csv_driver_factory; extern const struct output_driver_factory html_driver_factory;