Esempio n. 1
0
void	ft_lstsort_time(t_dir **begin_list, t_option *op)
{
	t_dir	*temp_list;
	t_dir	*rt_list;
	time_t	res;

	temp_list = *begin_list;
	while (temp_list)
	{
		rt_list = temp_list->next;
		while (rt_list != NULL)
		{
			res = temp_list->buf.st_mtime - rt_list->buf.st_mtime;
			if (op->date == 2)
				res = temp_list->buf.st_birthtime - rt_list->buf.st_birthtime;
			else if (op->date == 3)
				res = temp_list->buf.st_atime - rt_list->buf.st_atime;
			if (res > 0 && op->rev == 1)
				ft_lstswap(&temp_list, &rt_list);
			else if (res < 0 && op->rev == 0)
				ft_lstswap(&temp_list, &rt_list);
			else if (res == 0)
				ft_swap_name(temp_list, rt_list, op);
			rt_list = rt_list->next;
		}
		temp_list = temp_list->next;
	}
}
Esempio n. 2
0
void	ft_swap_name(t_dir *a, t_dir *b, t_option *op)
{
	int		res;

	res = ft_strcmp(a->name, b->name);
	if (res < 0 && op->rev == 1)
		ft_lstswap(&a, &b);
	else if (res > 0 && op->rev == 0)
		ft_lstswap(&a, &b);
}
Esempio n. 3
0
void	ft_lstsort_name(t_dir **begin_list, t_option *op)
{
	t_dir	*temp_list;
	t_dir	*rt_list;
	int		res;

	temp_list = *begin_list;
	while (temp_list)
	{
		rt_list = temp_list->next;
		while (rt_list != NULL)
		{
			res = ft_strcmp(rt_list->name, temp_list->name);
			if ((res < 0 && op->rev == 0) || op->stop == 1)
				ft_lstswap(&temp_list, &rt_list);
			else if (res > 0 && op->rev == 1)
				ft_lstswap(&temp_list, &rt_list);
			rt_list = rt_list->next;
		}
		temp_list = temp_list->next;
	}
}
Esempio n. 4
0
void	ft_lstsort(t_list *lst, int (*cmp)(t_list *, t_list *))
{
	t_list	*node_i;
	t_list	*node_j;

	node_i = lst;
	while (node_i)
	{
		node_j = node_i->next;
		while (node_j)
		{
			if ((*cmp)(node_i, node_j) > 0)
				ft_lstswap(node_i, node_j);
			node_j = node_j->next;
		}
		node_i = node_i->next;
	}
}
Esempio n. 5
0
void	ft_lstsort(t_list *lst, int (*f)(t_list *, t_list *))
{
	int		sorted;
	t_list	*cur;

	sorted = 0;
	while (sorted == 0)
	{
		cur = lst;
		sorted = 1;
		while (cur)
		{
			if (f(cur, cur->next) == 1)
			{
				ft_lstswap(cur, cur->next);
				sorted = 0;
			}
			cur = cur->next;
		}
	}
}