diff --git a/include/env.h b/include/env.h index 8983df2..1118564 100644 --- a/include/env.h +++ b/include/env.h @@ -6,7 +6,7 @@ /* By: mmoussou cmd, cmd->argv, env, env_t); } + +int exec_single_cmd_execution(t_cmd *cmd, char **env, t_env *env_t, t_exec exec) +{ + int fork_pid; + + if (is_in_builtins(cmd->cmd) > 0 && is_in_builtins(cmd->cmd) < 5) + __fork_single_cmd(cmd, env, env_t, exec); + if (is_in_builtins(cmd->cmd) > 0 && is_in_builtins(cmd->cmd) < 5) + return (0); + fork_pid = fork(); + if (!fork_pid) + { + __fork_single_cmd(cmd, env, env_t, exec); + free_exec(env_t, env); + exit(get_exit_code(-1)); + } + return (fork_pid); +} diff --git a/src/exec/exec_split_cmd.c b/src/exec/exec_split_cmd.c index 42eb18e..d61d859 100644 --- a/src/exec/exec_split_cmd.c +++ b/src/exec/exec_split_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou cmd); @@ -66,14 +65,8 @@ int exec_single_cmd(t_cmd *cmd, char **env, t_env *env_t, int pipe_fd[2]) return (-1); } free(input); - if (is_in_builtins(cmd->cmd) > 0) - exec_cmd(cmd->cmd, cmd->argv, env, env_t); - if (is_in_builtins(cmd->cmd) > 0) - return (0); - fork_pid = fork(); - if (!fork_pid) - __fork_single_cmd(cmd, env, env_t, exec); - return (fork_pid); + exec.status = exec_single_cmd_execution(cmd, env, env_t, exec); + return (exec.status); } t_exec exec_pipe_unforked(t_exec exec, t_list *list_cmd, t_env *env) diff --git a/src/parsing/check_error/run_checks.c b/src/parsing/check_error/run_checks.c index 7a1be7c..376b457 100644 --- a/src/parsing/check_error/run_checks.c +++ b/src/parsing/check_error/run_checks.c @@ -3,15 +3,16 @@ /* ::: :::::::: */ /* run_checks.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: mmoussou #include bool run_checks(char *rl)