From 891a43dbbbdcca78ce28b436d8c1fba9125e3bc1 Mon Sep 17 00:00:00 2001 From: yosyo Date: Mon, 15 Jul 2024 15:16:08 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat(builtins/ft?= =?UTF-8?q?=5Fexit):=20ft=5Fexit=20is=20there=20!=20:D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/ft_exit.c | 60 +++++++++++++++++++++++++++++------------- src/exec/utils_exec.c | 6 ++--- 2 files changed, 45 insertions(+), 21 deletions(-) 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