all flags setup, some fixes is needed
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/11/19 15:35:15 by dgaillet #+# #+# */
|
||||
/* Updated: 2025/11/19 19:09:25 by dgaillet ### ########lyon.fr */
|
||||
/* Updated: 2025/11/20 14:36:01 by dgaillet ### ########lyon.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -31,9 +31,36 @@ static int nb_to_skip(char *str)
|
||||
return (1 + next_not_digit(&str[1]));
|
||||
else if (*str == '.')
|
||||
return (1 + next_not_digit(&str[1]));
|
||||
else if (*str == ' ')
|
||||
return (1 + next_not_digit(&str[1]));
|
||||
return (1);
|
||||
}
|
||||
|
||||
static void ft_parse_str(t_arg *arg, char *str, char main_arg)
|
||||
{
|
||||
if (*str != '0' && ft_isdigit(*str))
|
||||
{
|
||||
arg->padding = ft_atoi(str);
|
||||
str += nb_to_skip(str);
|
||||
}
|
||||
while (*str != main_arg)
|
||||
{
|
||||
if (*str == '-')
|
||||
arg->minus = ft_atoi(&str[1]);
|
||||
else if (*str == '0')
|
||||
arg->zero = ft_atoi(&str[1]);
|
||||
else if (*str == '.')
|
||||
arg->dot = ft_atoi(&str[1]);
|
||||
else if (*str == '#')
|
||||
arg->hash = 1;
|
||||
else if (*str == ' ')
|
||||
arg->space = ft_atoi(&str[1]);
|
||||
else if (*str == '+')
|
||||
arg->plus = 1;
|
||||
str += nb_to_skip(str);
|
||||
}
|
||||
}
|
||||
|
||||
t_arg *ft_parsing(char *str)
|
||||
{
|
||||
t_arg *arg;
|
||||
@@ -44,21 +71,6 @@ t_arg *ft_parsing(char *str)
|
||||
if (!arg)
|
||||
return (0);
|
||||
arg->arg = main_arg;
|
||||
while (*str != main_arg)
|
||||
{
|
||||
if (*str == '-')
|
||||
arg->minus = ft_atoi(&str[1]);
|
||||
else if (*str == '0')
|
||||
arg->zero = ft_atoi(&str[1]);
|
||||
else if (*str == '.')
|
||||
arg->dot = ft_atoi(&str[1]);
|
||||
else if (*str == '#')
|
||||
arg->hash = 1;
|
||||
else if (*str == ' ')
|
||||
arg->space = 1;
|
||||
else if (*str == '+')
|
||||
arg->zero = 1;
|
||||
str += nb_to_skip(str);
|
||||
}
|
||||
ft_parse_str(arg, str, main_arg);
|
||||
return (arg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user