/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* minishell.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet # include # include # include # include # include # include # include # include # include # define DEBUG 0 typedef struct s_data { t_list **env; int exit_code; } t_data; int ft_syntatic_verif(const char *str); int ft_file_is_readable(const char *path); int ft_file_is_writable(const char *path); int ft_file_is_appendable(const char *path); char *ft_get_file_path(const char *infile); int ft_infile(char *line); int ft_outfile(char *line); int ft_heredoc(char *stop); int *ft_get_heredoc(); size_t ft_seglen_quoted(const char *str, char c); int ft_cmds_executor(t_data *data, t_list **cmds); char **ft_split_quoted(const char *s, char c); void ft_cmddel(void *content); void env_del(void *content); t_list **ft_parse_cmds(char *line, t_list **env, int infile, int outfile); int ft_cmd_filler(t_list *current, char **args, t_list **env); char *ft_normalizer(char *str); char *ft_env_filler(t_list **env, const char *str); char **env_to_strs(t_list **head); /* Environnement */ t_list **init_env(char **env); char **env_to_strs(t_list **head); int create_value_by_key(char *key, char *value, t_list **head); int create_value_by_key_dup(char *key, char *value, t_list **head); int set_value_by_key(char *key, char *value, t_list **head); char *get_value_by_key(char *key, t_list **head); int get_index(char *s, char c); void swap_env_3(void **a, void **b, void **c); void swap_env(void **a, void **b); void env_del(void *ptr); char **env_to_strs(t_list **head); char *get_value(char *str); char *get_key(char *str); int delete_by_key(char *key, t_list **head); int possible_key(char *key); /* Echo */ int echo(int fd, char **strs); /* PWD */ int pwd(int fd); char *get_pwd(int fd); /* Env */ int print_env(t_list **env, int fd); /* Export */ int export(t_list **env, char **args, int fd); /* CD */ int move_folder(char *path, int fd); /* Unset */ int unset(t_list **env, char **args, int fd); /* Exit */ int ft_exit(char **args, int fd); typedef struct s_cmd { int fd_in; int fd_out; char *executable; char **args; } t_cmd; typedef struct s_env { void *key; void *value; } t_env; #endif