X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flib%2Fstdio.c;h=bae257feb73da6bc4e64806feaaeca2488cbd76f;hb=f2e18d716109879cefc489049a0d8bef072bdd40;hp=034374d7aa9011b836890529523e372a64afebdf;hpb=5626572820d71c9af988aeb4326dd2c2ac6909ca;p=pintos-anon diff --git a/src/lib/stdio.c b/src/lib/stdio.c index 034374d..bae257f 100644 --- a/src/lib/stdio.c +++ b/src/lib/stdio.c @@ -200,6 +200,9 @@ __vprintf (const char *format, va_list args, case INT: value = va_arg (args, int); break; + case INTMAX: + value = va_arg (args, intmax_t); + break; case LONG: value = va_arg (args, long); break; @@ -241,6 +244,9 @@ __vprintf (const char *format, va_list args, case INT: value = va_arg (args, unsigned); break; + case INTMAX: + value = va_arg (args, uintmax_t); + break; case LONG: value = va_arg (args, unsigned long); break; @@ -486,8 +492,6 @@ format_integer (uintmax_t value, bool negative, const struct integer_base *b, If requested precision is 0, then a value of zero is rendered as a null string, otherwise as "0". */ precision = c->precision < 0 ? 1 : c->precision; - if (precision < 0) - precision = 1; while (cp - buf < precision && cp - buf < (int) sizeof buf - 8) *cp++ = '0'; @@ -556,9 +560,10 @@ __printf (const char *format, } /* Dumps the SIZE bytes in BUF to the console as hex bytes - arranged 16 per line, plus offsets listed starting at OFS for - the first byte in BU. If ASCII is true then the corresponding - ASCII characters are also rendered alongside. */ + arranged 16 per line. Numeric offsets are also included, + starting at OFS for the first byte in BUF. If ASCII is true + then the corresponding ASCII characters are also rendered + alongside. */ void hex_dump (uintptr_t ofs, const void *buf_, size_t size, bool ascii) {