Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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++;
	}
}