Ejemplo n.º 1
0
void			free_shell(t_shell **shell)
{
    if (shell && *shell)
    {
        ft_memdel((void **)&(*shell)->prompt);
        ft_deltab(&((*shell)->envc));
        ft_deltab(&(*shell)->cmd);
        ft_deltab(&(*shell)->path);
        free_env(&(*shell)->env);
        ft_memdel((void **)shell);
    }
}
Ejemplo n.º 2
0
int			ft_ret_tab(t_main *all)
{
	int		count;
	t_list	*list;

	all->ret_tab = NULL;
	count = ft_count_selection(all);
	list = all->lst;
	all->ret_tab = (char **)malloc(sizeof(char *) * (count + 1));
	list = all->lst;
	count = 0;
	while (list)
	{
		if (list->select == 1)
		{
			all->ret_tab[count] = ft_strdup(list->value);
			count++;
		}
		list = list->next;
	}
	all->ret_tab[count] = NULL;
	ft_print_ret_tab(all->ret_tab);
	ft_deltab(all->ret_tab);
	return (-1);
}
Ejemplo n.º 3
0
int					re_init(t_shell *shell)
{
	char			*str;

	if (shell && shell->env)
	{
		ft_deltab(&(shell->envc));
		shell->envc = list_to_tab(shell->env);
		ft_memdel((void **)&(shell->prompt));
		if (!(shell->prompt = get_env(shell->env, "USER")))
			shell->prompt = ft_strdup("~>");
		ft_deltab(&shell->path);
		str = get_env(shell->env, "PATH");
		shell->path = ft_strsplit(str, ':');
		ft_memdel((void *)&str);
		return (1);
	}
	return (0);
}
Ejemplo n.º 4
0
t_env			*env_to_list(char **env)
{
	t_env		*list;
	char		**args;
	int			i;

	i = 0;
	list = NULL;
	while (env && env[i])
	{
		args = ft_strsplit(env[i], '=');
		list = add_env_list(list, args);
		ft_deltab(&args);
		i++;
	}
	return (list);
}