From b16d4b834d95d5cc0757d09e74fe6042e55f5440 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Thu, 10 Sep 2020 15:08:28 +0200 Subject: Added better error handling in eval --- src/main.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 17dee77..71d49bb 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/09/09 16:19:00 by charles ### ########.fr */ +/* Updated: 2020/09/10 14:33:22 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,7 +69,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 +104,9 @@ 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); + error_set_status(status); } else { @@ -134,9 +134,11 @@ 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 == ERR_FATAL) + exit(1); + error_set_status(status); print_prompt(); } if (ret != FTGL_EOF) @@ -145,5 +147,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); } -- cgit From 98990d5195e93154abbfd16eaa9d1fcc3572bc5c Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Thu, 10 Sep 2020 19:46:07 +0200 Subject: Added errorf_ret helper, Removing error to status (just status code and fatal error) --- src/main.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 71d49bb..e8275f5 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/09/10 14:33:22 by charles ### ########.fr */ +/* Updated: 2020/09/10 20:26:19 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,6 @@ void tok_lst_debug(t_tok_lst *tokens); ** TODO ** $? ** concurrent pipeline -** cmd variable preprocess ** signal on whole line instead of single command ** env local to current minishell process */ @@ -106,7 +105,10 @@ int main(int argc, char **argv, char **envp) /* ft_lstiter(parser_out->ast->redirs, token_debug); */ int fds[2] = {FD_NONE, FD_NONE}; int status = eval(fds, env, path, parser_out->ast); - error_set_status(status); + if (status == EVAL_FATAL) + exit(1); + g_last_status = status; + /* error_set_status(status); */ } else { @@ -136,9 +138,10 @@ int main(int argc, char **argv, char **envp) int fds[2] = {FD_NONE, FD_NONE}; int status = eval(fds, env, path, parser_out->ast); - if (status == ERR_FATAL) + if (status == EVAL_FATAL) exit(1); - error_set_status(status); + g_last_status = status; + /* error_set_status(status); */ print_prompt(); } if (ret != FTGL_EOF) -- cgit From 9446bb78646bef4e3449a59a9e01118b025402bf Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Fri, 11 Sep 2020 19:18:17 +0200 Subject: Removing command local variable --- src/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index e8275f5..5089a6f 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/09/10 20:26:19 by charles ### ########.fr */ +/* Updated: 2020/09/11 19:18:00 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,9 +29,9 @@ void tok_lst_debug(t_tok_lst *tokens); /* ** TODO ** $? +** pipe make 2 new children ** concurrent pipeline ** 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) -- cgit From 65006d0c14d3efa647b3c866ab54bdb1749fa31d Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sat, 12 Sep 2020 17:12:41 +0200 Subject: Added concurrent pipeline (not working with minishell_test for some obscure reason) --- src/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 5089a6f..62e1d2b 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/09/11 19:18:00 by charles ### ########.fr */ +/* Updated: 2020/09/12 17:04:06 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -108,7 +108,8 @@ int main(int argc, char **argv, char **envp) if (status == EVAL_FATAL) exit(1); g_last_status = status; - /* error_set_status(status); */ + exit(status); + return (0); } else { -- cgit