diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-02-17 19:42:12 +0400 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-02-17 19:42:12 +0400 |
commit | af2f52a37bdbb34835da08b518a5f5a950d87a77 (patch) | |
tree | c98d6d01803a26767c7deafad0489ed2af3a089f /blobmsg.c | |
parent | bd47d85d38ee5fb1fb8a37d006f51443f67a2061 (diff) |
blobmsg: implement blobmsg_printf and blobmsg_vprintf
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'blobmsg.c')
-rw-r--r-- | blobmsg.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -216,6 +216,31 @@ blobmsg_open_nested(struct blob_buf *buf, const char *name, bool array) return (void *)offset; } +void +blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format, va_list arg) +{ + va_list arg2; + char cbuf; + int len; + + va_copy(arg2, arg); + len = vsnprintf(&cbuf, sizeof(cbuf), format, arg2); + va_end(arg2); + + vsprintf(blobmsg_alloc_string_buffer(buf, name, len + 1), format, arg); + blobmsg_add_string_buffer(buf); +} + +void +blobmsg_printf(struct blob_buf *buf, const char *name, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + blobmsg_vprintf(buf, name, format, ap); + va_end(ap); +} + void * blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen) { |