/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_print_ptr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/10/27 10:13:07 by narnaud #+# #+# */ /* Updated: 2021/12/21 09:50:41 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ #include "ft_printf.h" int ft_print_ptr(void *ptr, t_opts *opts) { char *raw; char *nbr; int ret; if (ptr == NULL) raw = ft_strdup("(nil)"); else { raw = ft_itox((unsigned long long int)ptr, "0123456789abcdef"); raw = ft_append(ft_strdup("0x"), raw); } nbr = ptr_opts_transform(raw, opts); opts->dot = 0; ret = ft_print_str(nbr, opts); free(raw); free(nbr); return (ret); } int va_print_ptr(va_list va_ptr, const char *str, t_opts *opts) { (void)*str; return (ft_print_ptr(va_arg(va_ptr, void *), opts)); }