From c51d31b8b751585153500729c25ae2f02d179e45 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sun, 13 Sep 2020 21:01:18 +0200 Subject: Refactoring eval file structure, Added comment to builtin --- src/eval/parenthesis.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/eval/parenthesis.c (limited to 'src/eval/parenthesis.c') diff --git a/src/eval/parenthesis.c b/src/eval/parenthesis.c new file mode 100644 index 0000000..8983378 --- /dev/null +++ b/src/eval/parenthesis.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parenthesis.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/09/13 20:38:29 by charles #+# #+# */ +/* Updated: 2020/09/13 20:40:19 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "eval.h" + +int wrapped_eval(void *void_param) +{ + t_fork_param_args *param; + + param = void_param; + return (eval(param->fds, param->env, param->path, param->ast, NULL)); +} + +int eval_parenthesis(int fds[2], t_env env, t_path path, t_ast *ast) +{ + int status; + t_fork_param_args param; + + if ((status = redir_extract(&ast->redirs, env, fds)) != 0) + return (status); + ast->tag ^= AST_PARENT; + param.fds[0] = fds[0]; + param.fds[1] = fds[1]; + param.env = env; + param.path = path; + param.ast = ast->parent_ast; + return (fork_wrap(fds, ¶m, wrapped_eval, NULL)); +} -- cgit