Merge branch 'main' of git.chauvet.pro:starnakin/42_KFS

This commit is contained in:
2024-09-20 12:41:25 +02:00
4 changed files with 46 additions and 20 deletions

View File

@ -1,7 +1,11 @@
#include "base.h"
#include "ctype.h"
#include "terminal.h"
#include <stdarg.h>
#include <stdint.h>
int print_int_base(int32_t number, const char *prefix, const char *base);
static int get_level(const char *str)
{
@ -16,13 +20,19 @@ static int print_flag(char flag, va_list *ap)
case '%':
return terminal_putchar('%');
case 'i':
return terminal_writelong(va_arg(*ap, int));
return print_int_base(va_arg(*ap, int), NULL, BASE_DECA);
case 'd':
return terminal_writelong(va_arg(*ap, int));
return print_int_base(va_arg(*ap, int), NULL, BASE_DECA);
case 'c':
return terminal_putchar(va_arg(*ap, int));
case 's':
return terminal_writestring(va_arg(*ap, char *));
case 'p':
return print_int_base(va_arg(*ap, int), "0x", BASE_HEXA);
case 'x':
return print_int_base(va_arg(*ap, int), "0x", BASE_HEXA);
case 'u':
return print_int_base(va_arg(*ap, uint32_t), NULL, BASE_DECA);
}
return 0;
}