Пример #1
0
int			check_builtins(t_cpe *cpe)
{
	check_cmd_path(cpe);
	if (ft_strcmp(CMD, "exit") == 0)
		return (exec_err(cpe));
	if (ft_strcmp(CMD, "echo") == 0)
		return (ft_echo(cpe) + 10);
	else if (ft_strcmp(CMD, "cd") == 0)
		return (ft_chdir(cpe));
	else if (ft_strcmp(CMD, "env") == 0)
		return (check_envi(cpe));
	else if (ft_strcmp(CMD, "setenv") == 0)
	{
		if (!PRM)
			return (print_arr(ENV) + 10);
		if (arr_size(PRM) > 2)
		{
			ft_putendl("setenv: Too many arguments");
			ft_putendl("usage: setenv [name[value]]");
			return (11);
		}
		return (ft_setenv(cpe) + 10);
	}
	else if (ft_strcmp(CMD, "unsetenv") == 0)
		return (ft_unsetenv(cpe) + 10);
	else
		return (-1);
}
Пример #2
0
void			ft_lcd(char *dir)
{
	char	*tmp;

	tmp = NULL;
	if (dir == NULL)
		ft_chdir(ft_getenv("HOME"));
	else if (*dir == '/')
		ft_chdir(dir);
	else if (ft_strcmp(dir, "-") == 0)
		ft_chdir(ston_old_pwd(NULL));
	else if (*dir == '~')
	{
		tmp = ft_strijoin(ft_getenv("HOME"), dir, 0);
		ft_chdir(tmp);
		ft_strdel(&tmp);
	}
	else
	{
		ft_chdir(dir);
		ft_strdel(&tmp);
	}
}