From 1a60e91745db7db24cbd37d4ba718678213b2352 Mon Sep 17 00:00:00 2001 From: Nathan Singer Date: Fri, 30 May 2025 13:38:52 -0400 Subject: [PATCH] adds a touch more to printf for debugging purposes --- libc/stdio/printf.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/libc/stdio/printf.c b/libc/stdio/printf.c index 23c6cde..5cc3391 100644 --- a/libc/stdio/printf.c +++ b/libc/stdio/printf.c @@ -188,7 +188,7 @@ int printf(const char* restrict format, ...) { } else if (*format == '1') { format++; uint64_t i = (uint64_t) va_arg(parameters, uint64_t); - u64toa(i, buffer, 16); + u64toa(i, buffer, 10); size_t len = strlen(buffer); if (maxrem < len) { // TODO: Set errno to EOVERFLOW. @@ -198,6 +198,30 @@ int printf(const char* restrict format, ...) { return -1; written += len; } else if (*format == '2') { + format++; + uint64_t i = (uint64_t) va_arg(parameters, uint64_t); + u64toa(i, buffer, 16); + size_t len = strlen(buffer); + if (maxrem < len) { + // TODO: Set errno to EOVERFLOW. + return -1; + } + if (!print(buffer, len)) + return -1; + written += len; + } else if (*format == '3') { + format++; + int64_t i = (int64_t) va_arg(parameters, int64_t); + s64toa(i, buffer, 10); + size_t len = strlen(buffer); + if (maxrem < len) { + // TODO: Set errno to EOVERFLOW. + return -1; + } + if (!print(buffer, len)) + return -1; + written += len; + } else if (*format == '4') { format++; int64_t i = (int64_t) va_arg(parameters, int64_t); s64toa(i, buffer, 16);