diff options
-rw-r--r-- | src/console/vtxprintf.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/console/vtxprintf.c b/src/console/vtxprintf.c index 2d4953d013..b50f3987a5 100644 --- a/src/console/vtxprintf.c +++ b/src/console/vtxprintf.c @@ -18,6 +18,7 @@ #include <console/vtxprintf.h> #include <ctype.h> #include <string.h> +#include <stdint.h> #define call_tx(x) tx_byte(x, data) @@ -136,7 +137,7 @@ int vtxprintf(void (*tx_byte)(unsigned char byte, void *data), int field_width; /* width of output field */ int precision; /* min. # of digits for integers; max number of chars for from string */ - int qualifier; /* 'h', 'H', 'l', or 'L' for integer fields */ + int qualifier; /* 'h', 'H', 'l', 'L', 'z', or 'j' for integer fields */ int count; @@ -190,7 +191,7 @@ repeat: /* get the conversion qualifier */ qualifier = -1; - if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'z') { + if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'z' || *fmt == 'j') { qualifier = *fmt; ++fmt; if (*fmt == 'l') { @@ -291,6 +292,8 @@ repeat: num = va_arg(args, unsigned long); } else if (qualifier == 'z') { num = va_arg(args, size_t); + } else if (qualifier == 'j') { + num = va_arg(args, uintmax_t); } else if (qualifier == 'h') { num = (unsigned short) va_arg(args, int); if (flags & SIGN) |