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 *);