/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* libftprintf.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/18 15:26:06 by gbaconni #+# #+# */ /* Updated: 2022/04/29 14:45:30 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef LIBFTPRINTF_H # define LIBFTPRINTF_H # include "libft/libft.h" # include # include # include /* Constants */ # ifdef __APPLE__ # define NIL "0x0" # else # define NIL "(nil)" # endif # define SPECIFIERS "cspdiuxX%" # define HEXA_LOWER "0123456789abcdef" # define HEXA_UPPER "0123456789ABCDEF" /* Helper */ int ft_eoflags(const char *s); char *ft_strrev(char *s); char *ft_ltoa_base(long n, char *base); int ft_putchar(int c); int ft_puts(const char *s); char *ft_unescape(const char *str); /* Mandatory */ int ft_printf(const char *format, ...); int ft_vprintf(char const *format, va_list ap); int ft_va_char(const char *format, va_list ap); int ft_va_string(const char *format, va_list ap); int ft_va_pointer(const char *format, va_list ap); int ft_va_decimal(const char *format, va_list ap); int ft_va_hexadecimal(const char *format, va_list ap); int ft_va_percent(const char *format, va_list ap); int ft_va_escape(const char *format, va_list ap); int ft_va_other(const char *format, va_list ap); /* Bonus */ enum { F_HASH = 1 << 0, F_ZERO = 1 << 1, F_MINUS = 1 << 2, F_SPACE = 1 << 3, F_PLUS = 1 << 4 }; int ft_va_precision_bonus(const char *format, va_list ap); int ft_va_flags_bonus(const char *format, va_list ap); int ft_va_string_bonus(const char *format, va_list ap, char *s); int ft_va_decimal_bonus(const char *format, va_list ap, char *s); int ft_va_hexadecimal_bonus(const char *format, va_list ap, char *s); #endif