summaryrefslogtreecommitdiff
path: root/src/console/vtxprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/console/vtxprintf.c')
-rw-r--r--src/console/vtxprintf.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/console/vtxprintf.c b/src/console/vtxprintf.c
index 043a1dae37..f42ed6d077 100644
--- a/src/console/vtxprintf.c
+++ b/src/console/vtxprintf.c
@@ -56,8 +56,10 @@ static int number(void (*tx_byte)(unsigned char byte, void *data),
int count = 0;
#ifdef SUPPORT_64BIT_INTS
unsigned long long num = inum;
+ long long snum = num;
#else
- unsigned long num = (long)inum;
+ unsigned long num = (unsigned long)inum;
+ long snum = (long)num;
if (num != inum) {
/* Alert user to an incorrect result by printing #^!. */
@@ -76,9 +78,9 @@ static int number(void (*tx_byte)(unsigned char byte, void *data),
c = (type & ZEROPAD) ? '0' : ' ';
sign = 0;
if (type & SIGN) {
- if ((signed long long)num < 0) {
+ if (snum < 0) {
sign = '-';
- num = -num;
+ num = -snum;
size--;
} else if (type & PLUS) {
sign = '+';