/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_lstmap.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: mcolonna +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/04 16:37:57 by mcolonna #+# #+# */ /* Updated: 2023/10/12 13:17:57 by mcolonna ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) { t_list *dest; t_list *new; void *new_content; dest = NULL; if (!lst) return (NULL); while (lst) { new_content = (*f)(lst->content); new = ft_lstnew(new_content); if (!new) { (*del)(new_content); ft_lstclear(&dest, del); return (NULL); } ft_lstadd_back(&dest, new); lst = lst->next; } return (dest); }