+
+struct table_item *
+text_item_to_table_item (struct text_item *text_item)
+{
+ struct table *tab = table_create (1, 1, 0, 0, 0, 0);
+
+ struct area_style *style = pool_alloc (tab->container, sizeof *style);
+ *style = (struct area_style) { AREA_STYLE_INITIALIZER__,
+ .cell_style.halign = TABLE_HALIGN_LEFT };
+ struct font_style *font_style = &style->font_style;
+ if (text_item->typeface)
+ font_style->typeface = pool_strdup (tab->container, text_item->typeface);
+ font_style->size = text_item->size;
+ font_style->bold = text_item->bold;
+ font_style->italic = text_item->italic;
+ font_style->underline = text_item->underline;
+ font_style->markup = text_item->markup;
+ tab->styles[0] = style;
+
+ int opts = 0;
+ if (text_item->markup)
+ opts |= TAB_MARKUP;
+ if (text_item->type == TEXT_ITEM_SYNTAX || text_item->type == TEXT_ITEM_LOG)
+ opts |= TAB_FIX;
+ table_text (tab, 0, 0, opts, text_item_get_text (text_item));
+ struct table_item *table_item = table_item_create (tab, NULL, NULL);
+ text_item_unref (text_item);
+ return table_item;
+}