aboutsummaryrefslogtreecommitdiff
path: root/src/eval
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval')
-rw-r--r--src/eval/cmd.c4
-rw-r--r--src/eval/error.c56
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, &param, &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);
-}