Exemplo n.º 1
0
Arquivo: tools2.c Projeto: zhasni/SH1
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);
}
Exemplo n.º 2
0
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);
}