aboutsummaryrefslogtreecommitdiff
path: root/src/eval/operation.c
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-09-15 17:54:48 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-09-15 17:54:48 +0200
commitf626f2715ab696fdb326ed67256d012d86faef9f (patch)
treef25f2d95688a89c662622e3c2f11786f27689713 /src/eval/operation.c
parent170d0b74fa725196bca0fa549520d0d8bfa07576 (diff)
downloadminishell-f626f2715ab696fdb326ed67256d012d86faef9f.tar.gz
minishell-f626f2715ab696fdb326ed67256d012d86faef9f.tar.bz2
minishell-f626f2715ab696fdb326ed67256d012d86faef9f.zip
Refactoring env, Removing bloat from utils, exec and env
Diffstat (limited to 'src/eval/operation.c')
-rw-r--r--src/eval/operation.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/eval/operation.c b/src/eval/operation.c
index 8c80033..e2ce55b 100644
--- a/src/eval/operation.c
+++ b/src/eval/operation.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/06/17 15:27:22 by charles #+# #+# */
-/* Updated: 2020/09/14 19:39:16 by charles ### ########.fr */
+/* Updated: 2020/09/15 16:43:21 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -33,21 +33,21 @@ int eval_operation(int fds[2], t_env env, t_ast *ast)
pid_t right_pid;
eval(left_fds, env, ast->op.left, &left_pid);
close(p[FD_WRITE]);
- eval(right_fds, env, ast->op.right, &right_pid);
+ status = eval(right_fds, env, ast->op.right, &right_pid);
close(p[FD_READ]);
pid_t finished;
- finished = wait(NULL);
+ finished = wait(&finished);
if (finished == left_pid)
{
- waitpid(right_pid, &right_pid, 0);
+ waitpid(right_pid, &finished, 0);
}
else if (finished == right_pid)
{
- kill(left_pid, SIGKILL);
- /* waitpid(left_pid, &left_pid, 0); */
+ /* kill(left_pid, SIGTERM); // FIXME weird bug with parent on both sides */
+ waitpid(left_pid, &finished, 0);
}
- return (0);
+ return (status);
}
if ((status = eval(left_fds, env, ast->op.left, NULL)) == EVAL_FATAL)
return (EVAL_FATAL);