summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/printf.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/printf.c b/lib/printf.c
index 533a1300..cafeeb93 100644
--- a/lib/printf.c
+++ b/lib/printf.c
@@ -270,6 +270,17 @@ int bvsnprintf(char *buf, int size, const char *fmt, va_list args)
*str++ = ' ';
continue;
+ case 'V': {
+ const char *vfmt = va_arg(args, const char *);
+ va_list *vargs = va_arg(args, va_list *);
+ int res = bvsnprintf(str, size, vfmt, *vargs);
+ if (res < 0)
+ return -1;
+ str += res;
+ size -= res;
+ continue;
+ }
+
case 'p':
if (field_width == -1) {
field_width = 2*sizeof(void *);