From 39b3f2bc4ea6aa99ef7df5eb3239055bfe13ecd5 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Wed, 23 Mar 2022 14:26:11 +0100 Subject: [PATCH 1/6] add arrintchr --- Makefile | 4 +++- includes/libft.h | 4 +++- srcs/ft_arrintchr.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 srcs/ft_arrintchr.c diff --git a/Makefile b/Makefile index 282d82c..ce72c00 100644 --- a/Makefile +++ b/Makefile @@ -118,7 +118,9 @@ SRCS = ft_memset.c \ ft_smaller.c \ ft_sign.c \ ft_sqrt.c \ - ft_free_tab.c + ft_free_tab.c \ + \ + ft_arrintchr.c ODIR = ./builds diff --git a/includes/libft.h b/includes/libft.h index 058d3e3..da6babe 100644 --- a/includes/libft.h +++ b/includes/libft.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:45:53 by hulamy #+# #+# */ -/* Updated: 2020/02/27 18:06:10 by hulamy ### ########.fr */ +/* Updated: 2022/03/23 14:22:33 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -113,4 +113,6 @@ int ft_sign(int i); int ft_sqrt(int i); void ft_free_tab(char **tab); +int ft_arrintchr(int * intarr, int comp, size_t size); + #endif diff --git a/srcs/ft_arrintchr.c b/srcs/ft_arrintchr.c new file mode 100644 index 0000000..936ffc9 --- /dev/null +++ b/srcs/ft_arrintchr.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_arrintchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/23 14:25:28 by simplonco #+# #+# */ +/* Updated: 2022/03/23 14:25:37 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * search through an arr of int if it contains the int comp + * return 0 if found, 1 otherwise + */ + +#include "libft.h" + +int ft_arrintchr(int * intarr, int comp, size_t size) +{ + size_t i; + + if (!intarr) + return 1; + i = -1; + while (++i < size) + if (intarr[i] == comp) + return 0; + return 1; +} From bc53060626ca78bce8fbb6dcbb7ecfc8e53db0ef Mon Sep 17 00:00:00 2001 From: hugogogo Date: Wed, 23 Mar 2022 21:52:04 +0100 Subject: [PATCH 2/6] add lstremove_next and lstadd_back now return --- Makefile | 3 ++- includes/libft.h | 5 +++-- srcs/ft_lstadd_back.c | 12 ++++++++---- srcs/ft_lstnew.c | 10 ++++------ srcs/ft_lstremove_next.c | 30 ++++++++++++++++++++++++++++++ 5 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 srcs/ft_lstremove_next.c diff --git a/Makefile b/Makefile index ce72c00..c3937a8 100644 --- a/Makefile +++ b/Makefile @@ -120,7 +120,8 @@ SRCS = ft_memset.c \ ft_sqrt.c \ ft_free_tab.c \ \ - ft_arrintchr.c + ft_arrintchr.c \ + ft_lstremove_next.c ODIR = ./builds diff --git a/includes/libft.h b/includes/libft.h index da6babe..56b1d85 100644 --- a/includes/libft.h +++ b/includes/libft.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:45:53 by hulamy #+# #+# */ -/* Updated: 2022/03/23 14:22:33 by simplonco ### ########.fr */ +/* Updated: 2022/03/23 21:51:14 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -65,9 +65,9 @@ typedef struct s_list t_list *ft_lstnew(void *content); void ft_lstadd_front(t_list **alst, t_list *n); +void *ft_lstadd_back(t_list **alst, t_list *n); int ft_lstsize(t_list *lst); t_list *ft_lstlast(t_list *lst); -void ft_lstadd_back(t_list **alst, t_list *n); void ft_lstdelone(t_list *lst, void (*del)(void *)); void ft_lstclear(t_list **lst, void (*del)(void *)); void ft_lstiter(t_list *lst, void (*f)(void *)); @@ -114,5 +114,6 @@ int ft_sqrt(int i); void ft_free_tab(char **tab); int ft_arrintchr(int * intarr, int comp, size_t size); +void ft_lstremove_next(t_list *lst, void (*del)(void *)); #endif diff --git a/srcs/ft_lstadd_back.c b/srcs/ft_lstadd_back.c index 315119b..dceb7e0 100644 --- a/srcs/ft_lstadd_back.c +++ b/srcs/ft_lstadd_back.c @@ -6,13 +6,14 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:11:53 by hulamy #+# #+# */ -/* Updated: 2019/11/25 14:36:12 by hulamy ### ########.fr */ +/* Updated: 2022/03/23 21:50:42 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ /* -** add an element to the end of a list -** or first if list has no element so far +** add an element to the end of a list, or first if list has no element yet +** return NULL if element is NULL (eg, it returned from ft_lstnew and failed) +** or else address to the element added */ /* @@ -71,10 +72,12 @@ #include "libft.h" -void ft_lstadd_back(t_list **alst, t_list *new) +void *ft_lstadd_back(t_list **alst, t_list *new) { t_list *tmp; + if (!new) + return (NULL); if (alst) { tmp = *alst; @@ -87,4 +90,5 @@ void ft_lstadd_back(t_list **alst, t_list *new) tmp->next = new; } } + return (tmp); } diff --git a/srcs/ft_lstnew.c b/srcs/ft_lstnew.c index 401f6c9..0c64f4e 100644 --- a/srcs/ft_lstnew.c +++ b/srcs/ft_lstnew.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:16:20 by hulamy #+# #+# */ -/* Updated: 2019/11/25 14:29:46 by hulamy ### ########.fr */ +/* Updated: 2022/03/23 20:24:40 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -48,12 +48,10 @@ t_list *ft_lstnew(void *content) { t_list *lst; - if (!(lst = (t_list *)malloc(sizeof(*lst)))) + lst = (t_list *)malloc(sizeof(*lst)); + if (!lst) return (NULL); - if (!content) - lst->content = NULL; - else - lst->content = content; + lst->content = content; lst->next = NULL; return (lst); } diff --git a/srcs/ft_lstremove_next.c b/srcs/ft_lstremove_next.c new file mode 100644 index 0000000..926f5d5 --- /dev/null +++ b/srcs/ft_lstremove_next.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstremove_next.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/23 21:42:05 by simplonco #+# #+# */ +/* Updated: 2022/03/23 21:42:55 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * remove the next element of the list, delete its content, and free it + * then rejoin the list without this element + */ + +#include "libft.h" + +void ft_lstremove_next(t_list *lst, void (*del)(void *)) +{ + t_list *next_tmp; + + if (!lst || !lst->next || !del) + return ; + next_tmp = lst->next->next; + del(lst->next->content); + free(lst->next); + lst->next = next_tmp; +} From 60af4e44b0dbcbc4be71dce27c033f791cfda065 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Thu, 24 Mar 2022 16:49:59 +0100 Subject: [PATCH 3/6] change fonctions pour list avec nouvelles fonctions pour listes a deux sens --- Makefile | 37 ++++++++++++----- includes/libft.h | 21 +++++++++- srcs/ft_lst_find.bak | 24 +++++++++++ srcs/{ft_lstadd_back.c => ft_lstadd_back.bak} | 0 ...{ft_lstadd_front.c => ft_lstadd_front.bak} | 0 srcs/ft_lstbegin.c | 25 +++++++++++ srcs/{ft_lstclear.c => ft_lstclear.bak} | 0 srcs/ft_lstcopy.c | 34 +++++++++++++++ srcs/ft_lstcreate.c | 31 ++++++++++++++ srcs/{ft_lstdelone.c => ft_lstdelone.bak} | 0 srcs/ft_lstend.c | 24 +++++++++++ srcs/ft_lsterase.c | 30 ++++++++++++++ srcs/ft_lstfind.c | 25 +++++++++++ srcs/ft_lstfree.c | 33 +++++++++++++++ srcs/ft_lstinsert.c | 27 ++++++++++++ srcs/{ft_lstiter.c => ft_lstiter.bak} | 0 srcs/{ft_lstlast.c => ft_lstlast.bak} | 0 srcs/ft_lstlen.c | 30 ++++++++++++++ srcs/ft_lstloop.c | 30 ++++++++++++++ srcs/ft_lstloop_back.c | 30 ++++++++++++++ srcs/{ft_lstmap.c => ft_lstmap.bak} | 0 srcs/{ft_lstnew.c => ft_lstnew.bak} | 0 srcs/ft_lstpush_back.c | 41 +++++++++++++++++++ srcs/ft_lstpush_front.c | 24 +++++++++++ srcs/ft_lstremove.delete | 31 ++++++++++++++ ...remove_next.c => ft_lstremove_next.delete} | 0 srcs/{ft_lstsize.c => ft_lstsize.bak} | 0 27 files changed, 484 insertions(+), 13 deletions(-) create mode 100644 srcs/ft_lst_find.bak rename srcs/{ft_lstadd_back.c => ft_lstadd_back.bak} (100%) rename srcs/{ft_lstadd_front.c => ft_lstadd_front.bak} (100%) create mode 100644 srcs/ft_lstbegin.c rename srcs/{ft_lstclear.c => ft_lstclear.bak} (100%) create mode 100644 srcs/ft_lstcopy.c create mode 100644 srcs/ft_lstcreate.c rename srcs/{ft_lstdelone.c => ft_lstdelone.bak} (100%) create mode 100644 srcs/ft_lstend.c create mode 100644 srcs/ft_lsterase.c create mode 100644 srcs/ft_lstfind.c create mode 100644 srcs/ft_lstfree.c create mode 100644 srcs/ft_lstinsert.c rename srcs/{ft_lstiter.c => ft_lstiter.bak} (100%) rename srcs/{ft_lstlast.c => ft_lstlast.bak} (100%) create mode 100644 srcs/ft_lstlen.c create mode 100644 srcs/ft_lstloop.c create mode 100644 srcs/ft_lstloop_back.c rename srcs/{ft_lstmap.c => ft_lstmap.bak} (100%) rename srcs/{ft_lstnew.c => ft_lstnew.bak} (100%) create mode 100644 srcs/ft_lstpush_back.c create mode 100644 srcs/ft_lstpush_front.c create mode 100644 srcs/ft_lstremove.delete rename srcs/{ft_lstremove_next.c => ft_lstremove_next.delete} (100%) rename srcs/{ft_lstsize.c => ft_lstsize.bak} (100%) diff --git a/Makefile b/Makefile index c3937a8..901c31b 100644 --- a/Makefile +++ b/Makefile @@ -62,15 +62,19 @@ SRCS = ft_memset.c \ ft_putendl_fd.c \ ft_putnbr_fd.c \ \ - ft_lstnew.c \ - ft_lstadd_front.c \ - ft_lstsize.c \ - ft_lstlast.c \ - ft_lstadd_back.c \ - ft_lstdelone.c \ - ft_lstclear.c \ - ft_lstiter.c \ - ft_lstmap.c \ + ft_lstcreate.c \ + ft_lstpush_back.c \ + ft_lstpush_front.c \ + ft_lstloop.c \ + ft_lstloop_back.c \ + ft_lstbegin.c \ + ft_lstend.c \ + ft_lstfind.c \ + ft_lstinsert.c \ + ft_lsterase.c \ + ft_lstfree.c \ + ft_lstlen.c \ + ft_lstcopy.c \ \ ft_strcat.c \ ft_strcmp.c \ @@ -120,8 +124,19 @@ SRCS = ft_memset.c \ ft_sqrt.c \ ft_free_tab.c \ \ - ft_arrintchr.c \ - ft_lstremove_next.c + ft_arrintchr.c + + # ft_lstremove.c \ + ft_lstfind.c + # ft_lstnew.c \ + ft_lstadd_front.c \ + ft_lstsize.c \ + ft_lstlast.c \ + ft_lstadd_back.c \ + ft_lstdelone.c \ + ft_lstclear.c \ + ft_lstiter.c \ + ft_lstmap.c ODIR = ./builds diff --git a/includes/libft.h b/includes/libft.h index 56b1d85..16430c8 100644 --- a/includes/libft.h +++ b/includes/libft.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:45:53 by hulamy #+# #+# */ -/* Updated: 2022/03/23 21:51:14 by simplonco ### ########.fr */ +/* Updated: 2022/03/24 16:38:25 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -60,9 +60,11 @@ void ft_putnbr_fd(int n, int fd); typedef struct s_list { void *content; + struct s_list *prev; struct s_list *next; } t_list; +/* t_list *ft_lstnew(void *content); void ft_lstadd_front(t_list **alst, t_list *n); void *ft_lstadd_back(t_list **alst, t_list *n); @@ -72,6 +74,22 @@ void ft_lstdelone(t_list *lst, void (*del)(void *)); void ft_lstclear(t_list **lst, void (*del)(void *)); void ft_lstiter(t_list *lst, void (*f)(void *)); t_list *ft_lstmap(t_list *l, void *(*f)(void*), void (*d)(void*)); +*/ +//void ft_lstremove(t_list *lst, void (*del)(void *)); +//t_list *ft_lstfind(t_list *lst, void *to_find, int (*comp)(void*, void *)); +t_list *ft_lstcreate(void *content); +void *ft_lstpush_back(t_list **lst, t_list *new); +void ft_lstpush_front(t_list **alst, t_list *new); +void ft_lstloop(t_list *lst, void (*f)(void *)); +void ft_lstloop_back(t_list *lst, void (*f)(void *)); +t_list *ft_lstbegin(t_list *lst); +t_list *ft_lstend(t_list *lst); +t_list *ft_lstfind(t_list *lst, void *to_find, int (*comp)(void*, void *)); +void ft_lstinsert(t_list *lst, t_list *new); +void ft_lsterase(t_list *lst, void (*del)(void *)); +void ft_lstfree(t_list *lst, void (*del)(void *)); +int ft_lstlen(t_list *lst); +t_list *ft_lstcopy(t_list *lst, void *(*cpy)(void *)); char *ft_strcat(char *s1, const char *s2); int ft_strcmp(const char *s1, const char *s2); @@ -114,6 +132,5 @@ int ft_sqrt(int i); void ft_free_tab(char **tab); int ft_arrintchr(int * intarr, int comp, size_t size); -void ft_lstremove_next(t_list *lst, void (*del)(void *)); #endif diff --git a/srcs/ft_lst_find.bak b/srcs/ft_lst_find.bak new file mode 100644 index 0000000..86a0dbe --- /dev/null +++ b/srcs/ft_lst_find.bak @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstfind.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/23 22:48:47 by simplonco #+# #+# */ +/* Updated: 2022/03/23 22:49:16 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * find an element with the comp function, and return a pointer to it + */ + +#include "libft.h" + +t_list *ft_lstfind(t_list *lst, void *to_find, int (*comp)(void*, void *)) +{ + while (lst && (!comp(to_find, lst->content))) + lst = lst->next; + return (lst); +} diff --git a/srcs/ft_lstadd_back.c b/srcs/ft_lstadd_back.bak similarity index 100% rename from srcs/ft_lstadd_back.c rename to srcs/ft_lstadd_back.bak diff --git a/srcs/ft_lstadd_front.c b/srcs/ft_lstadd_front.bak similarity index 100% rename from srcs/ft_lstadd_front.c rename to srcs/ft_lstadd_front.bak diff --git a/srcs/ft_lstbegin.c b/srcs/ft_lstbegin.c new file mode 100644 index 0000000..7d429c1 --- /dev/null +++ b/srcs/ft_lstbegin.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstbegin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 15:05:21 by simplonco #+# #+# */ +/* Updated: 2022/03/24 15:10:45 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * return a pointer to the first element of a two-way list + */ + +#include "libft.h" + +t_list *ft_lstbegin(t_list *lst) +{ + while (lst->prev) + lst = lst->prev; + return (lst); +} + diff --git a/srcs/ft_lstclear.c b/srcs/ft_lstclear.bak similarity index 100% rename from srcs/ft_lstclear.c rename to srcs/ft_lstclear.bak diff --git a/srcs/ft_lstcopy.c b/srcs/ft_lstcopy.c new file mode 100644 index 0000000..7160e42 --- /dev/null +++ b/srcs/ft_lstcopy.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstcopy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 16:26:27 by simplonco #+# #+# */ +/* Updated: 2022/03/24 16:37:39 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * copy a two-way list with the copy function for the content + * and return pointer to the begining of the new list + */ + +#include "libft.h" + +t_list *ft_lstcopy(t_list *lst, void *(*cpy)(void *)) +{ + t_list *lst_copy; + + if (!lst || !cpy) + return (NULL); + lst_copy = NULL; + while (lst) + { + ft_lstpush_back(&lst_copy, ft_lstcreate(cpy(lst->content))); + lst = lst->next; + } + return (ft_lstbegin(lst_copy)); +} + diff --git a/srcs/ft_lstcreate.c b/srcs/ft_lstcreate.c new file mode 100644 index 0000000..81fc0c0 --- /dev/null +++ b/srcs/ft_lstcreate.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstcreate.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 13:12:50 by simplonco #+# #+# */ +/* Updated: 2022/03/24 14:29:04 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * create a new two-way list + */ + +#include "libft.h" + +t_list *ft_lstcreate(void *content) +{ + t_list *lst; + + lst = (t_list *)malloc(sizeof(*lst)); + if (!lst) + return (NULL); + lst->content = content; + lst->prev = NULL; + lst->next = NULL; + return (lst); +} + diff --git a/srcs/ft_lstdelone.c b/srcs/ft_lstdelone.bak similarity index 100% rename from srcs/ft_lstdelone.c rename to srcs/ft_lstdelone.bak diff --git a/srcs/ft_lstend.c b/srcs/ft_lstend.c new file mode 100644 index 0000000..bb04263 --- /dev/null +++ b/srcs/ft_lstend.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstend.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 15:11:41 by simplonco #+# #+# */ +/* Updated: 2022/03/24 15:12:17 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * return a pointer to the last element of a two-way list + */ + +#include "libft.h" + +t_list *ft_lstend(t_list *lst) +{ + while (lst->next) + lst = lst->next; + return (lst); +} diff --git a/srcs/ft_lsterase.c b/srcs/ft_lsterase.c new file mode 100644 index 0000000..75e477d --- /dev/null +++ b/srcs/ft_lsterase.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lsterase.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 15:31:16 by simplonco #+# #+# */ +/* Updated: 2022/03/24 15:40:32 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * erase an element in two-way list + * and rejoin the list + */ + +#include "libft.h" + +void ft_lsterase(t_list *lst, void (*del)(void *)) +{ + if (!lst || !del) + return ; + del(lst->content); + lst->prev->next = lst->next; + lst->next->prev = lst->prev; + free(lst); + lst = NULL; +} + diff --git a/srcs/ft_lstfind.c b/srcs/ft_lstfind.c new file mode 100644 index 0000000..297f6d0 --- /dev/null +++ b/srcs/ft_lstfind.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstfind.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/23 22:48:47 by simplonco #+# #+# */ +/* Updated: 2022/03/24 15:23:22 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * find an element in two-way list with the comp function + * return a pointer to it + */ + +#include "libft.h" + +t_list *ft_lstfind(t_list *lst, void *to_find, int (*comp)(void*, void *)) +{ + while (lst && (!comp(to_find, lst->content))) + lst = lst->next; + return (lst); +} diff --git a/srcs/ft_lstfree.c b/srcs/ft_lstfree.c new file mode 100644 index 0000000..7f9a0f4 --- /dev/null +++ b/srcs/ft_lstfree.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstfree.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 15:49:35 by simplonco #+# #+# */ +/* Updated: 2022/03/24 16:16:47 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * delete and free an element of a two-way list and all the followings + */ + +#include "libft.h" + +void ft_lstfree(t_list *lst, void (*del)(void *)) +{ + t_list *next; + + if (lst && lst->prev) + lst->prev->next = NULL; + while (lst != NULL) + { + next = lst->next; + del(lst->content); + free(lst); + lst = next; + } +} + diff --git a/srcs/ft_lstinsert.c b/srcs/ft_lstinsert.c new file mode 100644 index 0000000..3e9297d --- /dev/null +++ b/srcs/ft_lstinsert.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstinsert.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 15:22:46 by simplonco #+# #+# */ +/* Updated: 2022/03/24 15:31:52 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * insert an element in two-way list just after the one in parameter + * and rejoin the list + */ + +#include "libft.h" + +void ft_lstinsert(t_list *lst, t_list *new) +{ + new->next = lst->next; + lst->next = new; + new->next->prev = new; + new->prev = lst; +} + diff --git a/srcs/ft_lstiter.c b/srcs/ft_lstiter.bak similarity index 100% rename from srcs/ft_lstiter.c rename to srcs/ft_lstiter.bak diff --git a/srcs/ft_lstlast.c b/srcs/ft_lstlast.bak similarity index 100% rename from srcs/ft_lstlast.c rename to srcs/ft_lstlast.bak diff --git a/srcs/ft_lstlen.c b/srcs/ft_lstlen.c new file mode 100644 index 0000000..bc649b8 --- /dev/null +++ b/srcs/ft_lstlen.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 16:20:25 by simplonco #+# #+# */ +/* Updated: 2022/03/24 16:22:24 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * return the len of the two-way list + */ + +#include "libft.h" + +int ft_lstlen(t_list *lst) +{ + int size; + + size = 0; + while (lst) + { + size++; + lst = lst->next; + } + return (size); +} diff --git a/srcs/ft_lstloop.c b/srcs/ft_lstloop.c new file mode 100644 index 0000000..8524029 --- /dev/null +++ b/srcs/ft_lstloop.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstloop.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 14:37:15 by simplonco #+# #+# */ +/* Updated: 2022/03/24 14:38:32 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * go forward through all elements of a two-way list + * and apply the function f to each of them + */ + +#include "libft.h" + +void ft_lstloop(t_list *lst, void (*f)(void *)) +{ + if (!f) + return ; + while (lst) + { + f(lst->content); + lst = lst->next; + } +} + diff --git a/srcs/ft_lstloop_back.c b/srcs/ft_lstloop_back.c new file mode 100644 index 0000000..da75152 --- /dev/null +++ b/srcs/ft_lstloop_back.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstloop_back.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 15:01:37 by simplonco #+# #+# */ +/* Updated: 2022/03/24 15:02:02 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * go backward through all elements of a two-way list + * and apply the function f to each of them + */ + +#include "libft.h" + +void ft_lstloop_back(t_list *lst, void (*f)(void *)) +{ + if (!f) + return ; + while (lst) + { + f(lst->content); + lst = lst->prev; + } +} + diff --git a/srcs/ft_lstmap.c b/srcs/ft_lstmap.bak similarity index 100% rename from srcs/ft_lstmap.c rename to srcs/ft_lstmap.bak diff --git a/srcs/ft_lstnew.c b/srcs/ft_lstnew.bak similarity index 100% rename from srcs/ft_lstnew.c rename to srcs/ft_lstnew.bak diff --git a/srcs/ft_lstpush_back.c b/srcs/ft_lstpush_back.c new file mode 100644 index 0000000..3d819fb --- /dev/null +++ b/srcs/ft_lstpush_back.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstpush_back.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 13:37:11 by simplonco #+# #+# */ +/* Updated: 2022/03/24 14:28:49 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * add an element to the end of a two-way list, or first if list has no element + * return NULL if element is NULL (eg it returned from ft_lstcreate and failed) + * or else address to the element added + */ + +#include "libft.h" + +void *ft_lstpush_back(t_list **lst, t_list *new) +{ + t_list *tmp; + + if (!new) + return (NULL); + if (lst) + { + tmp = *lst; + if (!tmp) + *lst = new; + else + { + while (tmp->next) + tmp = tmp->next; + tmp->next = new; + new->prev = tmp; + } + } + return (new); +} diff --git a/srcs/ft_lstpush_front.c b/srcs/ft_lstpush_front.c new file mode 100644 index 0000000..453054f --- /dev/null +++ b/srcs/ft_lstpush_front.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstpush_front.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/24 14:25:25 by simplonco #+# #+# */ +/* Updated: 2022/03/24 14:32:14 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * add an element to the begining of a two-way list + */ + +#include "libft.h" + +void ft_lstpush_front(t_list **alst, t_list *new) +{ + new->next = *alst; + (*alst)->prev = new; + *alst = new; +} diff --git a/srcs/ft_lstremove.delete b/srcs/ft_lstremove.delete new file mode 100644 index 0000000..08cd46d --- /dev/null +++ b/srcs/ft_lstremove.delete @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstremove.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: simplonco +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/03/23 22:44:55 by simplonco #+# #+# */ +/* Updated: 2022/03/23 22:46:30 by simplonco ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + * remove an element of the list, by moving the content of the next element + * and delete and free the next element + */ + +#include "libft.h" + +void ft_lstremove(t_list *lst, void (*del)(void *)) +{ + t_list *next_tmp; + + if (!lst || !del) + return ; + next_tmp = lst->next; + del(lst->content); + lst->content = lst->next->content; + lst->next = lst->next->next; + free(next_tmp); +} diff --git a/srcs/ft_lstremove_next.c b/srcs/ft_lstremove_next.delete similarity index 100% rename from srcs/ft_lstremove_next.c rename to srcs/ft_lstremove_next.delete diff --git a/srcs/ft_lstsize.c b/srcs/ft_lstsize.bak similarity index 100% rename from srcs/ft_lstsize.c rename to srcs/ft_lstsize.bak From 887657dc07215d04058492422b4542f8220bf30b Mon Sep 17 00:00:00 2001 From: hugogogo Date: Thu, 24 Mar 2022 17:04:20 +0100 Subject: [PATCH 4/6] moved some unused functions, list and put, in deleted folder --- Makefile | 91 +++++++++++++-------------- {srcs => deleted}/ft_lst_find.bak | 0 {srcs => deleted}/ft_lstadd_back.bak | 0 {srcs => deleted}/ft_lstadd_front.bak | 0 {srcs => deleted}/ft_lstclear.bak | 0 {srcs => deleted}/ft_lstdelone.bak | 0 {srcs => deleted}/ft_lstiter.bak | 0 {srcs => deleted}/ft_lstlast.bak | 0 {srcs => deleted}/ft_lstmap.bak | 0 {srcs => deleted}/ft_lstnew.bak | 0 {srcs => deleted}/ft_lstsize.bak | 0 {srcs => deleted}/ft_putchar.c | 0 {srcs => deleted}/ft_putendl.c | 0 {srcs => deleted}/ft_putendl_fd.c | 0 {srcs => deleted}/ft_putnbr.c | 0 {srcs => deleted}/ft_putnbrendl.c | 0 {srcs => deleted}/ft_putnbrendl_fd.c | 0 {srcs => deleted}/ft_putstr.c | 0 includes/libft.h | 18 +++--- srcs/ft_lstremove.delete | 31 --------- srcs/ft_lstremove_next.delete | 30 --------- srcs/ft_putnbrbase.c | 6 +- 22 files changed, 57 insertions(+), 119 deletions(-) rename {srcs => deleted}/ft_lst_find.bak (100%) rename {srcs => deleted}/ft_lstadd_back.bak (100%) rename {srcs => deleted}/ft_lstadd_front.bak (100%) rename {srcs => deleted}/ft_lstclear.bak (100%) rename {srcs => deleted}/ft_lstdelone.bak (100%) rename {srcs => deleted}/ft_lstiter.bak (100%) rename {srcs => deleted}/ft_lstlast.bak (100%) rename {srcs => deleted}/ft_lstmap.bak (100%) rename {srcs => deleted}/ft_lstnew.bak (100%) rename {srcs => deleted}/ft_lstsize.bak (100%) rename {srcs => deleted}/ft_putchar.c (100%) rename {srcs => deleted}/ft_putendl.c (100%) rename {srcs => deleted}/ft_putendl_fd.c (100%) rename {srcs => deleted}/ft_putnbr.c (100%) rename {srcs => deleted}/ft_putnbrendl.c (100%) rename {srcs => deleted}/ft_putnbrendl_fd.c (100%) rename {srcs => deleted}/ft_putstr.c (100%) delete mode 100644 srcs/ft_lstremove.delete delete mode 100644 srcs/ft_lstremove_next.delete diff --git a/Makefile b/Makefile index 901c31b..2019249 100644 --- a/Makefile +++ b/Makefile @@ -14,14 +14,6 @@ DEPS = $(_DEP:%.h=$(IDIR)/%.h) CFLAGS = -I$(IDIR) CFLAGS += -Wall -Wextra -Werror -g3 -# ft_putstr -# ft_atoi -# ft_putchar -# ft_putnbrendl -# ft_putnbrendl_fd -# ft_putchar_fd -# ft_putnbr_fd - SRCS = ft_memset.c \ ft_bzero.c \ ft_memcpy.c \ @@ -29,7 +21,10 @@ SRCS = ft_memset.c \ ft_memmove.c \ ft_memchr.c \ ft_memcmp.c \ - ft_strlen.c \ + ft_memalloc.c \ + ft_memdel.c \ + ft_calloc.c \ + \ ft_isalpha.c \ ft_isdigit.c \ ft_isalnum.c \ @@ -38,6 +33,8 @@ SRCS = ft_memset.c \ ft_isprint.c \ ft_toupper.c \ ft_tolower.c \ + \ + ft_strlen.c \ ft_strchr.c \ ft_strrchr.c \ ft_strchrset.c \ @@ -45,37 +42,10 @@ SRCS = ft_memset.c \ ft_strlcpy.c \ ft_strlcat.c \ ft_strnstr.c \ - ft_atoi.c \ - ft_atol.c \ - ft_calloc.c \ ft_strdup.c \ - \ - ft_substr.c \ ft_strjoin.c \ ft_strtrim.c \ - ft_split.c \ - ft_itoa.c \ - ft_utoa.c \ ft_strmapi.c \ - ft_putchar_fd.c \ - ft_putstr_fd.c \ - ft_putendl_fd.c \ - ft_putnbr_fd.c \ - \ - ft_lstcreate.c \ - ft_lstpush_back.c \ - ft_lstpush_front.c \ - ft_lstloop.c \ - ft_lstloop_back.c \ - ft_lstbegin.c \ - ft_lstend.c \ - ft_lstfind.c \ - ft_lstinsert.c \ - ft_lsterase.c \ - ft_lstfree.c \ - ft_lstlen.c \ - ft_lstcopy.c \ - \ ft_strcat.c \ ft_strcmp.c \ ft_strcpy.c \ @@ -91,15 +61,33 @@ SRCS = ft_memset.c \ ft_strmap.c \ ft_strnequ.c \ ft_strnew.c \ - ft_memalloc.c \ - ft_memdel.c \ - ft_putchar.c \ - ft_putendl.c \ - ft_putnbr.c \ - ft_putnbrendl.c \ - ft_putnbrendl_fd.c \ + ft_substr.c \ + ft_split.c \ + \ + ft_atoi.c \ + ft_atol.c \ + ft_itoa.c \ + ft_utoa.c \ + \ + ft_putchar_fd.c \ + ft_putstr_fd.c \ + ft_putnbr_fd.c \ ft_putnbrbase.c \ - ft_putstr.c \ + \ + ft_lstcreate.c \ + ft_lstpush_back.c \ + ft_lstpush_front.c \ + ft_lstloop.c \ + ft_lstloop_back.c \ + ft_lstbegin.c \ + ft_lstend.c \ + ft_lstfind.c \ + ft_lstinsert.c \ + ft_lsterase.c \ + ft_lstfree.c \ + ft_lstlen.c \ + ft_lstcopy.c \ + \ ft_any.c \ ft_atoibase.c \ ft_convertbase.c \ @@ -126,9 +114,8 @@ SRCS = ft_memset.c \ \ ft_arrintchr.c - # ft_lstremove.c \ - ft_lstfind.c - # ft_lstnew.c \ + # deleted : \ + ft_lstnew.c \ ft_lstadd_front.c \ ft_lstsize.c \ ft_lstlast.c \ @@ -136,7 +123,15 @@ SRCS = ft_memset.c \ ft_lstdelone.c \ ft_lstclear.c \ ft_lstiter.c \ - ft_lstmap.c + ft_lstmap.c \ + \ + ft_putstr.c \ + ft_putchar.c \ + ft_putendl.c \ + ft_putnbr.c \ + ft_putnbrendl.c \ + ft_putnbrendl_fd.c \ + ft_putendl_fd.c \ ODIR = ./builds diff --git a/srcs/ft_lst_find.bak b/deleted/ft_lst_find.bak similarity index 100% rename from srcs/ft_lst_find.bak rename to deleted/ft_lst_find.bak diff --git a/srcs/ft_lstadd_back.bak b/deleted/ft_lstadd_back.bak similarity index 100% rename from srcs/ft_lstadd_back.bak rename to deleted/ft_lstadd_back.bak diff --git a/srcs/ft_lstadd_front.bak b/deleted/ft_lstadd_front.bak similarity index 100% rename from srcs/ft_lstadd_front.bak rename to deleted/ft_lstadd_front.bak diff --git a/srcs/ft_lstclear.bak b/deleted/ft_lstclear.bak similarity index 100% rename from srcs/ft_lstclear.bak rename to deleted/ft_lstclear.bak diff --git a/srcs/ft_lstdelone.bak b/deleted/ft_lstdelone.bak similarity index 100% rename from srcs/ft_lstdelone.bak rename to deleted/ft_lstdelone.bak diff --git a/srcs/ft_lstiter.bak b/deleted/ft_lstiter.bak similarity index 100% rename from srcs/ft_lstiter.bak rename to deleted/ft_lstiter.bak diff --git a/srcs/ft_lstlast.bak b/deleted/ft_lstlast.bak similarity index 100% rename from srcs/ft_lstlast.bak rename to deleted/ft_lstlast.bak diff --git a/srcs/ft_lstmap.bak b/deleted/ft_lstmap.bak similarity index 100% rename from srcs/ft_lstmap.bak rename to deleted/ft_lstmap.bak diff --git a/srcs/ft_lstnew.bak b/deleted/ft_lstnew.bak similarity index 100% rename from srcs/ft_lstnew.bak rename to deleted/ft_lstnew.bak diff --git a/srcs/ft_lstsize.bak b/deleted/ft_lstsize.bak similarity index 100% rename from srcs/ft_lstsize.bak rename to deleted/ft_lstsize.bak diff --git a/srcs/ft_putchar.c b/deleted/ft_putchar.c similarity index 100% rename from srcs/ft_putchar.c rename to deleted/ft_putchar.c diff --git a/srcs/ft_putendl.c b/deleted/ft_putendl.c similarity index 100% rename from srcs/ft_putendl.c rename to deleted/ft_putendl.c diff --git a/srcs/ft_putendl_fd.c b/deleted/ft_putendl_fd.c similarity index 100% rename from srcs/ft_putendl_fd.c rename to deleted/ft_putendl_fd.c diff --git a/srcs/ft_putnbr.c b/deleted/ft_putnbr.c similarity index 100% rename from srcs/ft_putnbr.c rename to deleted/ft_putnbr.c diff --git a/srcs/ft_putnbrendl.c b/deleted/ft_putnbrendl.c similarity index 100% rename from srcs/ft_putnbrendl.c rename to deleted/ft_putnbrendl.c diff --git a/srcs/ft_putnbrendl_fd.c b/deleted/ft_putnbrendl_fd.c similarity index 100% rename from srcs/ft_putnbrendl_fd.c rename to deleted/ft_putnbrendl_fd.c diff --git a/srcs/ft_putstr.c b/deleted/ft_putstr.c similarity index 100% rename from srcs/ft_putstr.c rename to deleted/ft_putstr.c diff --git a/includes/libft.h b/includes/libft.h index 16430c8..2d13ab4 100644 --- a/includes/libft.h +++ b/includes/libft.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:45:53 by hulamy #+# #+# */ -/* Updated: 2022/03/24 16:38:25 by simplonco ### ########.fr */ +/* Updated: 2022/03/24 17:00:08 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,10 +52,19 @@ char **ft_split(char const *s, char c); char *ft_itoa(long int n); char *ft_utoa(unsigned long int n); char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); + void ft_putchar_fd(char c, int fd); void ft_putstr_fd(char *s, int fd); -void ft_putendl_fd(char *s, int fd); void ft_putnbr_fd(int n, int fd); +void ft_putnbrbase(int nbr, char *base); + +/* +void ft_putchar(char c); +void ft_putendl(char const *str); +void ft_putnbr(int nbr); +void ft_putstr(char const *str); +void ft_putendl_fd(char *s, int fd); +*/ typedef struct s_list { @@ -108,11 +117,6 @@ int ft_strnequ(char const *s1, char const *s2, size_t n); char *ft_strnew(size_t size); void *ft_memalloc(size_t size); void ft_memdel(void **ap); -void ft_putchar(char c); -void ft_putendl(char const *str); -void ft_putnbr(int nbr); -void ft_putstr(char const *str); -void ft_putnbrbase(int nbr, char *base); int ft_atoibase(char *str, char *base); char *ft_convertbase(char *nbr, char *base_from, char *base_to); char *ft_convertbase_free(char *nbr, char *b_from, char *b_to); diff --git a/srcs/ft_lstremove.delete b/srcs/ft_lstremove.delete deleted file mode 100644 index 08cd46d..0000000 --- a/srcs/ft_lstremove.delete +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstremove.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: simplonco +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/03/23 22:44:55 by simplonco #+# #+# */ -/* Updated: 2022/03/23 22:46:30 by simplonco ### ########.fr */ -/* */ -/* ************************************************************************** */ - -/* - * remove an element of the list, by moving the content of the next element - * and delete and free the next element - */ - -#include "libft.h" - -void ft_lstremove(t_list *lst, void (*del)(void *)) -{ - t_list *next_tmp; - - if (!lst || !del) - return ; - next_tmp = lst->next; - del(lst->content); - lst->content = lst->next->content; - lst->next = lst->next->next; - free(next_tmp); -} diff --git a/srcs/ft_lstremove_next.delete b/srcs/ft_lstremove_next.delete deleted file mode 100644 index 926f5d5..0000000 --- a/srcs/ft_lstremove_next.delete +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstremove_next.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: simplonco +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/03/23 21:42:05 by simplonco #+# #+# */ -/* Updated: 2022/03/23 21:42:55 by simplonco ### ########.fr */ -/* */ -/* ************************************************************************** */ - -/* - * remove the next element of the list, delete its content, and free it - * then rejoin the list without this element - */ - -#include "libft.h" - -void ft_lstremove_next(t_list *lst, void (*del)(void *)) -{ - t_list *next_tmp; - - if (!lst || !lst->next || !del) - return ; - next_tmp = lst->next->next; - del(lst->next->content); - free(lst->next); - lst->next = next_tmp; -} diff --git a/srcs/ft_putnbrbase.c b/srcs/ft_putnbrbase.c index bf0d627..e98bac4 100644 --- a/srcs/ft_putnbrbase.c +++ b/srcs/ft_putnbrbase.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/11/16 15:17:00 by hulamy #+# #+# */ -/* Updated: 2018/11/16 15:23:43 by hulamy ### ########.fr */ +/* Updated: 2022/03/24 17:01:57 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,13 +47,13 @@ void ft_putnbrbase(int nbr, char *base) { if (n < 0) { - ft_putchar('-'); + ft_putchar_fd('-', 1); n = -n; } while (base[i]) i++; if (n >= i) ft_putnbrbase(n / i, base); - ft_putchar(base[n % i]); + ft_putchar_fd(base[n % i], 1); } } From 2767ff165f48330340f35276d6dbf193f91ea8c2 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Thu, 24 Mar 2022 21:01:03 +0100 Subject: [PATCH 5/6] lsterase correction oublis verif existence list avant et apres --- srcs/ft_lsterase.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/srcs/ft_lsterase.c b/srcs/ft_lsterase.c index 75e477d..d05522c 100644 --- a/srcs/ft_lsterase.c +++ b/srcs/ft_lsterase.c @@ -6,7 +6,7 @@ /* By: simplonco +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/03/24 15:31:16 by simplonco #+# #+# */ -/* Updated: 2022/03/24 15:40:32 by simplonco ### ########.fr */ +/* Updated: 2022/03/24 20:54:20 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,8 +22,10 @@ void ft_lsterase(t_list *lst, void (*del)(void *)) if (!lst || !del) return ; del(lst->content); - lst->prev->next = lst->next; - lst->next->prev = lst->prev; + if (lst->prev) + lst->prev->next = lst->next; + if (lst->next) + lst->next->prev = lst->prev; free(lst); lst = NULL; } From 8fe843722b5af4fa5bdb31fcd1a1a7051a59c9a9 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Fri, 22 Apr 2022 17:32:42 +0200 Subject: [PATCH 6/6] changed arrintchr name for arrint --- Makefile | 2 +- includes/libft.h | 4 ++-- srcs/{ft_arrintchr.c => ft_arrint.c} | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) rename srcs/{ft_arrintchr.c => ft_arrint.c} (79%) diff --git a/Makefile b/Makefile index 2019249..2181f97 100644 --- a/Makefile +++ b/Makefile @@ -112,7 +112,7 @@ SRCS = ft_memset.c \ ft_sqrt.c \ ft_free_tab.c \ \ - ft_arrintchr.c + ft_arrint.c # deleted : \ ft_lstnew.c \ diff --git a/includes/libft.h b/includes/libft.h index 2d13ab4..2425bb0 100644 --- a/includes/libft.h +++ b/includes/libft.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:45:53 by hulamy #+# #+# */ -/* Updated: 2022/03/24 17:00:08 by simplonco ### ########.fr */ +/* Updated: 2022/04/21 19:31:18 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -135,6 +135,6 @@ int ft_sign(int i); int ft_sqrt(int i); void ft_free_tab(char **tab); -int ft_arrintchr(int * intarr, int comp, size_t size); +int ft_arrint(int * intarr, int comp, size_t size); #endif diff --git a/srcs/ft_arrintchr.c b/srcs/ft_arrint.c similarity index 79% rename from srcs/ft_arrintchr.c rename to srcs/ft_arrint.c index 936ffc9..abe2927 100644 --- a/srcs/ft_arrintchr.c +++ b/srcs/ft_arrint.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_arrintchr.c :+: :+: :+: */ +/* ft_arrint.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: simplonco +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2022/03/23 14:25:28 by simplonco #+# #+# */ -/* Updated: 2022/03/23 14:25:37 by simplonco ### ########.fr */ +/* Created: 2022/04/21 19:30:25 by simplonco #+# #+# */ +/* Updated: 2022/04/21 19:30:35 by simplonco ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ #include "libft.h" -int ft_arrintchr(int * intarr, int comp, size_t size) +int ft_arrint(int * intarr, int comp, size_t size) { size_t i;