void ft_cd_slash(t_env *env, char *arg) { char *tmp2; tmp2 = NULL; tmp2 = getcwd(tmp2, MAXPATHLEN); if (access(arg, 0) == F_OK && chdir(arg) == 0) { if (ft_replace_line_env(env, "PWD", arg) == 0) ft_add_line(env, "PWD", arg); if (ft_replace_line_env(env, "OLDPWD", tmp2) == 0) ft_add_line(env, "OLDPWD", tmp2); env->oldpwd = tmp2; } else ft_error_cd(arg, 2); }
int ft_cd(char **tab) { if (ft_tablen((void **)tab) == 1) return (ft_cd_home()); else if (tab[1][0] == '~') return (ft_cd_tild(tab[1])); else if (tab[1][0] == '-') { if (tab[1][1] != '\0') return (st_check_option(&tab[1])); else return (ft_cd_least()); } else if (ft_tablen((void **)tab) > 2) return (ft_error_cd("cd", 4, NULL)); else return (ft_other_cd(tab[1], 0)); return (0); }