static void launch_dir_lst(t_dlst *headdir, t_info *info) { t_dlst *it; t_node *tmp; if (!dlst_empty(headdir)) { sort_merge_lst(headdir, info); it = headdir->next; tmp = C_NODE(t_node, it); clear_head(&info->headfile); while (it != headdir) { tmp = C_NODE(t_node, it); if (!dlst_is_singular(headdir) || info->flush) { if (it != headdir->next) ft_printf("\n%s:\n", tmp->namtyp.d_name); else ft_printf("%s:\n", tmp->namtyp.d_name); } ft_get_dir(tmp->path, info); it = it->next; } } clear_head(headdir); }
static void ft_get_inside_dir(char *name, t_dir *dir, t_opt *options) { char *path; if (ft_strcmp(name, ".") && ft_strcmp(name, "..") && (*name != '.' || options->a || options->f)) { if (dir->name[ft_strlen(dir->name) - 1] == '/') path = ft_strjoin(dir->name, name); else { path = ft_strnew(ft_strlen(dir->name) + ft_strlen(name) + 2); path = ft_strcpy(path, dir->name); path = ft_strcat(path, "/"); path = ft_strcat(path, name); } options->ret = ft_get_dir(path, options); free(path); options->nb_dir++; } }