#include "ft_printf_internal.h" int printf_u(struct printf_data* data, struct printf_format_params* format, va_list args) { return printfNumber(data, format, va_arg(args, unsigned int), 0, DEC_ALPHABET); } int printf_o(struct printf_data* data, struct printf_format_params* format, va_list args) { return printfNumber(data, format, va_arg(args, unsigned int), 0, OCT_ALPHABET); } int printf_X(struct printf_data* data, struct printf_format_params* format, va_list args) { return printfNumber(data, format, va_arg(args, unsigned int), 0, HEX_ALPHABET); } int printf_x(struct printf_data* data, struct printf_format_params* format, va_list args) { return printfNumber(data, format, va_arg(args, unsigned int), 0, HEx_ALPHABET); } int printf_p(struct printf_data* data, struct printf_format_params* format, va_list args) { int result; int oldFlags = format->flags; void* ptr = va_arg(args, void*); if (!ptr) return printfString(data, format, "(nil)"); format->flags |= PRINTF_FLAG_ALTERNATE_FORM; format->typeName = printf_x; result = printfNumber(data, format, (unsigned long long) ptr, 0, HEx_ALPHABET); format->typeName = printf_p; format->flags = oldFlags; return result; }