void free_shell(t_shell **shell) { if (shell && *shell) { ft_memdel((void **)&(*shell)->prompt); ft_deltab(&((*shell)->envc)); ft_deltab(&(*shell)->cmd); ft_deltab(&(*shell)->path); free_env(&(*shell)->env); ft_memdel((void **)shell); } }
int ft_ret_tab(t_main *all) { int count; t_list *list; all->ret_tab = NULL; count = ft_count_selection(all); list = all->lst; all->ret_tab = (char **)malloc(sizeof(char *) * (count + 1)); list = all->lst; count = 0; while (list) { if (list->select == 1) { all->ret_tab[count] = ft_strdup(list->value); count++; } list = list->next; } all->ret_tab[count] = NULL; ft_print_ret_tab(all->ret_tab); ft_deltab(all->ret_tab); return (-1); }
int re_init(t_shell *shell) { char *str; if (shell && shell->env) { ft_deltab(&(shell->envc)); shell->envc = list_to_tab(shell->env); ft_memdel((void **)&(shell->prompt)); if (!(shell->prompt = get_env(shell->env, "USER"))) shell->prompt = ft_strdup("~>"); ft_deltab(&shell->path); str = get_env(shell->env, "PATH"); shell->path = ft_strsplit(str, ':'); ft_memdel((void *)&str); return (1); } return (0); }
t_env *env_to_list(char **env) { t_env *list; char **args; int i; i = 0; list = NULL; while (env && env[i]) { args = ft_strsplit(env[i], '='); list = add_env_list(list, args); ft_deltab(&args); i++; } return (list); }