X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=blobmsg.c;h=62f83cce2b39ed7afd75b531a861e38174624653;hb=11e8afea0f7eb34f8c23a8e589ee659c46f3f8aa;hp=8db2238256d510b8da8be084f6c7e3afae44355b;hpb=4ab499899ce2ed884a1235ada501c39e355911e7;p=project%2Flibubox.git diff --git a/blobmsg.c b/blobmsg.c index 8db2238..62f83cc 100644 --- a/blobmsg.c +++ b/blobmsg.c @@ -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) {