From 78788acf026b21b516fd981d321b0809c07de921 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Sun, 13 Feb 2022 18:47:21 +0000 Subject: bug when kprintf is fed a 0, it does nothing --- kc/core/kprint.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'kc') diff --git a/kc/core/kprint.c b/kc/core/kprint.c index 5a0fffd..8c2bf12 100644 --- a/kc/core/kprint.c +++ b/kc/core/kprint.c @@ -6,13 +6,11 @@ #include #include - __attribute__((optimize("O3"))) int kputchar(int c) { return serial_putchar(c); } - __attribute__((optimize("O3"))) int kputs(const char *s) { int count = 0; @@ -301,13 +299,14 @@ static char *convert_integer( // at the last byte of the string char *result = buffer + bufsz - 1; - // result >= buffer condition ensures we don't overflow + // result >= buffer condition ensures we don't underflow - while (value > 0 && result >= buffer) + do { *--result = stringdigits[value % base]; value /= base; - } + } + while (value > 0 && result >= buffer); return result; } -- cgit v1.3.1-1-g115d