aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authornass1pro <nass1pro@gmail.com>2020-09-13 09:17:35 +0200
committernass1pro <nass1pro@gmail.com>2020-09-13 09:17:35 +0200
commit935d1ed5ad3d20dd901a4c3cfbb8453626460f18 (patch)
tree247b7059873131f047337dd468ab00a3be2a9d41 /src/main.c
parent5146be239d6ab71db602ec7b6826b6484aa0f178 (diff)
parent65006d0c14d3efa647b3c866ab54bdb1749fa31d (diff)
downloadminishell-935d1ed5ad3d20dd901a4c3cfbb8453626460f18.tar.gz
minishell-935d1ed5ad3d20dd901a4c3cfbb8453626460f18.tar.bz2
minishell-935d1ed5ad3d20dd901a4c3cfbb8453626460f18.zip
Merge branch 'master' of https://github.com/ouaisbrefbams/minishell
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/main.c b/src/main.c
index 17dee77..62e1d2b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,7 +6,7 @@
/* By: cacharle <cacharle@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */
-/* Updated: 2020/09/09 16:19:00 by charles ### ########.fr */
+/* Updated: 2020/09/12 17:04:06 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -29,10 +29,9 @@ void tok_lst_debug(t_tok_lst *tokens);
/*
** TODO
** $?
+** pipe make 2 new children
** concurrent pipeline
-** cmd variable preprocess
** signal on whole line instead of single command
-** env local to current minishell process
*/
bool env_set_default(t_env env, char *key, char *value)
@@ -69,7 +68,7 @@ int main(int argc, char **argv, char **envp)
// }
// env_export(env, "_", env_exec_path);
- g_last_status_code = 0;
+ g_last_status = 0;
signal(SIGINT, signal_sigint);
signal(SIGQUIT, signal_sigquit);
signal(SIGTERM, signal_sigterm);
@@ -104,9 +103,13 @@ int main(int argc, char **argv, char **envp)
/* ft_lstiter(parser_out->ast->cmd_argv, token_debug); */
/* printf("===redirs===\n"); */
/* ft_lstiter(parser_out->ast->redirs, token_debug); */
- int fds[2] = {MS_NO_FD, MS_NO_FD};
- int eval_out = eval(fds, env, path, parser_out->ast);
- (void)eval_out;
+ int fds[2] = {FD_NONE, FD_NONE};
+ int status = eval(fds, env, path, parser_out->ast);
+ if (status == EVAL_FATAL)
+ exit(1);
+ g_last_status = status;
+ exit(status);
+ return (0);
}
else
{
@@ -134,9 +137,12 @@ int main(int argc, char **argv, char **envp)
continue;
}
- int fds[2] = {MS_NO_FD, MS_NO_FD};
- int eval_out = eval(fds, env, path, parser_out->ast);
- (void)eval_out;
+ int fds[2] = {FD_NONE, FD_NONE};
+ int status = eval(fds, env, path, parser_out->ast);
+ if (status == EVAL_FATAL)
+ exit(1);
+ g_last_status = status;
+ /* error_set_status(status); */
print_prompt();
}
if (ret != FTGL_EOF)
@@ -145,5 +151,5 @@ int main(int argc, char **argv, char **envp)
ft_htdestroy(path, free);
ft_vecdestroy(env, free);
- return (g_last_status_code);
+ return (g_last_status);
}