format-table: add table_fill_empty() to fill in empty cells until the specified column is reached

This commit is contained in:
Lennart Poettering 2019-07-29 18:38:13 +02:00
parent 4ea710eaf4
commit 728a22d3b1
2 changed files with 23 additions and 0 deletions

View File

@ -418,6 +418,27 @@ int table_add_cell_stringf(Table *t, TableCell **ret_cell, const char *format, .
return table_add_cell(t, ret_cell, TABLE_STRING, buffer);
}
int table_fill_empty(Table *t, size_t until_column) {
int r;
assert(t);
/* Fill the rest of the current line with empty cells until we reach the specified column. Will add
* at least one cell. Pass 0 in order to fill a line to the end or insert an empty line. */
if (until_column >= t->n_columns)
return -EINVAL;
do {
r = table_add_cell(t, NULL, TABLE_EMPTY, NULL);
if (r < 0)
return r;
} while ((t->n_cells % t->n_columns) != until_column);
return 0;
}
int table_dup_cell(Table *t, TableCell *cell) {
size_t i;

View File

@ -59,6 +59,8 @@ static inline int table_add_cell(Table *t, TableCell **ret_cell, TableDataType t
}
int table_add_cell_stringf(Table *t, TableCell **ret_cell, const char *format, ...) _printf_(3, 4);
int table_fill_empty(Table *t, size_t until_column);
int table_dup_cell(Table *t, TableCell *cell);
int table_set_minimum_width(Table *t, TableCell *cell, size_t minimum_width);