diff --git a/Makefile b/Makefile index ae81e54..87369c9 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ TESTS_SRCS = $(wildcard $(TESTS_DIR)/*.c) TESTS_OBJS = $(patsubst $(TESTS_DIR)/%.c,$(OBJ_DIR)/%.test.o,$(TESTS_SRCS)) TESTS_BINS = $(patsubst $(TESTS_DIR)/%.c,$(BUILD_DIR)/%_test,$(TESTS_SRCS)) +# Flags for configuration +CONFIG_FLAGS := $(shell grep -E '^[a-zA-Z0-9_]+=' .config | sed 's/=\(.*\)/=-D\U&/g' | sed 's/=/ /g' | sed 's/y/1/;s/n/0/') + all: $(LIBRARY) $(OBJ_DIR) $(BUILD_DIR): diff --git a/hdrs/libft.h b/hdrs/libft.h index 842c72a..b459ba4 100644 --- a/hdrs/libft.h +++ b/hdrs/libft.h @@ -49,28 +49,27 @@ typedef struct s_string char *data; } t_string; -/* List */ -typedef struct s_list +/* Single Linked List */ +typedef struct s_slist { void *data; - struct s_list *next; -} t_list; + struct s_slist *next; +} t_slist; -/* List functions */ -t_list *ft_lstnew(void *data); -void ft_lstpush(t_list **lst, t_list *node); -void ft_lstunshift(t_list **lst, t_list *node); -t_list *ft_lstpop(t_list **lst); -t_list *ft_lstshift(t_list **lst); -int ft_lstsize(t_list *lst); -void ft_lstclear(t_list **lst); -void ft_lstreverse(t_list **lst); -int ft_lstempty(t_list *lst); -void ft_lstiter(t_list *lst, void (*f)(void *)); -void ft_lstrm(t_list **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)); -t_list *ft_lstfind(t_list *lst, void *data, int (*cmp)(void *, void *)); -int ft_lstinsert(t_list **lst, t_list *node, int index); -t_list *ft_lstget(t_list *lst, int index); +t_slist *ft_slist_new(void *data); +void ft_slist_push(t_slist **lst, t_slist *node); +void ft_slist_unshift(t_slist **lst, t_slist *node); +t_slist *ft_slist_pop(t_slist **lst); +t_slist *ft_slist_shift(t_slist **lst); +int ft_slist_size(t_slist *lst); +void ft_slist_clear(t_slist **lst); +void ft_slist_reverse(t_slist **lst); +int ft_slist_empty(t_slist *lst); +void ft_slist_iter(t_slist *lst, void (*f)(void *)); +void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)); +t_slist *ft_slist_find(t_slist *lst, void *data, int (*cmp)(void *, void *)); +int ft_slist_insert(t_slist **lst, t_slist *node, int index); +t_slist *ft_slist_get(t_slist *lst, int index); /* Vector */ typedef struct s_vec diff --git a/srcs/lst/ft_lstclear.c b/srcs/slist/ft_slist_clear.c similarity index 73% rename from srcs/lst/ft_lstclear.c rename to srcs/slist/ft_slist_clear.c index 5d736dd..70a0817 100644 --- a/srcs/lst/ft_lstclear.c +++ b/srcs/slist/ft_slist_clear.c @@ -1,9 +1,9 @@ #include "libft.h" #include -void ft_lstclear(t_list **lst) +void ft_slist_clear(t_slist **lst) { - t_list *tmp; + t_slist *tmp; while (lst && *lst) { tmp = (*lst)->next; diff --git a/srcs/lst/ft_lstempty.c b/srcs/slist/ft_slist_empty.c similarity index 59% rename from srcs/lst/ft_lstempty.c rename to srcs/slist/ft_slist_empty.c index 84d5e21..92ebf48 100644 --- a/srcs/lst/ft_lstempty.c +++ b/srcs/slist/ft_slist_empty.c @@ -1,6 +1,6 @@ #include "libft.h" -int ft_lstempty(t_list *lst) +int ft_slist_empty(t_slist *lst) { return (lst == NULL); } \ No newline at end of file diff --git a/srcs/lst/ft_lstfind.c b/srcs/slist/ft_slist_find.c similarity index 67% rename from srcs/lst/ft_lstfind.c rename to srcs/slist/ft_slist_find.c index aff4f59..a481743 100644 --- a/srcs/lst/ft_lstfind.c +++ b/srcs/slist/ft_slist_find.c @@ -1,6 +1,6 @@ #include "libft.h" -t_list *ft_lstfind(t_list *lst, void *data, int (*cmp)(void *, void *)) +t_slist *ft_slist_find(t_slist *lst, void *data, int (*cmp)(void *, void *)) { while (lst) { diff --git a/srcs/lst/ft_lstget.c b/srcs/slist/ft_slist_get.c similarity index 77% rename from srcs/lst/ft_lstget.c rename to srcs/slist/ft_slist_get.c index f2f5dc1..e3dfa26 100644 --- a/srcs/lst/ft_lstget.c +++ b/srcs/slist/ft_slist_get.c @@ -1,6 +1,6 @@ #include "libft.h" -t_list *ft_lstget(t_list *lst, int index) +t_slist *ft_slist_get(t_slist *lst, int index) { int i = 0; while (lst && i < index) diff --git a/srcs/lst/ft_lstinsert.c b/srcs/slist/ft_slist_insert.c similarity index 78% rename from srcs/lst/ft_lstinsert.c rename to srcs/slist/ft_slist_insert.c index dae06da..67239a7 100644 --- a/srcs/lst/ft_lstinsert.c +++ b/srcs/slist/ft_slist_insert.c @@ -1,9 +1,9 @@ #include "libft.h" -int ft_lstinsert(t_list **lst, t_list *node, int index) +int ft_slist_insert(t_slist **lst, t_slist *node, int index) { - t_list *curr = *lst; - t_list *prev = NULL; + t_slist *curr = *lst; + t_slist *prev = NULL; int i = 0; if (index < 0 || !node) diff --git a/srcs/lst/ft_lstiter.c b/srcs/slist/ft_slist_iter.c similarity index 65% rename from srcs/lst/ft_lstiter.c rename to srcs/slist/ft_slist_iter.c index 4556347..21681af 100644 --- a/srcs/lst/ft_lstiter.c +++ b/srcs/slist/ft_slist_iter.c @@ -1,6 +1,6 @@ #include "libft.h" -void ft_lstiter(t_list *lst, void (*f)(void *)) +void ft_slist_iter(t_slist *lst, void (*f)(void *)) { while (lst) { diff --git a/srcs/lst/ft_lstnew.c b/srcs/slist/ft_slist_new.c similarity index 58% rename from srcs/lst/ft_lstnew.c rename to srcs/slist/ft_slist_new.c index 37f210b..83c64ec 100644 --- a/srcs/lst/ft_lstnew.c +++ b/srcs/slist/ft_slist_new.c @@ -1,8 +1,8 @@ #include "libft.h" -t_list *ft_lstnew(void *data) +t_slist *ft_slist_new(void *data) { - t_list *node = (t_list *)malloc(sizeof(t_list)); + t_slist *node = (t_slist *)malloc(sizeof(t_slist)); if (!node) return (NULL); diff --git a/srcs/lst/ft_lstpop.c b/srcs/slist/ft_slist_pop.c similarity index 80% rename from srcs/lst/ft_lstpop.c rename to srcs/slist/ft_slist_pop.c index 40dd665..ae7aa6f 100644 --- a/srcs/lst/ft_lstpop.c +++ b/srcs/slist/ft_slist_pop.c @@ -1,9 +1,9 @@ #include "libft.h" -t_list *ft_lstpop(t_list **lst) +t_slist *ft_list_pop(t_slist **lst) { - t_list *current; - t_list *prev; + t_slist *current; + t_slist *prev; if (!lst || !*lst) return NULL; diff --git a/srcs/lst/ft_lstpush.c b/srcs/slist/ft_slist_push.c similarity index 79% rename from srcs/lst/ft_lstpush.c rename to srcs/slist/ft_slist_push.c index 1d87cf4..d49118b 100644 --- a/srcs/lst/ft_lstpush.c +++ b/srcs/slist/ft_slist_push.c @@ -1,8 +1,8 @@ #include "libft.h" -void ft_lstpush(t_list **lst, t_list *node) +void ft_slist_push(t_slist **lst, t_slist *node) { - t_list *current; + t_slist *current; if (!lst || !node) return; diff --git a/srcs/lst/ft_lstreverse.c b/srcs/slist/ft_slist_reverse.c similarity index 60% rename from srcs/lst/ft_lstreverse.c rename to srcs/slist/ft_slist_reverse.c index af8b57d..e399fb3 100644 --- a/srcs/lst/ft_lstreverse.c +++ b/srcs/slist/ft_slist_reverse.c @@ -1,10 +1,10 @@ #include "libft.h" -void ft_lstreverse(t_list **lst) +void ft_slist_reverse(t_slist **lst) { - t_list *prev = NULL; - t_list *curr = *lst; - t_list *next; + t_slist *prev = NULL; + t_slist *curr = *lst; + t_slist *next; while (curr) { diff --git a/srcs/lst/ft_lstrm.c b/srcs/slist/ft_slist_rm.c similarity index 72% rename from srcs/lst/ft_lstrm.c rename to srcs/slist/ft_slist_rm.c index f129f75..97f4b77 100644 --- a/srcs/lst/ft_lstrm.c +++ b/srcs/slist/ft_slist_rm.c @@ -1,9 +1,9 @@ #include "libft.h" -void ft_lstrm(t_list **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)) +void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)) { - t_list *curr = *lst; - t_list *prev = NULL; + t_slist *curr = *lst; + t_slist *prev = NULL; while (curr) { diff --git a/srcs/lst/ft_lstshift.c b/srcs/slist/ft_slist_shift.c similarity index 72% rename from srcs/lst/ft_lstshift.c rename to srcs/slist/ft_slist_shift.c index 7a43812..e5ee48f 100644 --- a/srcs/lst/ft_lstshift.c +++ b/srcs/slist/ft_slist_shift.c @@ -1,8 +1,8 @@ #include "libft.h" -t_list *ft_lstshift(t_list **lst) +t_slist *ft_slist_shift(t_slist **lst) { - t_list *first; + t_slist *first; if (!lst || !*lst) return NULL; diff --git a/srcs/lst/ft_lstsize.c b/srcs/slist/ft_slist_size.c similarity index 80% rename from srcs/lst/ft_lstsize.c rename to srcs/slist/ft_slist_size.c index 2327fe0..2957200 100644 --- a/srcs/lst/ft_lstsize.c +++ b/srcs/slist/ft_slist_size.c @@ -1,6 +1,6 @@ #include "libft.h" -int ft_lstsize(t_list *lst) +int ft_slist_size(t_slist *lst) { int size = 0; while (lst) diff --git a/srcs/lst/ft_lstunshift.c b/srcs/slist/ft_slist_unshift.c similarity index 66% rename from srcs/lst/ft_lstunshift.c rename to srcs/slist/ft_slist_unshift.c index 8d78989..850637f 100644 --- a/srcs/lst/ft_lstunshift.c +++ b/srcs/slist/ft_slist_unshift.c @@ -1,6 +1,6 @@ #include "libft.h" -void ft_lstunshift(t_list **lst, t_list *node) +void ft_slist_unshift(t_slist **lst, t_slist *node) { if (!lst || !node) return;