From 02344fc38e2375102a913685c21acc35141c2cb0 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Fri, 15 Mar 2024 13:02:59 +0100 Subject: Add error handling --- src/ft_printhex.c | 51 ++++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 27 deletions(-) (limited to 'src/ft_printhex.c') diff --git a/src/ft_printhex.c b/src/ft_printhex.c index e96b322..d65de1c 100644 --- a/src/ft_printhex.c +++ b/src/ft_printhex.c @@ -6,42 +6,39 @@ /* By: dkaiser 15) + printhex_rec(nbr / 16, fmt, len); + if (*len < 0) + return ; + success = write(1, &c, 1); + if (success < 0) + *len = -1; + else + (*len)++; } -static void printhex_rec(unsigned int nbr, char fmt) +int ft_printhex(unsigned int nbr, char fmt) { - char c; + int len; - if (nbr % 16 < 10) - c = '0' + (nbr % 16); - else - c = fmt - 35 + (nbr % 16); - if (nbr > 15) - printhex_rec(nbr, fmt); - write(1, &c, 1); -} - -int ft_printhex(unsigned int nbr, char fmt) -{ - printhex_rec(nbr, fmt); - return get_len(nbr); + len = 0; + printhex_rec(nbr, fmt, &len); + return (len); } -- cgit v1.2.3