示例#1
0
t_infos	*ft_arglentry(t_infos *llist, t_opt *option, char *name, t_err **error)
{
	t_infos		*node;
	struct stat lsts;
	struct stat sts;

	if (!(node = (t_infos*)malloc(sizeof(t_infos))))
		print_err(1, '-');
	node->name = ft_strdup(name);
	if (lstat(node->name, &lsts) == -1)
	{
		*error = ft_fillerror(name, error);
		free(node);
		return (llist);
	}
	node->path = ft_strdup(name);
	node->type = typedefineargs(lsts.st_mode);
	if (option->flag & FLAG_L)
		ft_fillstats(node, &lsts, option);
	else if (node->type == 5)
		if (stat(node->path, &sts) != -1)
			node->type = typedefineargs(sts.st_mode);
	llist = (!llist) ? node : ft_sort(llist, node, option->flag);
	return (llist);
}
示例#2
0
文件: ft_listdir.c 项目: ptitmax/42
t_infos	*ft_newl(t_infos *llist, struct dirent *ret, t_opt *option, char *path)
{
	t_infos		*node;
	struct stat buf;

	if (!(node = (t_infos*)malloc(sizeof(t_infos))))
		print_err(1, '-');
	ft_putnull(node);
	ft_bzero(node->rights, 12);
	node->path = createpath(ret->d_name, path);
	if (lstat(node->path, &buf) == -1)
		perror("Erreur de lstat =");
	node->type = typedefine(ret->d_type);
	if (node->type == 0)
		node->type = typedefineargs(buf.st_mode);
	node->name = ft_strdup(ret->d_name);
	if (check_long_flag(option) == 1)
		ft_fillstats(node, &buf, option);
	if (!llist)
	{
		llist = node;
		node->nxt = NULL;
	}
	else
		llist = ft_sort(llist, node, option->flag);
	return (llist);
}
示例#3
0
文件: all_rev.c 项目: owinckle/ft_ls
void		ft_all(char *dir)
{
	t_env	env;

	env.list = ft_all_lst(ft_all_sz(dir, &env), dir);
	env.list = ft_sort(env);
	ft_all_print(env, dir);
}
示例#4
0
void			ft_sort_by_size(t_tree **atree, t_tree *elem)
{
	t_lui		size2;

	size2 = get_size1(elem->data);
	if (!(*atree) && elem->data[0])
		*atree = elem;
	else if (*atree && elem->data[0])
	{
		if (get_size1((*atree)->data) > size2)
		{
			while ((*atree)->right && get_size1((*atree)->data) > size2)
				*atree = (*atree)->right;
		}
		else if (get_size1((*atree)->data) < size2)
		{
			while ((*atree)->left && get_size1((*atree)->data) < size2)
				(*atree) = (*atree)->left;
		}
		ft_sort(atree, elem, size2);
	}
}