pivot-table: Reduce size of struct pivot_value from 80 bytes to 40.
[pspp] / src / output / spv / spv.c
index 2085d183e64124244dd3993fe9892661c52b586f..2e5dd07b2bf426a2694d91a1afd5d3558ee9e56b 100644 (file)
@@ -282,17 +282,18 @@ decode_container_text (const struct spvsx_container_text *ct)
 {
   struct font_style *font_style = xmalloc (sizeof *font_style);
   char *text = decode_embedded_html (ct->html->node_.raw, font_style);
+
   struct pivot_value *value = xmalloc (sizeof *value);
   *value = (struct pivot_value) {
-    .font_style = font_style,
-    .type = PIVOT_VALUE_TEXT,
     .text = {
+      .type = PIVOT_VALUE_TEXT,
       .local = text,
       .c = text,
       .id = text,
       .user_provided = true,
     },
   };
+  pivot_value_ex_rw (value)->font_style = font_style;
 
   struct output_item *item = text_item_create_value (TEXT_ITEM_LOG,
                                                      value, NULL);
@@ -673,6 +674,10 @@ spv_decode_children (struct zip_reader *zip, const char *structure_member,
         {
           const struct spvsx_container *container
             = spvsx_cast_container (node);
+
+          if (container->page_break_before_present)
+            group_item_add_child (parent, page_break_item_create ());
+
           child = spv_decode_container (zip, container);
         }
       else if (spvsx_is_heading (node))