fix check args exit
This commit is contained in:
parent
ade8aef236
commit
211c35dacf
@ -3,10 +3,10 @@
|
||||
/* ::: :::::::: */
|
||||
/* exit.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: sadjigui <sadjigui@student.42.fr> +#+ +:+ +#+ */
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/04/15 11:23:32 by apommier #+# #+# */
|
||||
/* Updated: 2022/04/20 17:48:23 by sadjigui ### ########.fr */
|
||||
/* Created: 2022/04/20 17:53:35 by apommier #+# #+# */
|
||||
/* Updated: 2022/04/20 18:14:27 by apommier ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -43,18 +43,15 @@ int max_long(char *nbr)
|
||||
unsigned long long long_max;
|
||||
|
||||
long_max = 9223372036854775807;
|
||||
printf("%s\n", nbr);
|
||||
if (ft_strlen(nbr) > 20)
|
||||
return (1);
|
||||
if (nbr[0] == '-')
|
||||
{
|
||||
printf("--->%lld\n", ft_atoi_long(nbr));
|
||||
if (ft_atoi_long(nbr + 1) > long_max + 1)
|
||||
return (1);
|
||||
}
|
||||
else if (ft_atoi_long(nbr) > long_max)
|
||||
return (1);
|
||||
printf("return 0\n");
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -64,11 +61,8 @@ void exit_error(t_cmd *cmd)
|
||||
exit_shell(cmd, 2);
|
||||
}
|
||||
|
||||
void ft_exit(t_s_cmd *cmd)
|
||||
int check_exit_args(t_s_cmd *cmd)
|
||||
{
|
||||
int i;
|
||||
|
||||
i = -1;
|
||||
if (cmd->nb_args > 2)
|
||||
{
|
||||
ft_putstr_fd("Minishell: exit: too many arguments\n", 2);
|
||||
@ -76,14 +70,27 @@ void ft_exit(t_s_cmd *cmd)
|
||||
cmd->big_cmd->err_var = 1;
|
||||
else
|
||||
exit(1);
|
||||
return ;
|
||||
return (0);
|
||||
}
|
||||
return (1);
|
||||
}
|
||||
|
||||
void ft_exit(t_s_cmd *cmd)
|
||||
{
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
if (!check_exit_args(cmd))
|
||||
return ;
|
||||
else if (cmd->nb_args == 1)
|
||||
exit_shell(cmd->big_cmd, 0);
|
||||
while (cmd->args[1][++i])
|
||||
while (cmd->args[1][i] == ' ')
|
||||
i++;
|
||||
if (cmd->args[1][i] == '-')
|
||||
i++;
|
||||
while (cmd->args[1][i])
|
||||
{
|
||||
if ((!ft_isdigit(cmd->args[1][i]) && !(cmd->args[1][i] == '-'
|
||||
&& ft_isdigit(cmd->args[1][i + 1]))))
|
||||
if (!ft_isdigit(cmd->args[1][i++]))
|
||||
exit_error(cmd->big_cmd);
|
||||
}
|
||||
if (max_long(cmd->args[1]))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user