t_circ *my_fulfill_list(char **av) { int i; t_circ *root; i = 1; root = create_circ(); while (av[i]) add_elem_end(root, av[i++]); add_elem_end(root, NULL); // si a l'envers, add_elem_beg a la place de end. return (root); }
t_ctrl *fill_list(int argc, char **argv) { int i; t_ctrl *ctrl; i = 1; ctrl = init_control(); while (i < argc) add_elem_end(ctrl, argv[i++]); return (ctrl); }
static t_env *init_list_no_env(char **env) { t_env *ret; char *tmp; ret = NULL; if (!var_exist(env, "PATH=")) { tmp = get_path(); ret = add_elem_end(NULL, "PATH", tmp); free(tmp); } if (!var_exist(env, "PWD=") || !var_exist(env, "OLDPWD=")) { tmp = getcwd(NULL, 0); ret = add_elem_end(ret, "PWD", tmp); ret = add_elem_end(ret, "OLDPWD", tmp); free(tmp); } if (!var_exist(env, "HOME=")) ret = add_elem_end(ret, "HOME", "/"); if (!var_exist(env, "SHLVL=")) ret = add_elem_end(ret, "SHLVL", "0"); if (!var_exist(env, "TERM=")) ret = add_elem_end(ret, "TERM", "xterm-256color"); return (ret); }
static t_env *parse_line(t_env *ret, char *env) { char *ptr; char *s1; char *s2; ptr = ft_strchr(env, '='); if (!ptr) return (ret); s1 = ft_strsub(env, 0, ptr - env); s2 = ft_strsub(ptr, 1, ft_strlen(ptr) - 1); if (!s2) s2 = ft_strdup(""); ret = add_elem_end(ret, s1, s2); free(s1); free(s2); return (ret); }