/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_lst_removeif.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:30 by jhalford #+# #+# */ /* Updated: 2017/05/15 19:49:45 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" t_list *ft_lst_removeif(t_list **alst, void *data_ref, int (*cmp)()) { t_list *tmp; t_list **indirect; indirect = alst; while (*indirect) { if ((*cmp)((*indirect)->content, data_ref) == 0) { tmp = (*indirect); (*indirect) = (*indirect)->next; tmp->next = NULL; return (tmp); } indirect = &(*indirect)->next; } return (NULL); }