diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-06-23 09:09:17 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-06-23 10:31:27 +0200 |
| commit | 11b258841f4a15c514c49af7d378b51cd6a8ab79 (patch) | |
| tree | 0df3f625f49fc1a8ca0e74f81272120f07a35feb /src/builtin/exit.c | |
| parent | 58fc321ec43be4c3f7976769733116232361857a (diff) | |
| download | minishell-11b258841f4a15c514c49af7d378b51cd6a8ab79.tar.gz minishell-11b258841f4a15c514c49af7d378b51cd6a8ab79.tar.bz2 minishell-11b258841f4a15c514c49af7d378b51cd6a8ab79.zip | |
Fixing builtin which needed to not be run in a child process, Added exit builtin
Diffstat (limited to 'src/builtin/exit.c')
| -rw-r--r-- | src/builtin/exit.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/builtin/exit.c b/src/builtin/exit.c index 1e6ec45..aa5d10b 100644 --- a/src/builtin/exit.c +++ b/src/builtin/exit.c @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:10:16 by charles #+# #+# */ -/* Updated: 2020/04/01 17:10:17 by charles ### ########.fr */ +/* Updated: 2020/06/23 10:03:39 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,7 +19,28 @@ int builtin_exit(char **argv, t_env env) { - (void)argv; + int status; + (void)env; + if (argv[1] == NULL) + status = 0; + else if (argv[2] != NULL) + { + // replace with minishell error system + ft_putendl_fd("minishell: exit: too many arguments", STDERR_FILENO); + return 1; + } + else + { + errno = 0; + status = ft_atoi_strict(argv[1]); + if (errno != 0) + { + // replace with minishell error system + ft_putendl_fd("minishell: exit: ---argv[1]---: numeric argument required", STDERR_FILENO); + return 2; + } + } + exit(status % 256); return (0); } |
