From 829740fdeae187836a06937b023f9f69ba38dea3 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 8 Mar 2017 11:57:52 +0100 Subject: [PATCH] lstmap change like btree_map --- libftasm/includes/dlst.h | 2 +- libftasm/includes/libft.h | 2 +- libftasm/includes/lst.h | 4 ++-- libftasm/src/btree/btree_map.c | 12 ++++++++++++ libftasm/src/lst/ft_lstmap.c | 17 ++++++----------- libftasm/src/str/ft_strtok.c | 12 ++++++++++++ 6 files changed, 34 insertions(+), 15 deletions(-) diff --git a/libftasm/includes/dlst.h b/libftasm/includes/dlst.h index 42d73729..a269909e 100644 --- a/libftasm/includes/dlst.h +++ b/libftasm/includes/dlst.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:21:04 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:21:52 by jhalford ### ########.fr */ +/* Updated: 2017/03/07 17:25:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index 07844ee6..99cd2764 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2017/03/07 14:54:00 by jhalford ### ########.fr */ +/* Updated: 2017/03/08 11:57:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/includes/lst.h b/libftasm/includes/lst.h index ef3ccf6d..a3c39cd0 100644 --- a/libftasm/includes/lst.h +++ b/libftasm/includes/lst.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:27:46 by jhalford #+# #+# */ -/* Updated: 2017/03/03 13:36:18 by jhalford ### ########.fr */ +/* Updated: 2017/03/08 11:56:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,7 +32,7 @@ void ft_lstdel(t_list **alst, void (*del)(void *, size_t)); void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)); void ft_lstadd(t_list **alst, t_list *new); void ft_lstiter(t_list *lst, void (*f)(t_list *elem)); -t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *)); t_list *ft_lstnew_range(int a, int b); void ft_lsteadd(t_list **alst, t_list *new); diff --git a/libftasm/src/btree/btree_map.c b/libftasm/src/btree/btree_map.c index 04d16491..3c09ac5b 100644 --- a/libftasm/src/btree/btree_map.c +++ b/libftasm/src/btree/btree_map.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_map.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/03/08 11:50:46 by jhalford #+# #+# */ +/* Updated: 2017/03/08 11:53:47 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "btree.h" t_btree *btree_map(t_btree *root, void *(*f)(void *)) diff --git a/libftasm/src/lst/ft_lstmap.c b/libftasm/src/lst/ft_lstmap.c index 689c64ae..cdec9295 100644 --- a/libftasm/src/lst/ft_lstmap.c +++ b/libftasm/src/lst/ft_lstmap.c @@ -6,24 +6,19 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:21 by jhalford #+# #+# */ -/* Updated: 2017/03/02 17:48:58 by jhalford ### ########.fr */ +/* Updated: 2017/03/08 11:57:03 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem)) +t_list *ft_lstmap(t_list *lst, void *(*f)(void *)) { t_list *out; t_list *elem; - out = NULL; - while (lst) - { - elem = (*f)(lst); - elem = ft_lstnew(elem->content, elem->content_size); - ft_lsteadd(&out, elem); - lst = lst->next; - } - return (out); + elem = ft_lstnew(lst->content, lst->content_size); + elem = (*f)(lst); + elem->next = ft_lstmap(lst->next, f); + return (elem); } diff --git a/libftasm/src/str/ft_strtok.c b/libftasm/src/str/ft_strtok.c index 53deadf6..044ff3f3 100644 --- a/libftasm/src/str/ft_strtok.c +++ b/libftasm/src/str/ft_strtok.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strtok.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/03/07 18:08:31 by jhalford #+# #+# */ +/* Updated: 2017/03/07 18:18:30 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "libft.h" char *ft_strtok(char *s, const char *delim)