diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-10-30 23:35:40 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-10-30 23:35:40 +0100 |
| commit | d63d6916249f5b40b81097854d8ca2c9d4d7d071 (patch) | |
| tree | b98fe6a060fdb632d00ddf9385f6579a32619f38 /convert_int.c | |
| parent | 22f334a19cabebf10727d7894102946ba23d0e37 (diff) | |
| download | ft_printf-d63d6916249f5b40b81097854d8ca2c9d4d7d071.tar.gz ft_printf-d63d6916249f5b40b81097854d8ca2c9d4d7d071.tar.bz2 ft_printf-d63d6916249f5b40b81097854d8ca2c9d4d7d071.zip | |
Normed converters
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 |
