Esempio n. 1
0
void		ft_recursive(char *filename, t_args args, int *err)
{
	t_files		*files;
	t_files		*next;
	char		*chemin;
	char		*tmp;

	files = NULL;
	tmp = NULL;
	files = ft_readdirr(filename, args, err);
	ft_tri(files, args);
	ft_show_files(filename, files, args, *err);
	chemin = ft_strjoin(args.link[args.i], "/");
	tmp = ft_strjoin(filename, "/");
	free(chemin);
	next = files;
	args.rec++;
	while (files != NULL)
	{
		chemin = ft_strjoin(tmp, files->name);
		if (ft_dir_recursive(chemin, files->name))
			ft_recursive(chemin, args, err);
		free(chemin);
		files = files->next;
	}
	free(tmp);
	ft_free_list(next, args);
}
Esempio n. 2
0
int	main(int ac, char **av)
{
    t_args		args;
    t_files		*files;
    int			err;

    files = NULL;
    args.i = 0;
    err = 0;
    ft_check_args(ac, av, &args);
    ft_tri_links(&args);
    while (args.i < args.fns)
    {
        if (args.br)
            ft_recursive(args.link[args.i], args, &err);
        else
        {
            files = ft_readdirr(args.link[args.i], args, &err);
            ft_tri(files, args);
            ft_show_files(args.link[args.i], files, args, err);
            ft_free_list(files, args);
        }
        err = 0;
        args.i++;
    }
    ft_free_args(&args);
    return (0);
}
Esempio n. 3
0
void	ft_ls_dir(DIR *ls_dir, t_options *list, int nb, char *path)
{
	struct dirent	*entry;
	t_infos			*entry_list;
	int				i;
	char			*path_name;
	int				nb_blocks;

	i = -1;
	nb_blocks = 0;
	entry_list = (t_infos *)malloc((nb + 1) * sizeof(t_infos));
	while ((entry = readdir(ls_dir)) != NULL)
	{
		if (entry->d_name[0] != '.' || list[1].set == 1)
		{
			entry_list[++i].name = (char *)malloc(ft_strlen(entry->d_name) + 1);
			(void)ft_strcpy(entry_list[i].name, entry->d_name);
			if (list[2].set == 1 || list[4].set == 1)
			{
				path_name = ft_joinpath(path, entry->d_name);
				nb_blocks = ft_save_stats(entry_list, path_name, list, i);
			}
		}
	}
	ft_print_blocks(nb_blocks, list);
	ft_sort_entries(entry_list, i - 1, list, path);
	ft_recursive(path, list);
}
Esempio n. 4
0
static void		ft_sort_options_bis(t_lst *node, t_opt *opt, char *path, int i)
{
    if (opt->l && (!opt->r))
    {
        if (node->next != NULL)
            ft_display_total(&node, i);
        ft_display_l(node, i);
    }
    else if (node && opt->a && (!opt->r))
        ft_display_curr(node, i);
    else if (node && (!opt->a) && (!opt->r))
        ft_display_curr(node, i);
    if (node && opt->maj_r)
        ft_recursive(node, opt, path);
}
Esempio n. 5
0
int	main(int argc, char **argv)
{
	t_tetri tab[26];
	t_map	*map;
	int		coor[2];

	if (argc != 2)
		ft_usage();
	coor[0] = 10;
	coor[1] = 0;
	ft_check_and_parse(argv, tab, 'A', coor);
	map = ft_create_tab(tab);
	ft_recursive(map, tab);
	return (0);
}