]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
format-table: teach table_add_cell_stringf_full() to generate TABLE_FIELD/TABLE_HEADE... 25349/head
authorLennart Poettering <lennart@poettering.net>
Fri, 11 Nov 2022 14:01:46 +0000 (15:01 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 13 Nov 2022 08:36:22 +0000 (17:36 +0900)
src/shared/format-table.c
src/shared/format-table.h

index 82744a3f96a18ab9854a6b313efb99d240378db1..1c1db2f43a97bcbea4be85d4624ddeaee8dd6375 100644 (file)
@@ -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) {
index c1fada77c75dace29c1b916b3eff223b4225d65d..e835692c6fdb9db19ac1fcae46c460f869ebf011 100644 (file)
@@ -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);