From: Lukas Jiriste Date: Sun, 21 Jul 2024 11:12:10 +0000 (+0200) Subject: Add check for unsuccessful execution X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=deb20d64c581a5251ba2ee410c229415d8c2de70;p=42%2Fminishell.git Add check for unsuccessful execution Add some checks inside ex_simple_command. --- diff --git a/src/execution.c b/src/execution.c index cb47adf..40ec8af 100644 --- a/src/execution.c +++ b/src/execution.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/21 08:57:54 by ljiriste #+# #+# */ -/* Updated: 2024/07/21 13:03:02 by ljiriste ### ########.fr */ +/* Updated: 2024/07/21 13:11:50 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,11 +17,13 @@ int ex_simple_command(t_parse_tree_node *simple_command, t_execution_env *env) t_vec redirections; t_vec assignments; char **fields; + int res; - save_redirections(&redirections, simple_command); - save_assignments(&assignments, simple_command); - fields = expand(simple_command, env, &redirections, &assignments); - if (!fields) + res = save_redirections(&redirections, simple_command); + res = res || save_assignments(&assignments, simple_command); + if (!res) + fields = expand(simple_command, env, &redirections, &assignments); + if (!fields || res) { ft_vec_free(&redirections, void_free_redirection); ft_vec_free(&assignments, void_free_assignments); @@ -31,13 +33,15 @@ int ex_simple_command(t_parse_tree_node *simple_command, t_execution_env *env) { save_assignments(&assignments, env); ex_redirections(&redirections); + ft_vec_free(&redirections, void_free_redirection); + ft_vec_free(&assignments, void_free_assignments); return (0); } - ex_fields(fields, &assignments, &redirections, env); + res = ex_fields(fields, &assignments, &redirections, env); ft_vec_free(&redirections, void_free_redirection); ft_vec_free(&assignments, void_free_assignments); free_fields(fields); - return (0); + return (res); } int subshell(t_parse_tree_node *program, const t_execution_env *env)