コード例 #1
0
ファイル: ft_env_2.c プロジェクト: v3t3a/42_projects
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;
		}
	}
}
コード例 #2
0
ファイル: c_builtins.c プロジェクト: adacher/sh1
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);
}