aboutsummaryrefslogtreecommitdiff
path: root/ft_lstmap_bonus.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-10-24 10:03:24 +0200
committerCharles <sircharlesaze@gmail.com>2019-10-24 10:03:24 +0200
commitfbd1d450b0c2da394cbb02fd61ab75b2719bfb72 (patch)
tree3c89f8b6b1e1cd4e05977c72370a236d5d3f9eba /ft_lstmap_bonus.c
parent0cf7761bf2985f683b1b73dfe5bdb731672e2b7f (diff)
downloadlibft-fbd1d450b0c2da394cbb02fd61ab75b2719bfb72.tar.gz
libft-fbd1d450b0c2da394cbb02fd61ab75b2719bfb72.tar.bz2
libft-fbd1d450b0c2da394cbb02fd61ab75b2719bfb72.zip
lstmap little fixraw
Diffstat (limited to 'ft_lstmap_bonus.c')
-rw-r--r--ft_lstmap_bonus.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ft_lstmap_bonus.c b/ft_lstmap_bonus.c
index 9ca7cad..81b9949 100644
--- a/ft_lstmap_bonus.c
+++ b/ft_lstmap_bonus.c
@@ -6,14 +6,14 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/09 09:03:57 by cacharle #+# #+# */
-/* Updated: 2019/10/21 11:43:10 by cacharle ### ########.fr */
+/* Updated: 2019/10/24 09:41:20 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include "libft.h"
-t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
+t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
{
t_list *mapped;
t_list *tmp;
@@ -21,14 +21,13 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
if (lst == NULL || f == NULL || del == NULL)
return (NULL);
mapped = NULL;
- while (lst)
+ while (lst != NULL)
{
if ((tmp = ft_lstnew((*f)(lst->content))) == NULL)
{
- ft_lstclear(&tmp, del);
+ ft_lstclear(&mapped, del);
return (NULL);
}
- tmp->next = lst->next;
ft_lstadd_back(&mapped, tmp);
lst = lst->next;
}
@@ -38,6 +37,10 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
/*
** Rest in peace, my beautiful recursion.
**
+** t_list *tmp;
+**
+** if (lst == NULL)
+** return (NULL);
** if ((tmp = ft_lstnew(lst->content)) == NULL)
** return (NULL);
** tmp->content = (*f)(tmp->content);