From f4e84f2cace9865b05dcc0b06b6bdd7fd6f063d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Fri, 30 Jun 2006 13:41:40 +0000 Subject: [PATCH] Add rtbl_add_column_entryv functions, printf like git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17758 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/rtbl.c | 36 ++++++++++++++++++++++++++++++++++++ lib/roken/rtbl.h | 13 +++++++++++++ 2 files changed, 49 insertions(+) diff --git a/lib/roken/rtbl.c b/lib/roken/rtbl.c index 554cafad2..cac886870 100644 --- a/lib/roken/rtbl.c +++ b/lib/roken/rtbl.c @@ -314,6 +314,24 @@ rtbl_add_column_entry_by_id (rtbl_t table, unsigned int id, const char *data) return add_column_entry(c, data); } +int ROKEN_LIB_FUNCTION +rtbl_add_column_entryv_by_id (rtbl_t table, unsigned int id, + const char *fmt, ...) +{ + va_list ap; + char *str; + int ret; + + va_start(ap, fmt); + ret = vasprintf(&str, fmt, ap); + va_end(ap); + if (ret == -1) + return -1; + ret = rtbl_add_column_entry_by_id(table, id, str); + free(str); + return ret; +} + int ROKEN_LIB_FUNCTION rtbl_add_column_entry (rtbl_t table, const char *column, const char *data) { @@ -325,6 +343,24 @@ rtbl_add_column_entry (rtbl_t table, const char *column, const char *data) return add_column_entry(c, data); } +int ROKEN_LIB_FUNCTION +rtbl_add_column_entryv (rtbl_t table, const char *column, const char *fmt, ...) +{ + va_list ap; + char *str; + int ret; + + va_start(ap, fmt); + ret = vasprintf(&str, fmt, ap); + va_end(ap); + if (ret == -1) + return -1; + ret = rtbl_add_column_entry(table, column, str); + free(str); + return ret; +} + + int ROKEN_LIB_FUNCTION rtbl_format (rtbl_t table, FILE * f) { diff --git a/lib/roken/rtbl.h b/lib/roken/rtbl.h index 9c482e161..0f1d1bd24 100644 --- a/lib/roken/rtbl.h +++ b/lib/roken/rtbl.h @@ -43,6 +43,10 @@ #endif #endif +#if !defined(__GNUC__) && !defined(__attribute__) +#define __attribute__(x) +#endif + struct rtbl_data; typedef struct rtbl_data *rtbl_t; @@ -58,9 +62,18 @@ rtbl_add_column (rtbl_t, const char*, unsigned int); int ROKEN_LIB_FUNCTION rtbl_add_column_by_id (rtbl_t, unsigned int, const char*, unsigned int); +int ROKEN_LIB_FUNCTION +rtbl_add_column_entryv_by_id (rtbl_t table, unsigned int id, + const char *fmt, ...) + __attribute__ ((format (printf, 3, 0))); + int ROKEN_LIB_FUNCTION rtbl_add_column_entry (rtbl_t, const char*, const char*); +int ROKEN_LIB_FUNCTION +rtbl_add_column_entryv (rtbl_t, const char*, const char*, ...) + __attribute__ ((format (printf, 3, 0))); + int ROKEN_LIB_FUNCTION rtbl_add_column_entry_by_id (rtbl_t, unsigned int, const char*);