- csv_output_field (csv, cell.contents);
-
- table_cell_free (&cell);
+ {
+ struct string s = DS_EMPTY_INITIALIZER;
+
+ if (cell.options & TAB_MARKUP)
+ {
+ char *t = output_get_text_from_markup (cell.text);
+ ds_put_cstr (&s, t);
+ free (t);
+ }
+ else
+ ds_put_cstr (&s, cell.text);
+
+ if (cell.n_subscripts)
+ for (size_t i = 0; i < cell.n_subscripts; i++)
+ ds_put_format (&s, "%c%s",
+ i ? ',' : '_', cell.subscripts[i]);
+ if (cell.superscript)
+ ds_put_format (&s, "^%s", cell.superscript);
+ csv_format_footnotes (cell.footnotes, cell.n_footnotes, &s);
+ csv_output_field (csv, ds_cstr (&s));
+ ds_destroy (&s);
+ }