/* ************************************************************************** */ /* LE - / */ /* / */ /* ft_lstmap.c .:: .:/ . .:: */ /* +:+:+ +: +: +:+:+ */ /* By: rbousset +:+ +: +: +:+ */ /* #+# #+ #+ #+# */ /* Created: 2019/10/13 10:36:15 by rbousset #+# ## ## #+# */ /* Updated: 2019/10/13 11:06:32 by rbousset ### #+. /#+ ###.fr */ /* / */ /* / */ /* ************************************************************************** */ #include #include #include t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) { t_list *nlst; t_list *new; if (!lst) return (NULL); nlst = ft_lstnew((*f)(lst->content)); if (!nlst) return (NULL); lst = lst->next; while (lst != NULL) { new = ft_lstnew((*f)(lst->content)); (*del)(lst->content); if (!new) return (NULL); lst = lst->next; ft_lstadd_back(&nlst, new); } return (nlst); }