diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-10-28 04:15:16 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-10-28 04:15:16 +0100 |
| commit | f6ee1462e26d723cf5d53157eadaff2804d18c3a (patch) | |
| tree | 366ba00a09afe4b7d21c55ee25fd98030b2cd5a5 /extract.c | |
| parent | feb71e200972bb78fe86130629ef040ef80811a7 (diff) | |
| download | ft_printf-f6ee1462e26d723cf5d53157eadaff2804d18c3a.tar.gz ft_printf-f6ee1462e26d723cf5d53157eadaff2804d18c3a.tar.bz2 ft_printf-f6ee1462e26d723cf5d53157eadaff2804d18c3a.zip | |
reformed pformat struct, rename t_flist
Diffstat (limited to 'extract.c')
| -rw-r--r-- | extract.c | 57 |
1 files changed, 8 insertions, 49 deletions
@@ -1,32 +1,9 @@ #include <stdlib.h> #include "header.h" -char *extract_ap_index(t_pformat *pformat, char *fmt) -{ - int i; - int tmp; - char *fmt_dup; - - if (!ft_isdigit(*fmt) || *fmt == '0') - return (fmt); - tmp = ft_atoi(fmt); - i = 0; - while (ft_isdigit(fmt[i])) - i++; - if (fmt[i] == '$') - { - pformat->ap_index = tmp; - fmt_dup = ft_strdup(&fmt[++i]); - free(fmt); - return (fmt_dup); - } - return (fmt); -} - char *extract_standalone_flags(t_pformat *pformat, char *fmt) { int i; - char *fmt_dup; i = 0; while (IS_STANDALONE_FLAG(fmt[i])) @@ -37,22 +14,18 @@ char *extract_standalone_flags(t_pformat *pformat, char *fmt) pformat->left_adjusted = fmt[i] == '-'; i++; } - fmt_dup = ft_strdup(&fmt[i]); - free(fmt); - return (fmt_dup); + return (fmt + i); } char *extract_min_width(t_pformat *pformat, char *fmt) { int i; int tmp; - char *fmt_dup; - i = 0; if (*fmt == '*') { - pformat->min_width.wildcard.exist = TRUE; + pformat->min_width.wildcard = TRUE; i++; } else @@ -62,33 +35,24 @@ char *extract_min_width(t_pformat *pformat, char *fmt) tmp = ft_atoi(&fmt[i]); while (ft_isdigit(fmt[i])) i++; - /* printf("%d\n", tmp); */ - if (fmt[i] == '$') - pformat->min_width.wildcard.ap_index = tmp; - else - { - pformat->min_width.value = tmp; - pformat->min_width.wildcard.exist = FALSE; - } + pformat->min_width.value = tmp; + pformat->min_width.wildcard = FALSE; } } - fmt_dup = ft_strdup(&fmt[i]); - free(fmt); - return (fmt_dup); + return (fmt + i); } char *extract_precision(t_pformat *pformat, char *fmt) { int i; int tmp; - char *fmt_dup; if (*fmt != '.') return (fmt); i = 1; if (fmt[i] == '*') { - pformat->precision.wildcard.exist = TRUE; + pformat->precision.wildcard = TRUE; i++; } else if (!ft_isdigit(fmt[i])) @@ -96,11 +60,6 @@ char *extract_precision(t_pformat *pformat, char *fmt) tmp = ft_atoi(&fmt[i]); while (ft_isdigit(fmt[i])) i++; - if (pformat->precision.wildcard.exist && fmt[i] == '$') - pformat->precision.wildcard.ap_index = tmp; - else - pformat->precision.value = tmp; - fmt_dup = ft_strdup(&fmt[i]); - free(fmt); - return (fmt); + pformat->precision.value = tmp; + return (fmt + i); } |
