}, \
}
static const struct area_style default_area_styles[PIVOT_N_AREAS] = {
- [PIVOT_AREA_TITLE] = STYLE( true, CENTER, CENTER, 8,11,1,8),
+ [PIVOT_AREA_TITLE] = STYLE(true, CENTER, CENTER, 8,11,1,8),
[PIVOT_AREA_CAPTION] = STYLE(false, LEFT, TOP, 8,11,1,1),
[PIVOT_AREA_FOOTER] = STYLE(false, LEFT, TOP, 11, 8,2,3),
[PIVOT_AREA_CORNER] = STYLE(false, LEFT, BOTTOM, 8,11,1,1),
table->show_caption = true;
table->weight_format = (struct fmt_spec) { FMT_F, 40, 0 };
table->title = title;
- table->subtype = pivot_value_new_text (subtype);
-
- const char *command_id = output_get_command_name ();
- table->command_c = command_id ? xstrdup (command_id) : NULL;
+ table->subtype = subtype ? pivot_value_new_text (subtype) : NULL;
+ table->command_c = output_get_command_name ();
table->sizing[TABLE_HORZ].range[0] = 50;
table->sizing[TABLE_HORZ].range[1] = 72;
f->marker = pivot_make_default_footnote_marker (
f->idx, table->show_numeric_markers);
f->content = NULL;
+ f->show = true;
table->footnotes[table->n_footnotes++] = f;
}
if (table->date)
{
indent (indentation);
- char buf[26];
- printf ("date: %s", ctime_r (&table->date, buf));
+
+ struct tm *tm = localtime (&table->date);
+ printf ("date: %d-%02d-%02d %d:%02d:%02d\n", tm->tm_year + 1900,
+ tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min,
+ tm->tm_sec);
}
indent (indentation);
names[n_names++] = c->name;
}
- for (size_t i = n_names; i-- > 0; )
+ for (size_t i = n_names; i-- > 0;)
{
putchar (' ');
pivot_value_dump (names[i]);
enum settings_value_show show_variables,
struct string *out)
{
- pivot_value_format_body ( value, show_values, show_variables, out);
+ pivot_value_format_body (value, show_values, show_variables, out);
if (value->n_subscripts)
{
DEFAULT_STYLE for the parts of the style that VALUE doesn't override. */
void
pivot_value_get_style (struct pivot_value *value,
- const struct area_style *default_style,
+ const struct font_style *base_font_style,
+ const struct cell_style *base_cell_style,
struct area_style *area)
{
font_style_copy (NULL, &area->font_style, (value->font_style
? value->font_style
- : &default_style->font_style));
- area->cell_style = (value->cell_style
- ? *value->cell_style
- : default_style->cell_style);
+ : base_font_style));
+ area->cell_style = *(value->cell_style
+ ? value->cell_style
+ : base_cell_style);
}
/* Copies AREA into VALUE's style. */
pivot_value_add_footnote (struct pivot_value *v,
const struct pivot_footnote *footnote)
{
+ /* Some legacy tables include numerous duplicate footnotes. Suppress
+ them. */
+ for (size_t i = 0; i < v->n_footnotes; i++)
+ if (v->footnotes[i] == footnote)
+ return;
+
v->footnotes = xrealloc (v->footnotes,
(v->n_footnotes + 1) * sizeof *v->footnotes);
v->footnotes[v->n_footnotes++] = footnote;