minishell
ft_lstmap.c File Reference
#include <stddef.h>
#include "ft_lst.h"
Include dependency graph for ft_lstmap.c:

Go to the source code of this file.

Functions

t_listft_lstmap (t_list *lst, void *(*f)(void *), void(*del)(void *))
 

Function Documentation

◆ ft_lstmap()

t_list* ft_lstmap ( t_list lst,
void *(*)(void *)  f,
void(*)(void *)  del 
)

Definition at line 16 of file ft_lstmap.c.

17 {
18  t_list *p_new_lst_top;
19  t_list *p_new_lst;
20 
21  if (lst == NULL)
22  return (NULL);
23  p_new_lst_top = ft_lstnew(f(lst->content));
24  if (p_new_lst_top == NULL)
25  return (NULL);
26  p_new_lst = p_new_lst_top;
27  lst = lst->next;
28  while (lst != NULL)
29  {
30  p_new_lst->next = ft_lstnew(f(lst->content));
31  p_new_lst = p_new_lst->next;
32  lst = lst->next;
33  if (p_new_lst == NULL)
34  {
35  ft_lstclear(&p_new_lst_top, del);
36  return (NULL);
37  }
38  }
39  return (p_new_lst_top);
40 }
void ft_lstclear(t_list **lst, void(*del)(void *))
Definition: ft_lstclear.c:16
t_list * ft_lstnew(void *content)
Definition: ft_lstnew.c:16
Definition: ft_lst.h:18
void * content
Definition: ft_lst.h:19
struct s_list * next
Definition: ft_lst.h:20
Here is the call graph for this function: