diff --git a/.gitignore b/.gitignore index 9d11296..a799c93 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ build obj -.config \ No newline at end of file diff --git a/Makefile b/Makefile index 3c0cd7c..ae81e54 100644 --- a/Makefile +++ b/Makefile @@ -17,11 +17,6 @@ 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/\([A-Za-z0-9_]*\)=y/-D\1=1/;s/\([A-Za-z0-9_]*\)=n/-D\1=0/') -CFLAGS += $(CONFIG_FLAGS) - - all: $(LIBRARY) $(OBJ_DIR) $(BUILD_DIR): @@ -64,12 +59,3 @@ fclean: clean re: fclean all .PHONY: all clean fclean re tests - -CONFIG_FILE := .config - -genconfig: - @echo -e " C\t${CONFIG_FILE}" - @echo "USE_SLIST=y" > $(CONFIG_FILE) - @echo "USE_DLIST=y" >> $(CONFIG_FILE) - @echo "USE_STACK=y" >> $(CONFIG_FILE) - diff --git a/hdrs/libft.h b/hdrs/libft.h index f572d16..842c72a 100644 --- a/hdrs/libft.h +++ b/hdrs/libft.h @@ -1,14 +1,7 @@ #ifndef LIBFT_H -#define LIBFT_H -#include -#if DEBUG -#include -#define DEBUG_PRINT(fmt, ...) \ - fprintf(stderr, "[DEBUG] %s:%d:%s(): " fmt "\n", \ - __FILE__, __LINE__, __func__, ##__VA_ARGS__) -#else -#define DEBUG_PRINT(fmt, ...) ((void)0) -#endif +# define LIBFT_H + +# include void *ft_realloc(void *ptr, size_t old_size, size_t new_size); @@ -56,30 +49,29 @@ typedef struct s_string char *data; } t_string; -/* Single Linked List */ -#if USE_SLIST -typedef struct s_slist +/* List */ +typedef struct s_list { void *data; - struct s_slist *next; -} t_slist; + struct s_list *next; +} t_list; -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); +/* 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); -#endif /* Vector */ typedef struct s_vec { diff --git a/srcs/slist/ft_slist_clear.c b/srcs/lst/ft_lstclear.c similarity index 66% rename from srcs/slist/ft_slist_clear.c rename to srcs/lst/ft_lstclear.c index 71e8b17..5d736dd 100644 --- a/srcs/slist/ft_slist_clear.c +++ b/srcs/lst/ft_lstclear.c @@ -1,15 +1,13 @@ -#if USE_SLIST #include "libft.h" #include -void ft_slist_clear(t_slist **lst) +void ft_lstclear(t_list **lst) { - t_slist *tmp; + t_list *tmp; while (lst && *lst) { tmp = (*lst)->next; free(*lst); *lst = tmp; } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/srcs/lst/ft_lstempty.c b/srcs/lst/ft_lstempty.c new file mode 100644 index 0000000..84d5e21 --- /dev/null +++ b/srcs/lst/ft_lstempty.c @@ -0,0 +1,6 @@ +#include "libft.h" + +int ft_lstempty(t_list *lst) +{ + return (lst == NULL); +} \ No newline at end of file diff --git a/srcs/slist/ft_slist_find.c b/srcs/lst/ft_lstfind.c similarity index 61% rename from srcs/slist/ft_slist_find.c rename to srcs/lst/ft_lstfind.c index 423bc94..aff4f59 100644 --- a/srcs/slist/ft_slist_find.c +++ b/srcs/lst/ft_lstfind.c @@ -1,7 +1,6 @@ -#if USE_SLIST #include "libft.h" -t_slist *ft_slist_find(t_slist *lst, void *data, int (*cmp)(void *, void *)) +t_list *ft_lstfind(t_list *lst, void *data, int (*cmp)(void *, void *)) { while (lst) { @@ -10,5 +9,4 @@ t_slist *ft_slist_find(t_slist *lst, void *data, int (*cmp)(void *, void *)) lst = lst->next; } return (NULL); -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/srcs/slist/ft_slist_get.c b/srcs/lst/ft_lstget.c similarity index 70% rename from srcs/slist/ft_slist_get.c rename to srcs/lst/ft_lstget.c index af4bda8..f2f5dc1 100644 --- a/srcs/slist/ft_slist_get.c +++ b/srcs/lst/ft_lstget.c @@ -1,7 +1,6 @@ -#if USE_SLIST #include "libft.h" -t_slist *ft_slist_get(t_slist *lst, int index) +t_list *ft_lstget(t_list *lst, int index) { int i = 0; while (lst && i < index) @@ -11,4 +10,3 @@ t_slist *ft_slist_get(t_slist *lst, int index) } return ((i == index) ? lst : NULL); } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_insert.c b/srcs/lst/ft_lstinsert.c similarity index 75% rename from srcs/slist/ft_slist_insert.c rename to srcs/lst/ft_lstinsert.c index 9286ac1..dae06da 100644 --- a/srcs/slist/ft_slist_insert.c +++ b/srcs/lst/ft_lstinsert.c @@ -1,10 +1,9 @@ -#if USE_SLIST #include "libft.h" -int ft_slist_insert(t_slist **lst, t_slist *node, int index) +int ft_lstinsert(t_list **lst, t_list *node, int index) { - t_slist *curr = *lst; - t_slist *prev = NULL; + t_list *curr = *lst; + t_list *prev = NULL; int i = 0; if (index < 0 || !node) @@ -29,4 +28,3 @@ int ft_slist_insert(t_slist **lst, t_slist *node, int index) } return (-1); } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_iter.c b/srcs/lst/ft_lstiter.c similarity index 57% rename from srcs/slist/ft_slist_iter.c rename to srcs/lst/ft_lstiter.c index ed64e52..4556347 100644 --- a/srcs/slist/ft_slist_iter.c +++ b/srcs/lst/ft_lstiter.c @@ -1,7 +1,6 @@ -#if USE_SLIST #include "libft.h" -void ft_slist_iter(t_slist *lst, void (*f)(void *)) +void ft_lstiter(t_list *lst, void (*f)(void *)) { while (lst) { @@ -9,4 +8,3 @@ void ft_slist_iter(t_slist *lst, void (*f)(void *)) lst = lst->next; } } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_new.c b/srcs/lst/ft_lstnew.c similarity index 52% rename from srcs/slist/ft_slist_new.c rename to srcs/lst/ft_lstnew.c index 63ff49d..37f210b 100644 --- a/srcs/slist/ft_slist_new.c +++ b/srcs/lst/ft_lstnew.c @@ -1,9 +1,8 @@ -#if USE_SLIST #include "libft.h" -t_slist *ft_slist_new(void *data) +t_list *ft_lstnew(void *data) { - t_slist *node = (t_slist *)malloc(sizeof(t_slist)); + t_list *node = (t_list *)malloc(sizeof(t_list)); if (!node) return (NULL); @@ -12,5 +11,4 @@ t_slist *ft_slist_new(void *data) node->next = NULL; return node; -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/srcs/slist/ft_slist_pop.c b/srcs/lst/ft_lstpop.c similarity index 76% rename from srcs/slist/ft_slist_pop.c rename to srcs/lst/ft_lstpop.c index a7bb9f6..40dd665 100644 --- a/srcs/slist/ft_slist_pop.c +++ b/srcs/lst/ft_lstpop.c @@ -1,10 +1,9 @@ -#if USE_SLIST #include "libft.h" -t_slist *ft_list_pop(t_slist **lst) +t_list *ft_lstpop(t_list **lst) { - t_slist *current; - t_slist *prev; + t_list *current; + t_list *prev; if (!lst || !*lst) return NULL; @@ -22,4 +21,3 @@ t_slist *ft_list_pop(t_slist **lst) prev->next = NULL; return current; } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_push.c b/srcs/lst/ft_lstpush.c similarity index 75% rename from srcs/slist/ft_slist_push.c rename to srcs/lst/ft_lstpush.c index 9e63ddd..1d87cf4 100644 --- a/srcs/slist/ft_slist_push.c +++ b/srcs/lst/ft_lstpush.c @@ -1,9 +1,8 @@ -#if USE_SLIST #include "libft.h" -void ft_slist_push(t_slist **lst, t_slist *node) +void ft_lstpush(t_list **lst, t_list *node) { - t_slist *current; + t_list *current; if (!lst || !node) return; @@ -21,4 +20,3 @@ void ft_slist_push(t_slist **lst, t_slist *node) current = current->next; current->next = node; } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_reverse.c b/srcs/lst/ft_lstreverse.c similarity index 56% rename from srcs/slist/ft_slist_reverse.c rename to srcs/lst/ft_lstreverse.c index f5532f9..af8b57d 100644 --- a/srcs/slist/ft_slist_reverse.c +++ b/srcs/lst/ft_lstreverse.c @@ -1,11 +1,10 @@ -#if USE_SLIST #include "libft.h" -void ft_slist_reverse(t_slist **lst) +void ft_lstreverse(t_list **lst) { - t_slist *prev = NULL; - t_slist *curr = *lst; - t_slist *next; + t_list *prev = NULL; + t_list *curr = *lst; + t_list *next; while (curr) { @@ -16,4 +15,3 @@ void ft_slist_reverse(t_slist **lst) } *lst = prev; } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_rm.c b/srcs/lst/ft_lstrm.c similarity index 69% rename from srcs/slist/ft_slist_rm.c rename to srcs/lst/ft_lstrm.c index 86e6d18..f129f75 100644 --- a/srcs/slist/ft_slist_rm.c +++ b/srcs/lst/ft_lstrm.c @@ -1,10 +1,9 @@ -#if USE_SLIST #include "libft.h" -void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)) +void ft_lstrm(t_list **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)) { - t_slist *curr = *lst; - t_slist *prev = NULL; + t_list *curr = *lst; + t_list *prev = NULL; while (curr) { @@ -22,5 +21,4 @@ void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*d prev = curr; curr = curr->next; } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/srcs/slist/ft_slist_shift.c b/srcs/lst/ft_lstshift.c similarity index 65% rename from srcs/slist/ft_slist_shift.c rename to srcs/lst/ft_lstshift.c index 3e40019..7a43812 100644 --- a/srcs/slist/ft_slist_shift.c +++ b/srcs/lst/ft_lstshift.c @@ -1,9 +1,8 @@ -#if USE_SLIST #include "libft.h" -t_slist *ft_slist_shift(t_slist **lst) +t_list *ft_lstshift(t_list **lst) { - t_slist *first; + t_list *first; if (!lst || !*lst) return NULL; @@ -12,4 +11,3 @@ t_slist *ft_slist_shift(t_slist **lst) first->next = NULL; return first; } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_size.c b/srcs/lst/ft_lstsize.c similarity index 71% rename from srcs/slist/ft_slist_size.c rename to srcs/lst/ft_lstsize.c index 27ba999..2327fe0 100644 --- a/srcs/slist/ft_slist_size.c +++ b/srcs/lst/ft_lstsize.c @@ -1,7 +1,6 @@ -#if USE_SLIST #include "libft.h" -int ft_slist_size(t_slist *lst) +int ft_lstsize(t_list *lst) { int size = 0; while (lst) @@ -11,4 +10,3 @@ int ft_slist_size(t_slist *lst) } return size; } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_unshift.c b/srcs/lst/ft_lstunshift.c similarity index 58% rename from srcs/slist/ft_slist_unshift.c rename to srcs/lst/ft_lstunshift.c index 5e2a459..8d78989 100644 --- a/srcs/slist/ft_slist_unshift.c +++ b/srcs/lst/ft_lstunshift.c @@ -1,11 +1,9 @@ -#if USE_SLIST #include "libft.h" -void ft_slist_unshift(t_slist **lst, t_slist *node) +void ft_lstunshift(t_list **lst, t_list *node) { if (!lst || !node) return; node->next = *lst; *lst = node; } -#endif \ No newline at end of file diff --git a/srcs/slist/ft_slist_empty.c b/srcs/slist/ft_slist_empty.c deleted file mode 100644 index cdcfa20..0000000 --- a/srcs/slist/ft_slist_empty.c +++ /dev/null @@ -1,8 +0,0 @@ -#if USE_SLIST -#include "libft.h" - -int ft_slist_empty(t_slist *lst) -{ - return (lst == NULL); -} -#endif \ No newline at end of file