aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/console/vtxprintf.c7
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)