summaryrefslogtreecommitdiff
path: root/ft_lstmap_bonus.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-03-11 13:42:54 +0100
committerDominik Kaiser2024-03-11 13:42:54 +0100
commitddb9eea40cac83c7d6ff173a3d94723805efe24d (patch)
tree66a186af367a7254d26a90116e2d8dc8cfa2dfe8 /ft_lstmap_bonus.c
parentb23760c78e2d087d84311925f2c014aa7c4c1635 (diff)
downloadlibft-ddb9eea40cac83c7d6ff173a3d94723805efe24d.tar.gz
libft-ddb9eea40cac83c7d6ff173a3d94723805efe24d.zip
Refactor ft_lstmap to make it norme conform
Diffstat (limited to 'ft_lstmap_bonus.c')
-rw-r--r--ft_lstmap_bonus.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/ft_lstmap_bonus.c b/ft_lstmap_bonus.c
index 1e4b867..43120cd 100644
--- a/ft_lstmap_bonus.c
+++ b/ft_lstmap_bonus.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/10 16:45:21 by dkaiser #+# #+# */
-/* Updated: 2024/03/11 13:25:08 by dkaiser ### ########.fr */
+/* Updated: 2024/03/11 13:36:23 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -20,31 +20,19 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
if (!lst || !f || !del)
return (NULL);
- content = f(lst->content);
- cur_new = ft_lstnew(content);
- if (!cur_new)
- {
- del(content);
- return (NULL);
- }
- result = cur_new;
- if (!lst->next)
- return (result);
- lst = lst->next;
+ result = NULL;
while (lst)
{
content = f(lst->content);
- cur_new->next = ft_lstnew(content);
- if (!cur_new->next)
+ cur_new = ft_lstnew(content);
+ if (!cur_new)
{
del(content);
ft_lstclear(&result, del);
return (NULL);
}
- if (!lst->next)
- return (result);
lst = lst->next;
- cur_new = cur_new->next;
+ ft_lstadd_back(&result, cur_new);
}
return (result);
}