void ft_env_u(t_all *all) { char **env_dup; char **env_bak; char **arg_dup; env_bak = NULL; if (!ft_strcmp(all->ch_arg[1], "-u")) { if (!all->ch_arg[2]) disp_missing_arg(); else { arg_dup = str_array_dup(all->ch_arg, 3); env_dup = str_array_dup(all->envp, 0); cut_env(all, &env_dup); if (!all->ch_arg[3]) disp_env(env_dup); else manage_u(all, &env_bak, &env_dup, &arg_dup); (env_dup) ? free_string_array(&env_dup) : 0; (arg_dup) ? free_string_array(&arg_dup) : 0; (env_bak) ? free_string_array(&env_bak) : 0; } } }
void valid_builtin(t_init *init) { init->s = ft_strtrim(init->s); if (!(ft_strcmp(init->s, "env"))) disp_env(init->tmpenv); else if (!(ft_strncmp(init->s, "setenv", 6))) b_setenv(init); else if (!(ft_strncmp(init->s, "unsetenv", 8))) b_unsetenv(init); else if (!(ft_strncmp(init->s, "cd", 2))) change_dir(init->s, init->tmpenv); else if (!(ft_strcmp(init->s, "pwd"))) disp_pwd(init->tmpenv); else if (!(ft_strcmp(init->s, "exit"))) go_exit(init); else foork(init->tmpenv, init->s); }