From 5896e03c6f0a39a0fe75ddc3cfe54af1f7dc4113 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 23 May 2019 19:59:06 +0900 Subject: [PATCH] table: add teble_add_string_cell() --- src/shared/format-table.c | 14 ++++++++++++++ src/shared/format-table.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/shared/format-table.c b/src/shared/format-table.c index 4f4a84d749..de72bf02f3 100644 --- a/src/shared/format-table.c +++ b/src/shared/format-table.c @@ -380,6 +380,20 @@ int table_add_cell_full( return 0; } +int table_add_cell_stringf(Table *t, TableCell **ret_cell, const char *format, ...) { + _cleanup_free_ char *buffer = NULL; + va_list ap; + int r; + + 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); +} + int table_dup_cell(Table *t, TableCell *cell) { size_t i; diff --git a/src/shared/format-table.h b/src/shared/format-table.h index 85e3afce4c..5a52c43e25 100644 --- a/src/shared/format-table.h +++ b/src/shared/format-table.h @@ -36,6 +36,7 @@ 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_t) -1, (size_t) -1, (unsigned) -1, (unsigned) -1, (unsigned) -1); } +int table_add_cell_stringf(Table *t, TableCell **ret_cell, const char *format, ...) _printf_(3, 4); int table_dup_cell(Table *t, TableCell *cell);