コード例 #1
0
ファイル: env.c プロジェクト: Zethir/42sh
static int	deal_with_arg(t_shell *sh, char **arg, char **env_cpy)
{
	char	**res;
	char	*cmd;

	res = NULL;
	if (cmp_line(arg, env_cpy) == 0)
	{
		if (check_caract(*arg, '=') < 0)
			return (print_wrong_identifier_env(*arg));
		else if (check_caract(*arg, '=') != 1)
		{
			cmd = join_tab(arg);
			exec_env(sh, cmd, env_cpy);
			free(cmd);
			return (sh->return_val);
		}
		else if (check_caract(*arg, '=') == 1)
		{
			res = add_elem(env_cpy, *arg);
			ft_print_tab(res);
			ft_free_tab(res);
			return (0);
		}
	}
	ft_print_tab(env_cpy);
	return (0);
}
コード例 #2
0
ファイル: check_and_main.c プロジェクト: Kaikina/42
void			ft_free_tab(t_list **begin_list)
{
	int			size;
	char		**tab;
	int			i;

	size = ft_tab_len(begin_list);
	tab = ft_init_tab(size);
	i = 0;
	while (!ft_backtraking(begin_list, tab))
	{
		while (tab[i])
		{
			free(tab[i++]);
		}
		free(tab);
		size++;
		tab = ft_init_tab(size);
	}
	ft_print_tab(tab);
	i = 0;
	while (tab[i])
	{
		free(tab[i++]);
	}
	free(tab);
}
コード例 #3
0
ファイル: ft_print_comb2.c プロジェクト: papouliqu/subjects42
void	ft_print_comb2(void)
{
	char	tb[4];

	tb[0] = 0;
	tb[1] = 0;
	tb[2] = 0;
	tb[3] = 1;
	while (!((tb[0] == 9) && (tb[1] == 9)))
	{
		ft_print_tab(tb[0], tb[1], tb[2], tb[3]);
		tb[3]++;
		if ((tb[3] = tb[3] % 10) == 0)
		{
			tb[2] = (tb[2] + 1);
		}
		if (tb[2] == 10)
		{
			tb[2] = tb[0];
			tb[1]++;
			if ((tb[1] = tb[1] % 10) == 0)
			{
				tb[0]++;
			}
			tb[3] = tb[1] + 1;
		}
	}
}
コード例 #4
0
ファイル: push_swap_moove.c プロジェクト: dieuson/42-projects
static int		moove_aux(int **tab, t_docker *data)
{
    data->enum_moove = 0;
    if (data->len_a > 2 && data->last_a > tab[0][0]
            && (data->len_b > 2 && data->last_b < tab[1][0]))
        m_rr(data);
    else if (data->len_b > 2 && data->last_b < tab[1][0])
        m_rb(data);
    else if (data->len_a > 1 && data->last_a > tab[0][data->len_a - 2]
             && data->len_b > 1 && data->last_b < tab[1][data->len_b - 2])
        m_ss(data);
    else if (data->len_b > 1 && data->last_b < tab[1][data->len_b - 2])
        m_sb(data);
    else if (data->len_a > 2 && tab[0][0] < tab[0][1]
             && data->len_b > 2 && tab[1][0] > data->last_b)
        m_rrr(data);
    else if (data->len_b > 2 && tab[1][0] > data->last_b)
        m_rrb(data);
    if (data->enum_moove > 0)
    {
        print_moove(data);
        data->empty > 1 ? ft_print_tab(data->tab, data) : 0;
        return (1);
    }
    else
        return (0);
}
コード例 #5
0
ファイル: ft_tab.c プロジェクト: matt2905/Minishell
static void		ft_completion(t_data *d, char **result, char *name)
{
	int		save;

	if (!result)
		return ;
	if (ft_tablen(result) == 1)
		ft_tab_replace(d, result[0], name);
	else
	{
		if (ft_prefix_completion(d, result, name))
		{
			save = d->line->len;
			ft_print_tab(result);
			ft_putchar('\n');
			ft_prompt(0);
			ft_putstr(d->line->str);
			while (save > d->line->index)
			{
				tputs(tgetstr("le", NULL), 1, ft_int_putchar);
				save--;
			}
		}
	}
}
コード例 #6
0
ファイル: push_swap_moove.c プロジェクト: dieuson/42-projects
int				distrib(int **tab, t_docker *data)
{
    while (!(verif_tab(data->tab[0], data, data->len_a - 1)) || data->len_b)
    {
        if (!moove_aux(tab, data) && data->len_a > 1
                && data->last_a > tab[0][data->len_a - 2])
            m_sa(data);
        else if (data->len_a > 2 && data->last_a > tab[0][0])
            m_ra(data);
        else if (data->len_a > 2 && tab[0][0] < tab[0][1])
            m_rra(data);
        else if (data->len_b && verif_tab(data->tab[0], data, data->len_a - 1))
            m_pa(data);
        else if (data->len_a > 1
                 && !verif_tab(data->tab[0], data, data->len_a - 1))
            m_pb(data);
        data->empty < 4 ? print_moove(data) : 0;
        data->empty > 1 ? ft_print_tab(data->tab, data) : 0;
    }
    return (0);
}
コード例 #7
0
ファイル: the_main.c プロジェクト: slimane13/git42-hbeaujou
void	ft_ls(char **argv, int argc)
{
	t_option	*op;
	int			start;
	char		***tab;

	g_error1 = 0;
	g_error2 = 0;
	op = (t_option *)malloc(sizeof(t_option));
	ft_initoption(&op);
	if ((start = ft_start_after_option(argv, argc, op)) != -1)
	{
		if (argc >= 3)
		{
			if (ft_strcmp(argv[1], "-") == 0 && ft_strcmp(argv[2], "--") == 0 &&
					ft_strcmp(argv[3], "---") == 0)
				start = 1;
		}
		tab = ft_maketab_of_argv(argv + start, argc - start, op);
		ft_printf("");
		ft_print_tab(tab, op, ft_getnb_out(argv + start, argc - start, op));
	}
}
コード例 #8
0
ファイル: env_arg.c プロジェクト: Zethir/42sh
static int	check_u_opt(t_shell *sh, char **arg, char **env_cpy)
{
	char	*cmd;

	if (arg[0][0] == '-' && arg[0][1] == 'u' && !arg[0][2] && arg[1])
	{
		arg++;
		if (check_arg(env_cpy, *arg) == 0)
			return (print_error_opt(*arg));
		arg++;
		if (*arg)
		{
			cmd = join_tab(arg);
			exec_env(sh, cmd, env_cpy);
			free(cmd);
			return (sh->return_val);
		}
		else
			ft_print_tab(env_cpy);
		return (0);
	}
	else
		return (1);
}