case OUTPUT_ITEM_GROUP:
for (size_t i = 0; i < item->group.n_children; i++)
output_item_unref (item->group.children[i]);
+ free (item->group.children);
break;
case OUTPUT_ITEM_IMAGE:
= old->group.n_children;
for (size_t i = 0; i < new->group.n_children; i++)
- output_item_ref (new->group.children[i]);
+ new->group.children[i] = output_item_ref (new->group.children[i]);
break;
case OUTPUT_ITEM_IMAGE:
break;
case OUTPUT_ITEM_TEXT:
- printf ("text %s \"%s\"\n",
- text_item_subtype_to_string (item->text.subtype),
- pivot_value_to_string_defaults (item->text.content));
+ {
+ char *s = pivot_value_to_string_defaults (item->text.content);
+ printf ("text %s \"%s\"\n",
+ text_item_subtype_to_string (item->text.subtype), s);
+ free (s);
+ }
break;
}
}
{
if (subtype == TEXT_ITEM_SYNTAX || subtype == TEXT_ITEM_LOG)
{
- if (!value->font_style)
+ struct pivot_value_ex *ex = pivot_value_ex_rw (value);
+ if (!ex->font_style)
{
- value->font_style = xmalloc (sizeof *value->font_style);
- *value->font_style = (struct font_style) FONT_STYLE_INITIALIZER;
+ ex->font_style = xmalloc (sizeof *value->ex->font_style);
+ *ex->font_style = (struct font_style) FONT_STYLE_INITIALIZER;
}
- free (value->font_style->typeface);
- value->font_style->typeface = xstrdup ("Monospaced");
+ free (ex->font_style->typeface);
+ ex->font_style->typeface = xstrdup ("Monospaced");
}
- struct output_item *item = xzalloc (sizeof *item);
+ struct output_item *item = XZALLOC (struct output_item);
*item = (struct output_item) {
OUTPUT_ITEM_INITIALIZER (OUTPUT_ITEM_TEXT),
.command_name = xstrdup_if_nonnull (output_get_command_name ()),
if (ds != ss
|| (ds != TEXT_ITEM_SYNTAX && ds != TEXT_ITEM_LOG)
|| strcmp (output_item_get_label (dst), output_item_get_label (src))
- || !nullable_font_style_equal (dc->font_style, sc->font_style)
- || (dc->font_style && dc->font_style->markup)
+ || !nullable_font_style_equal (dc->ex ? dc->ex->font_style : NULL,
+ sc->ex ? sc->ex->font_style : NULL)
+ || (dc->ex && dc->ex->font_style && dc->ex->font_style->markup)
|| sc->type != PIVOT_VALUE_TEXT
|| dc->type != PIVOT_VALUE_TEXT)
return false;