diff options
Diffstat (limited to 'convert_int.c')
| -rw-r--r-- | convert_int.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/convert_int.c b/convert_int.c index ebc360a..34336d0 100644 --- a/convert_int.c +++ b/convert_int.c @@ -1,26 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* convert_int.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/30 23:29:53 by cacharle #+# #+# */ +/* Updated: 2019/10/30 23:32:21 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include <stdlib.h> #include <stdarg.h> +#include "libft.h" #include "header.h" char *convert_int(va_list ap, t_pformat *pformat) { - char *tmp; - int is_neg; - long long int n; + char *tmp; + int is_neg; + long long int n; + char *str; - if (pformat->flags & FLAG_SHORT) - n = va_arg(ap, int); - else if (pformat->flags & FLAG_SHORT_SHORT) - n = va_arg(ap, int); - else if (pformat->flags & FLAG_LONG) + if (pformat->flags & FLAG_LONG) n = va_arg(ap, long int); else if (pformat->flags & FLAG_LONG_LONG) n = va_arg(ap, long long int); else n = va_arg(ap, int); - is_neg = n < 0; - char *str = ITOA_DEC(n); + str = ITOA_DEC(n); if (is_neg) ft_strcpy(str, str + 1); str = handle_precision(pformat, str); @@ -28,15 +37,10 @@ char *convert_int(va_list ap, t_pformat *pformat) { if (is_neg || pformat->flags & (FLAG_SIGNED | FLAG_SPACE)) pformat->min_width--; - /* pformat->min_width--; */ str = handle_padding(pformat, str); } - /* str[ft_strlen(str)] = 0; */ if (is_neg) - { tmp = ft_strjoin("-", str); - /* printf("%s\n", str); */ - } else if (pformat->flags & (FLAG_SIGNED | FLAG_SPACE)) tmp = ft_strjoin(pformat->flags & FLAG_SPACE ? " " : "+", str); else |
