From bd62939713678e2f94c7228dd4a81807e5618667 Mon Sep 17 00:00:00 2001 From: Neil McKechnie Date: Sat, 4 Feb 2023 20:55:14 +0000 Subject: [PATCH] Fix handling of hex numbers to avoid extending MSB (sign bit) Also, added format %X (unsigned long) to complement %x (unsigned int). --- StringFormatter.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/StringFormatter.cpp b/StringFormatter.cpp index cc78714..c1f20c4 100644 --- a/StringFormatter.cpp +++ b/StringFormatter.cpp @@ -108,7 +108,8 @@ void StringFormatter::send2(Print * stream,const FSH* format, va_list args) { case 'l': printPadded(stream,va_arg(args, long), formatWidth, formatLeft); break; case 'b': stream->print(va_arg(args, int), BIN); break; case 'o': stream->print(va_arg(args, int), OCT); break; - case 'x': stream->print(va_arg(args, int), HEX); break; + case 'x': stream->print((unsigned int)va_arg(args, unsigned int), HEX); break; + case 'X': stream->print((unsigned long)va_arg(args, unsigned long), HEX); break; //case 'f': stream->print(va_arg(args, double), 2); break; //format width prefix case '-':