diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-09-13 21:01:18 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-09-13 21:01:18 +0200 |
| commit | c51d31b8b751585153500729c25ae2f02d179e45 (patch) | |
| tree | eab34e14508f5a2a3ad2c5d06c56afdd7ba72e9e /src/eval/parenthesis.c | |
| parent | 490237aece240c05b5a9035665a88327e1be87ed (diff) | |
| download | minishell-c51d31b8b751585153500729c25ae2f02d179e45.tar.gz minishell-c51d31b8b751585153500729c25ae2f02d179e45.tar.bz2 minishell-c51d31b8b751585153500729c25ae2f02d179e45.zip | |
Refactoring eval file structure, Added comment to builtin
Diffstat (limited to 'src/eval/parenthesis.c')
| -rw-r--r-- | src/eval/parenthesis.c | 37 |
1 files changed, 37 insertions, 0 deletions
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 <me@cacharle.xyz> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* 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)); +} |
