From: Lennart Poettering Date: Fri, 11 Nov 2022 14:01:46 +0000 (+0100) Subject: format-table: teach table_add_cell_stringf_full() to generate TABLE_FIELD/TABLE_HEADE... X-Git-Tag: v253-rc1~541^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d3a3a0fae3c04d760f5d94048e83c8a0a6cd5f60;p=thirdparty%2Fsystemd.git format-table: teach table_add_cell_stringf_full() to generate TABLE_FIELD/TABLE_HEADER cells, too --- diff --git a/src/shared/format-table.c b/src/shared/format-table.c index 82744a3f96a..1c1db2f43a9 100644 --- a/src/shared/format-table.c +++ b/src/shared/format-table.c @@ -507,18 +507,21 @@ int table_add_cell_full( return 0; } -int table_add_cell_stringf(Table *t, TableCell **ret_cell, const char *format, ...) { +int table_add_cell_stringf_full(Table *t, TableCell **ret_cell, TableDataType dt, const char *format, ...) { _cleanup_free_ char *buffer = NULL; va_list ap; int r; + assert(t); + assert(IN_SET(dt, TABLE_STRING, TABLE_PATH, TABLE_FIELD, TABLE_HEADER)); + va_start(ap, format); r = vasprintf(&buffer, format, ap); va_end(ap); if (r < 0) return -ENOMEM; - return table_add_cell(t, ret_cell, TABLE_STRING, buffer); + return table_add_cell(t, ret_cell, dt, buffer); } int table_fill_empty(Table *t, size_t until_column) { diff --git a/src/shared/format-table.h b/src/shared/format-table.h index c1fada77c75..e835692c6fd 100644 --- a/src/shared/format-table.h +++ b/src/shared/format-table.h @@ -89,7 +89,8 @@ int table_add_cell_full(Table *t, TableCell **ret_cell, TableDataType type, cons static inline int table_add_cell(Table *t, TableCell **ret_cell, TableDataType type, const void *data) { return table_add_cell_full(t, ret_cell, type, data, SIZE_MAX, SIZE_MAX, UINT_MAX, UINT_MAX, UINT_MAX); } -int table_add_cell_stringf(Table *t, TableCell **ret_cell, const char *format, ...) _printf_(3, 4); +int table_add_cell_stringf_full(Table *t, TableCell **ret_cell, TableDataType type, const char *format, ...) _printf_(4, 5); +#define table_add_cell_stringf(t, ret_cell, format, ...) table_add_cell_stringf_full(t, ret_cell, TABLE_STRING, format, __VA_ARGS__) int table_fill_empty(Table *t, size_t until_column);