/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* minishell_structs.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: lperrey +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/10/08 02:35:52 by lperrey #+# #+# */ /* Updated: 2021/10/30 13:31:07 by lperrey ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef MINISHELL_STRUCTS_H # define MINISHELL_STRUCTS_H struct s_all *g_all; enum e_token_id { T_TOKEN = 0, T_LESS = '<', T_GREAT = '>', T_PIPE = '|', T_DLESS, T_DGREAT, T_WORD }; // T_DLESS == '<<' // T_DGREAT == '>>' typedef struct s_token { char *content; struct s_token *next; enum e_token_id id; } t_token; typedef int (*t_builtin_ptr)(int,char **,struct s_all *); typedef struct s_cmd { char **argv; pid_t pid; t_builtin_ptr *builtin_command; int fd_in; int fd_out; } t_cmd; typedef struct s_all { t_cmd **cmd_arr; char **envp; char *prompt_base; char *prompt; t_token *token_list; int last_exit_status; struct termios ori_termios; struct termios interactive_termios; int termios_changed; struct sigaction ori_signal_behaviour; struct sigaction signal_behaviour; } t_all; #endif