Exemplo n.º 1
0
void			ls_list_dir_cont(char *name, t_lst *dcontent, t_lst *subdirs,
							t_lsargs *args)
{
	t_lst	*el;
	t_uint	sub_count;

	if ((name[0] != '.' || HCK2 || args->ndirs) || HCK)
	{
		if (args->flags & FLAG_l && dcontent)
			ls_l_tblock(dcontent);
		ls_display_cont(dcontent, args);
	}
	if (args->flags & FLAG_R)
	{
		if (subdirs && ((name[0] != '.' || !ft_strcmp(name, ".")) || HCK))
			ft_putchar('\n');
		if (args->flags & FLAG_r)
			ft_lstrev(&subdirs);
		while ((el = ft_lstpop(&subdirs)) != NULL)
		{
			if (((t_lsentry*)el->data)->name[0] != '.' || HCK)
				HCKLOL;
			sub_count = ls_list_dir((t_lsentry*)el->data, args);
			if ((el->next || (el->next && sub_count)) && FTDODO)
				ft_putchar('\n');
			ft_lstdelone(&el, ls_del_ent);
		}
	}
}
Exemplo n.º 2
0
Arquivo: main.c Projeto: z0mbie42/42
void	ls_process_files(t_lsargs *args)
{
	t_lst		*elem;
	t_l_form	forml;

	ls_l_form_init(&forml);
	if (args->flags & FLAG_l)
		ls_l_count(args->files, &forml, NULL);
	while ((elem = ft_lstpop(&(args->files))) != NULL)
	{
		if (((t_lsentry*)elem->data)->name[0] == '.' && !(args->flags & FLAG_a))
			continue ;
		if (args->flags & FLAG_l)
			ls_pinfos((t_lsentry*)elem->data, &forml);
		if (ft_strcountc(((t_lsentry*)elem->data)->path, '/') >= 1)
			ls_ppath((t_lsentry*)elem->data);
		else
			ls_pname((t_lsentry*)elem->data);
		if (S_ISLNK(((t_lsentry*)elem->data)->infos.st_mode)
			&& args->flags & FLAG_l)
			ls_l_plink(((t_lsentry*)elem->data)->path);
		ft_putchar('\n');
		ft_lstdelone(&elem, ls_del_ent);
	}
}
Exemplo n.º 3
0
void	ft_lstpushpop(t_list **a, t_list **b)
{
	t_list	*temp;

	if (*a)
	{
		temp = ft_lstpop(a);
		if (temp != NULL)
			ft_lstpush(b, temp);
	}
}
Exemplo n.º 4
0
Arquivo: main.c Projeto: z0mbie42/42
void	ls_process_args(t_lsargs *args)
{
	t_lst	*elem;

	elem = NULL;
	while ((elem = ft_lstpop(&(args->unk))) != NULL)
		ls_error((char*)elem->data, FALSE);
	if (args->nfiles)
		ls_process_files(args);
	if (args->ndirs)
	{
		if (args->nfiles)
			ft_putchar('\n');
		ls_process_dirs(args);
	}
}
Exemplo n.º 5
0
void			ls_process_dirs(t_lsargs *args)
{
	t_lst	*elem;

	elem = NULL;
	while ((elem = ft_lstpop(&args->dirs)))
	{
		if (args->ndirs > 1 || args->nfiles || args->nunk)
		{
			ft_putstr(((t_lsentry*)elem->data)->path);
			ft_putchar(':');
			ft_putchar('\n');
		}
		ls_list_dir((t_lsentry*)elem->data, args);
		if (elem->next)
			ft_putchar('\n');
		ft_lstdelone(&elem, NULL);
	}
}
Exemplo n.º 6
0
void			ls_display_cont(t_lst *list, t_lsargs *args)
{
	t_lst		*el;
	t_l_form	form;

	ls_l_form_init(&form);
	if (args->flags & FLAG_l)
		ls_l_count(list, &form, NULL);
	if (args->flags & FLAG_r)
		ft_lstrev(&list);
	while ((el = ft_lstpop(&(list))) != NULL)
	{
		if (((t_lsentry*)el->data)->name[0] == '.' && !(args->flags & FLAG_a))
			continue ;
		if (args->flags & FLAG_l)
			ls_pinfos((t_lsentry*)el->data, &form);
		ls_pname((t_lsentry*)el->data);
		if (S_ISLNK(((t_lsentry*)el->data)->infos.st_mode)
				&& args->flags & FLAG_l)
			ls_l_plink(((t_lsentry*)el->data)->path);
		ft_putchar('\n');
		ft_lstdelone(&el, ls_del_ent);
	}
}