diff --git a/Makefile b/Makefile index 154c80a..1e9a7cd 100644 --- a/Makefile +++ b/Makefile @@ -6,12 +6,12 @@ # By: tmaze +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2018/11/22 14:43:33 by tmaze #+# #+# # -# Updated: 2018/11/27 17:36:14 by tmaze ### ########.fr # +# Updated: 2018/11/28 14:55:43 by tmaze ### ########.fr # # # #******************************************************************************# CC := gcc -CCFLAGS := -Wall -Werror -Wextra +CCFLAGS := -Wall -Werror -Wextra -g CCSTD := NAME := minishell diff --git a/libft b/libft index 99ce0ff..2e35007 160000 --- a/libft +++ b/libft @@ -1 +1 @@ -Subproject commit 99ce0ff95663d888be3bdb3c29563fffe8158caf +Subproject commit 2e3500751ebc7b13fe478fd1d16ba3bde1000a08 diff --git a/srcs/exec.c b/srcs/exec.c index 7eae270..33a574c 100644 --- a/srcs/exec.c +++ b/srcs/exec.c @@ -6,7 +6,7 @@ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/11/27 15:32:29 by tmaze #+# #+# */ -/* Updated: 2018/11/27 16:36:48 by tmaze ### ########.fr */ +/* Updated: 2018/11/28 16:42:22 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,10 +17,9 @@ int exec_cmd(char **argv, char **env) { size_t i; - static t_builtin builtins[S_BIN] = {{"echo", &cmd_echo}}; + static t_builtin builtins[S_BIN] = {{"echo", &cmd_echo}, {"cd", &cmd_cd}}; - /* ,{"cd", &cmd_cd}, */ - /* {"setenv", &cmd_senv},{"unsetenv", &cmd_senv}, {"env", &cmd_env}}; */ + /*, {"setenv", &cmd_senv}, {"unsetenv", &cmd_senv}, {"env", &cmd_env}}; */ i = 0; while (i < S_BIN) diff --git a/srcs/main.c b/srcs/main.c index 5f1c698..d1859ef 100644 --- a/srcs/main.c +++ b/srcs/main.c @@ -6,7 +6,7 @@ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/11/18 13:09:55 by tmaze #+# #+# */ -/* Updated: 2018/11/27 17:52:17 by tmaze ### ########.fr */ +/* Updated: 2018/11/28 15:10:45 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,19 +35,55 @@ char **ft_strtabcpy(char **tab) return (ret); } +void ft_lstdelstr(void *content, size_t content_size) +{ + content_size = 0; + ft_strdel((void*)&content); +} + +t_list *ft_strtabtolst(char **tab) +{ + t_list *ret; + t_list *new; + size_t i; + + i = 0; + ret = NULL; + while (tab[i]) + { + if ((new = ft_lstnew(tab[i], ft_strlen(tab[i]))) == NULL) + { + ft_lstdel(&ret, &ft_lstdelstr); + return (NULL); + } + ft_lstaddend(&ret, new); + i++; + } + return (ret); +} + int main(void) { char *cmd; char **myenv; char **tab_cmd; + t_list *lst_env; int ret; extern char **environ; - + + lst_env = NULL; if ((myenv = ft_strtabcpy(environ)) == NULL) { ft_putendl("error alloc"); return (2); } + if ((lst_env = ft_strtabtolst(myenv)) == NULL) + { + ft_del_words_tables(&myenv); + ft_putendl("error alloc 2"); + return (2); + } + ft_del_words_tables(&myenv); while (1) { ret = 0; @@ -57,19 +93,19 @@ int main(void) ret = get_next_line(1, &cmd); if (ret == -1) { - ft_memdel((void*)&myenv); + ft_lstdel(&lst_env, &ft_lstdelstr); ft_strdel(&cmd); return (2); } if (ft_strcmp("exit", cmd) == 0) { - ft_memdel((void*)&myenv); + ft_lstdel(&lst_env, &ft_lstdelstr); ft_strdel(&cmd); return (0); } else if ((tab_cmd = ft_strsplit(cmd, ' ')) == NULL) { - ft_memdel((void*)&myenv); + ft_lstdel(&lst_env, &ft_lstdelstr); ft_strdel(&cmd); ft_putendl("error split"); return (2); @@ -83,6 +119,6 @@ int main(void) ft_del_words_tables(&tab_cmd); } } - ft_strdel((void*)&myenv); + ft_lstdel(&lst_env, &ft_lstdelstr); return (0); }