diff --git a/src/builtins/ft_exit.c b/src/builtins/ft_exit.c index 70c96f9..547adbe 100644 --- a/src/builtins/ft_exit.c +++ b/src/builtins/ft_exit.c @@ -3,31 +3,55 @@ /* ::: :::::::: */ /* ft_exit.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: mmoussou 2) -// exit -// while (*tmp) -// { -// -// tmp++; -// } - + int return_value; + + if (ac < 2) + exit(get_exit_code(-1)); + if (check_exit_value(argv[1])) + { + printf("minishell: exit: %s: numeric argument required\n", argv[1]); + exit(2); + } + else + { + if (ac > 2) + printf("minishell: exit: too many arguments\n"); + else + { + return_value = atoi(argv[1]); + if (return_value == -1) + return_value += 255; + exit(get_exit_code(return_value)); + } + } + get_exit_code(1); } diff --git a/src/exec/utils_exec.c b/src/exec/utils_exec.c index 60675f3..78b5d91 100644 --- a/src/exec/utils_exec.c +++ b/src/exec/utils_exec.c @@ -6,7 +6,7 @@ /* By: mmoussou