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); }
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); }
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); }
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); }
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); }