From 74f55ace53edefd9d8b0d26667aa2f2c00be6016 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 5 Apr 2022 07:31:19 -0700 Subject: [PATCH] psppire-output-view: Export correctly to drivers that don't handle groups. Thanks to Elias Tsolis for reporting this bug. Bug #61549. --- src/ui/gui/psppire-output-view.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ui/gui/psppire-output-view.c b/src/ui/gui/psppire-output-view.c index 6c19434b1b..07dbd64616 100644 --- a/src/ui/gui/psppire-output-view.c +++ b/src/ui/gui/psppire-output-view.c @@ -877,6 +877,19 @@ psppire_output_view_destroy (struct psppire_output_view *view) /* Export. */ +static void +psppire_output_view_export__ (struct output_driver *driver, + const struct output_item *item) +{ + if (item->type == OUTPUT_ITEM_GROUP && !driver->class->handles_groups) + { + for (size_t i = 0; i < item->group.n_children; i++) + psppire_output_view_export__ (driver, item->group.children[i]); + } + else + driver->class->submit (driver, item); +} + void psppire_output_view_export (struct psppire_output_view *view, struct string_map *options) @@ -890,7 +903,7 @@ psppire_output_view_export (struct psppire_output_view *view, for (i = 0; i < view->n_items; i++) if (view->items[i].nesting_depth == 0) - driver->class->submit (driver, view->items[i].item); + psppire_output_view_export__ (driver, view->items[i].item); output_driver_destroy (driver); } } -- 2.30.2