From b16d4b834d95d5cc0757d09e74fe6042e55f5440 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Thu, 10 Sep 2020 15:08:28 +0200 Subject: Added better error handling in eval --- include/eval.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include/eval.h') diff --git a/include/eval.h b/include/eval.h index a23b249..7139f34 100644 --- a/include/eval.h +++ b/include/eval.h @@ -6,7 +6,7 @@ /* By: charles +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:30 by charles #+# #+# */ -/* Updated: 2020/09/09 17:27:21 by charles ### ########.fr */ +/* Updated: 2020/09/10 14:14:56 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,9 +39,9 @@ typedef struct t_builtin_entry *builtin; } t_fork_param_cmd; -# define MS_NO_FD -2 -# define FDS_WRITE 1 -# define FDS_READ 0 +# define FD_NONE -2 +# define FD_WRITE 1 +# define FD_READ 0 extern pid_t g_child_pid; @@ -64,7 +64,7 @@ t_ftlst *split_token(t_ftlst **lst, enum e_tok); ** redir.c */ -bool redir_extract(t_tok_lst **redirs, t_env env, int fds[2]); +int redir_extract(t_tok_lst **redirs, t_env env, int fds[2]); /* ** exec.c -- cgit From 9446bb78646bef4e3449a59a9e01118b025402bf Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Fri, 11 Sep 2020 19:18:17 +0200 Subject: Removing command local variable --- include/eval.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'include/eval.h') diff --git a/include/eval.h b/include/eval.h index 7139f34..b799c26 100644 --- a/include/eval.h +++ b/include/eval.h @@ -6,7 +6,7 @@ /* By: charles +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:30 by charles #+# #+# */ -/* Updated: 2020/09/10 14:14:56 by charles ### ########.fr */ +/* Updated: 2020/09/11 19:10:30 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,7 +35,6 @@ typedef struct char *exec_path; char **argv; t_env env; - t_env env_local; t_builtin_entry *builtin; } t_fork_param_cmd; @@ -74,10 +73,4 @@ bool exec_is_path(char *exec_name); bool exec_is_valid(char *exec_path); char *exec_search_path(t_path path, char *path_var, char *exec_name); -/* -** variable.c -*/ - -bool variable_extract(t_tok_lst **argv, t_env env, t_env env_local); - #endif -- cgit From 65006d0c14d3efa647b3c866ab54bdb1749fa31d Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sat, 12 Sep 2020 17:12:41 +0200 Subject: Added concurrent pipeline (not working with minishell_test for some obscure reason) --- include/eval.h | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'include/eval.h') diff --git a/include/eval.h b/include/eval.h index b799c26..89f05ef 100644 --- a/include/eval.h +++ b/include/eval.h @@ -6,7 +6,7 @@ /* By: charles +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:30 by charles #+# #+# */ -/* Updated: 2020/09/11 19:10:30 by charles ### ########.fr */ +/* Updated: 2020/09/12 12:28:36 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,11 +24,11 @@ typedef struct { - t_path path; - t_env env; - t_ast *ast; - int fds[2]; -} t_fork_param_parent; + t_path path; + t_env env; + t_ast *ast; + int fds[2]; +} t_fork_param_args; typedef struct { @@ -42,35 +42,36 @@ typedef struct # define FD_WRITE 1 # define FD_READ 0 -extern pid_t g_child_pid; +extern pid_t g_child_pid; /* ** op.c */ -int eval_op(int fds[2], t_env env, t_path path, t_ast *ast); -int eval(int fds[2], t_env env, t_path path, t_ast *ast); +int eval_op(int fds[2], t_env env, t_path path, t_ast *ast); +int eval(int fds[2], t_env env, t_path path, t_ast *ast); +int eval_forked(int fds[2], t_env env, t_path path, t_ast *ast, pid_t *child_pid); /* ** cmd.c */ -int fork_wrap(int fds[2], void *passed, int (*wrapped)(void *param)); -int eval_cmd(int fds[2], t_env env, t_path path, t_ast *ast); -t_ftlst *split_token(t_ftlst **lst, enum e_tok); +int fork_wrap(int fds[2], void *passed, int (*wrapped)(void *param), pid_t *child_pid); +int fork_wrap_wait(int fds[2], void *passed, int (*wrapped)(void *param)); +int eval_cmd(int fds[2], t_env env, t_path path, t_ast *ast); /* ** redir.c */ -int redir_extract(t_tok_lst **redirs, t_env env, int fds[2]); +int redir_extract(t_tok_lst **redirs, t_env env, int fds[2]); /* ** exec.c */ -bool exec_is_path(char *exec_name); -bool exec_is_valid(char *exec_path); -char *exec_search_path(t_path path, char *path_var, char *exec_name); +bool exec_is_path(char *exec_name); +bool exec_is_valid(char *exec_path); +char *exec_search_path(t_path path, char *path_var, char *exec_name); #endif -- cgit