diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/ast.h | 17 | ||||
| -rw-r--r-- | include/eval.h | 22 | ||||
| -rw-r--r-- | include/minishell.h | 8 | ||||
| -rw-r--r-- | include/ms_glob.h | 32 | ||||
| -rw-r--r-- | include/utils.h | 31 |
5 files changed, 94 insertions, 16 deletions
diff --git a/include/ast.h b/include/ast.h index 0d14779..b725c8b 100644 --- a/include/ast.h +++ b/include/ast.h @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:38 by charles #+# #+# */ -/* Updated: 2020/04/01 17:52:43 by charles ### ########.fr */ +/* Updated: 2020/05/04 11:59:43 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,10 +25,10 @@ /* ** \brief Separator type -** \param SEP_END Regular command end `;` -** \param SEP_PIPE Pipe output of left to right `|` -** \param SEP_AND Execute right if left status == 0 `&&` -** \param SEP_OR Execute right if left status != 0 `||` +** \param SEP_END `;` Regular command end +** \param SEP_PIPE `|` Pipe output of left to right +** \param SEP_AND `&&` Execute right if left status == 0 +** \param SEP_OR `||` Execute right if left status != 0 */ typedef enum e_sep @@ -87,9 +87,8 @@ typedef enum e_ast_tag /* ** \brief AST node struct ** \param tag Node tag -** \param data Union containning possible node data -** \param data::cmd Command struct -** \param data::line Line struct +** \param cmd Command struct +** \param line Line struct */ typedef struct s_ast @@ -99,7 +98,7 @@ typedef struct s_ast { t_line line; t_cmd cmd; - } data; + } ; } t_ast; t_ast *ast_new(t_ast_tag tag, void *data); diff --git a/include/eval.h b/include/eval.h index 31f729b..fc149b2 100644 --- a/include/eval.h +++ b/include/eval.h @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:30 by charles #+# #+# */ -/* Updated: 2020/04/01 17:53:26 by charles ### ########.fr */ +/* Updated: 2020/05/04 11:58:16 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,8 +27,7 @@ typedef struct { - int pipe_in[2]; - int pipe_out[2]; + int p[2]; t_path path; t_env env; } t_eval_state; @@ -43,11 +42,26 @@ typedef struct s_eval_status int status; } t_eval_status; +typedef struct +{ + t_eval_state *state; + t_line *line; + int fd_in; + int fd_out; +} t_fork_param_line; + +typedef struct +{ + char *exec_path; + char **argv; + char **envp; +} t_fork_param_execve; + /* ** eval.c */ -int eval(t_eval_state *state, t_ast *ast); +int eval(int fd_in, int fd_out, t_eval_state *state, t_ast *ast); /* ** exec.c diff --git a/include/minishell.h b/include/minishell.h index ac00875..9551c1f 100644 --- a/include/minishell.h +++ b/include/minishell.h @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/26 15:33:51 by cacharle #+# #+# */ -/* Updated: 2020/04/01 22:13:47 by charles ### ########.fr */ +/* Updated: 2020/04/05 14:52:20 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,6 +34,7 @@ # include "libft_lst.h" # include "libft_util.h" # include "libft_vec.h" +# include "libft_dstr.h" /* ** \brief Value of pipe entry if closed @@ -70,6 +71,7 @@ t_path path_update(t_path path, char *path_var); t_env env_from_array(char **envp); char *env_search(t_env env, char *key); +char *env_search_first_match(t_env env, const char *haystack); /* ** builtin*.c - directory with all builtin commands @@ -104,9 +106,9 @@ int builtin_env(char **argv, t_env env); int builtin_exit(char **argv, t_env env); /* -** util.c - various utilitary functions +** preprocess.c */ -void ht_del_str_entry(t_ftht_entry *entry); +char *preprocess(char *input, t_env env); #endif diff --git a/include/ms_glob.h b/include/ms_glob.h new file mode 100644 index 0000000..774d3be --- /dev/null +++ b/include/ms_glob.h @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ms_glob.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/05 11:45:11 by charles #+# #+# */ +/* Updated: 2020/04/05 13:05:10 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef MS_GLOB_H +# define MS_GLOB_H + +# include <dirent.h> +# include <unistd.h> +# include <stddef.h> +# include "libft_str.h" +# include "libft_vec.h" +# include "utils.h" + +struct s_glob_param +{ + char *pattern; + t_ftvec *matches; +}; + +t_ftvec *glob_matches(char *pattern); +char *ms_glob(char *pattern); + +#endif diff --git a/include/utils.h b/include/utils.h new file mode 100644 index 0000000..6f2fbc9 --- /dev/null +++ b/include/utils.h @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* utils.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/05 12:05:49 by charles #+# #+# */ +/* Updated: 2020/04/05 14:51:38 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef UTILS_H +# define UTILS_H + +/* +** \file utils.h +** \brief Various utilitary functions +*/ + +typedef int (*t_directory_iter_func)(char*, struct dirent*, void*); + +int utils_directory_iter( + char *dirname, + void *param, + t_directory_iter_func f +); + +size_t utils_var_end(char *name); + +#endif |
