diff options
Diffstat (limited to 'src/eval')
| -rw-r--r-- | src/eval/cmd.c | 4 | ||||
| -rw-r--r-- | src/eval/error.c | 56 |
2 files changed, 3 insertions, 57 deletions
diff --git a/src/eval/cmd.c b/src/eval/cmd.c index fc73ed0..e79cb88 100644 --- a/src/eval/cmd.c +++ b/src/eval/cmd.c @@ -6,13 +6,14 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/06/14 10:41:31 by charles #+# #+# */ -/* Updated: 2020/07/13 09:54:12 by charles ### ########.fr */ +/* Updated: 2020/07/13 11:03:09 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "eval.h" pid_t g_child_pid = -1; +int g_last_status_code = 0; /* ** \brief Wrap a function in a fork @@ -97,6 +98,7 @@ int eval_cmd(int fds[2], t_env env, t_path path, t_ast *ast) param.argv = argv; param.env = env; int ret = fork_wrap(fds, ¶m, &forked_cmd); + g_last_status_code = ret; ft_split_destroy(argv); return (ret); } diff --git a/src/eval/error.c b/src/eval/error.c deleted file mode 100644 index 016a751..0000000 --- a/src/eval/error.c +++ /dev/null @@ -1,56 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* error.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/06/14 11:02:52 by charles #+# #+# */ -/* Updated: 2020/06/14 12:19:14 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "eval.h" - -static t_error g_errors[] = -{ - {ERROR_AMBIGUOUS_REDIR, 1, "ambiguous redirect"}, - {ERROR_OPEN, 1, NULL}, - {ERROR_CMD_NOT_FOUND, 127, "command not found"}, - {ERROR_SYNTAX, 2, "syntax error near unexpected token "}, -}; - -t_error *st_error_get(enum e_error id) -{ - size_t i; - t_error *match; - - match = NULL; - i = 0; - while (i < sizeof(g_errors) / sizeof(t_error)) - { - if (g_errors[i].id == id) - match = &g_errors[i]; - i++; - } - return (match); -} - -void error_eval_put(enum e_error id, char *unexpected) -{ - t_error *err; - - err = st_error_get(id); - ft_putstr_fd("minishell: ", STDERR_FILENO); - ft_putstr_fd(unexpected, STDERR_FILENO); - ft_putstr_fd(": ", STDERR_FILENO); - if (err->msg == NULL) - ft_putendl_fd(strerror(errno), STDERR_FILENO); - else - ft_putendl_fd(err->msg, STDERR_FILENO); -} - -int error_status(enum e_error id) -{ - return (st_error_get(id)->status); -} |
