diff --git a/printf.c b/printf.c index 7f4ee74..5623742 100644 --- a/printf.c +++ b/printf.c @@ -67,9 +67,15 @@ int fmt(char c, va_list args) case 'd': return (_puts(_itoa(va_arg(args, int), 10))); case 'i': - return (_puts(_itoa(va_arg(args, int), 10))); + return (_puts(_itoa(va_arg(args, unsigned int), 10))); + case 'u': + return (_puts(_uitoa(va_arg(args, unsigned int), 10))); case 'b': - return (_puts(_itoa(va_arg(args, int), 2))); + return (_puts(_uitoa(va_arg(args, unsigned int), 2))); + case 'o': + return (_puts(_uitoa(va_arg(args, unsigned int), 8))); + case 'x': + return (_puts(_uitoa(va_arg(args, unsigned int), 16))); default: _putchar('%'); /* TODO make this cleaner */ _putchar(c);