diff --git a/Makefile b/Makefile index b021576..e6be3c7 100644 --- a/Makefile +++ b/Makefile @@ -3,10 +3,10 @@ # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # -# By: apommier +#+ +:+ +#+ # +# By: sadjigui +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2022/03/06 12:50:24 by apommier #+# #+# # -# Updated: 2022/04/20 16:58:56 by apommier ### ########.fr # +# Updated: 2022/04/20 17:39:51 by sadjigui ### ########.fr # # # # **************************************************************************** # @@ -26,7 +26,7 @@ SRCS = srcs/main.c\ srcs/set_redirection/set_output.c\ srcs/built_in/unset.c\ srcs/built_in/cd.c\ - srcs/built_in/cd_erreur.c\ + srcs/built_in/cd_utils.c\ srcs/built_in/echo.c\ srcs/built_in/export.c\ srcs/built_in/utils_builtin.c\ diff --git a/srcs/built_in/exit.c b/srcs/built_in/exit.c index 481f3aa..ef0df9a 100644 --- a/srcs/built_in/exit.c +++ b/srcs/built_in/exit.c @@ -3,23 +3,56 @@ /* ::: :::::::: */ /* exit.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: sadjigui +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/04/15 11:23:32 by apommier #+# #+# */ -/* Updated: 2022/04/19 16:09:57 by apommier ### ########.fr */ +/* Updated: 2022/04/20 17:48:23 by sadjigui ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../includes/minishell.h" +unsigned long long ft_atoi_long(const char *nptr) +{ + int i; + unsigned long long nbr; + unsigned long long minus; + + minus = 1; + nbr = 0; + i = 0; + while ((nptr[i] >= 9 && nptr[i] <= 13) || nptr[i] == 32) + i++; + if (nptr[i] == '+') + i++; + else if (nptr[i] == '-') + { + i++; + minus = -1; + } + while (nptr[i] >= '0' && nptr[i] <= '9') + { + nbr = nbr * 10 + nptr[i] - '0'; + i++; + } + return (minus * nbr); +} + int max_long(char *nbr) { + unsigned long long long_max; + + long_max = 9223372036854775807; printf("%s\n", nbr); - if (ft_strlen(nbr) > 19) + if (ft_strlen(nbr) > 20) return (1); - if (ft_atoi(nbr) > 9223372036854775800 && nbr[ft_strlen(nbr) - 1] > '7') - return (1); - if (ft_atoi(nbr) < -9223372036854775800 && nbr[ft_strlen(nbr) - 1] > '8') + 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);