Пример #1
0
void	do_builtins(t_lst *list, char **cmd) //, char **paths)
{
	t_lst	*new_list;

	new_list = NULL;
	if (check_is_builtin(cmd[0]) == 1)
		do_cd(list, cmd);
	if (check_is_builtin(cmd[0]) == 2)
		do_setenv(list, cmd, 1);
	else if (check_is_builtin(cmd[0]) == 3)
		do_unsetenv(list, cmd);
	else if (check_is_builtin(cmd[0]) == 4)
		do_env(list, cmd); //, paths);
}
Пример #2
0
void			manage_unsetenv(t_lst *list, char **cmd, int len)
{
	if (len == 2)
	{
		ft_putendl_fd("env: option requires an argument -- u", 2);
		ft_putendl_fd("usage: env [-u name]", 2);
	}
	else if (len == 3)
	{
		do_unsetenv(list, cmd);
		do_print_env(list);
	}
	else if (len > 3)
		manage_multi_cmd(list, cmd);
}
Пример #3
0
static int	do_arg(t_lst *node, char *arg)
{
	int		i;
	char	**cmd;

	i = 0;
	cmd = ft_strsplit_ws(arg);
	if (!*cmd)
		return (-1);
	if (ft_strcmp(*cmd, "exit") == 0)
		i = do_exit(arg);
	else if (ft_strcmp(*cmd, "env") == 0)
		i = deal_with_env(node, arg);
	else if (ft_strcmp(*cmd, "setenv") == 0)
		i = do_setenv(node, arg);
	else if (ft_strcmp(*cmd, "unsetenv") == 0)
		i = do_unsetenv(node, arg);
	else if (ft_strcmp(*cmd, "cd") == 0)
		i = do_cd(node, arg);
	else if (*cmd)
		i = deal_with_command(node, cmd);
	ft_strdel(cmd);
	return (i);
}
Пример #4
0
void			builtin_unsetenv(t_env *env)
{
	const char	error[] = "unsetenv: Too few arguments.\n";
	char		*ptr;
	char		*name;

	ptr = env->line + sizeof("unsetenv") - 1;
	name = NULL;
	while (*ptr == ' ' || *ptr == '\t')
		++ptr;
	if (!*ptr)
		write(1, error, sizeof(error) - 1);
	else
	{
		while (*ptr)
		{
			do_unsetenv(env, ptr);
			while (*ptr && !(*ptr == ' ' || *ptr == '\t' || *ptr == '\n'))
				++ptr;
			while (*ptr == ' ' || *ptr == '\t' || *ptr == '\n')
				++ptr;
		}
	}
}