lib: Fix '%X' formatting
This commit is contained in:
+8
-2
@@ -234,6 +234,12 @@ check_fmt:
|
||||
lutoa(va_arg(args, uint64_t), number, 16);
|
||||
break;
|
||||
}
|
||||
if (*fmt == 'X') {
|
||||
for (char* c = number; *c; c++) {
|
||||
if (*c >= 'a' && *c <= 'f')
|
||||
*c -= 'a' - 'A';
|
||||
}
|
||||
}
|
||||
print_num:
|
||||
const char* digits = number;
|
||||
char sign = 0;
|
||||
@@ -260,7 +266,7 @@ print_num:
|
||||
if (sign)
|
||||
callback(ctx, &sign, 1);
|
||||
if (write_prefix)
|
||||
callback(ctx, "0x", 2);
|
||||
callback(ctx, *fmt == 'X' ? "0X" : "0x", 2);
|
||||
print_pad(callback, ctx, '0', zeros);
|
||||
callback(ctx, digits, len);
|
||||
if (left_align)
|
||||
@@ -285,7 +291,7 @@ print_num:
|
||||
callback(ctx, number, len);
|
||||
|
||||
fmt++;
|
||||
written += len;
|
||||
written += offset + len;
|
||||
break;
|
||||
}
|
||||
// The number of characters written so far is stored in the pointed location.
|
||||
|
||||
Reference in New Issue
Block a user