aboutsummaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-10-13 13:55:07 +0200
committerCharles <sircharlesaze@gmail.com>2019-10-13 14:40:48 +0200
commitd744e75aea3145927a4e725eb95496499dc54630 (patch)
tree5a65c3c3de463e60b3f9de9f38ee73ea6b58b9d2 /parse.c
parent82981d4b0d04c0d52020a209c8322fa0eed012f7 (diff)
downloadft_printf-d744e75aea3145927a4e725eb95496499dc54630.tar.gz
ft_printf-d744e75aea3145927a4e725eb95496499dc54630.tar.bz2
ft_printf-d744e75aea3145927a4e725eb95496499dc54630.zip
Added precision and min field width wildcard
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/parse.c b/parse.c
index c61fb5c..3d1fb00 100644
--- a/parse.c
+++ b/parse.c
@@ -66,6 +66,12 @@ t_pformat *parse_conversion(char *conversion)
pformat->left_adjusted = *start == '-';
start++;
}
+ pformat->min_field_width_wildcard = FALSE;
+ if (*start == '*')
+ {
+ pformat->min_field_width_wildcard = TRUE;
+ start++;
+ }
if (ft_isdigit(*start))
{
pformat->min_field_width = ft_atoi(start);
@@ -75,12 +81,20 @@ t_pformat *parse_conversion(char *conversion)
else
pformat->min_field_width = -1;
pformat->precision = -1;
+ pformat->precision_wildcard = FALSE;
if (*start == '.')
{
start++;
- pformat->precision = ft_atoi(start);
- while (ft_isdigit(*start))
- start++;
+ /* printf("\n%s\n", start); */
+ if (*start == '*')
+ pformat->precision_wildcard = TRUE;
+ else
+ {
+ pformat->precision_wildcard = FALSE;
+ pformat->precision = ft_atoi(start);
+ while (ft_isdigit(*start))
+ start++;
+ }
}
return (pformat);
}