diff options
| -rw-r--r-- | Makefile | 33 | ||||
| -rw-r--r-- | ft_calloc.c | 12 | ||||
| -rw-r--r-- | ft_lstadd_back.c | 17 | ||||
| -rw-r--r-- | ft_lstadd_back_bonus.c | 29 | ||||
| -rw-r--r-- | ft_lstadd_front.c | 7 | ||||
| -rw-r--r-- | ft_lstadd_front_bonus.c | 19 | ||||
| -rw-r--r-- | ft_lstclear.c | 15 | ||||
| -rw-r--r-- | ft_lstclear_bonus.c | 27 | ||||
| -rw-r--r-- | ft_lstdelone.c | 8 | ||||
| -rw-r--r-- | ft_lstdelone_bonus.c | 20 | ||||
| -rw-r--r-- | ft_lstiter.c | 10 | ||||
| -rw-r--r-- | ft_lstiter_bonus.c | 23 | ||||
| -rw-r--r-- | ft_lstlast.c | 11 | ||||
| -rw-r--r-- | ft_lstlast_bonus.c | 23 | ||||
| -rw-r--r-- | ft_lstmap.c | 17 | ||||
| -rw-r--r-- | ft_lstmap_bonus.c | 29 | ||||
| -rw-r--r-- | ft_lstnew.c | 14 | ||||
| -rw-r--r-- | ft_lstnew_bonus.c | 25 | ||||
| -rw-r--r-- | ft_lstsize.c | 15 | ||||
| -rw-r--r-- | ft_lstsize_bonus.c | 27 | ||||
| -rw-r--r-- | ft_memmove.c | 28 | ||||
| -rw-r--r-- | ft_putchar.c | 2 | ||||
| -rw-r--r-- | libft.h | 18 | ||||
| -rw-r--r-- | libft_bonus.h | 32 |
24 files changed, 306 insertions, 155 deletions
@@ -1,5 +1,20 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: cacharle <marvin@42.fr> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2019/10/08 15:45:53 by cacharle #+# #+# # +# Updated: 2019/10/09 08:56:04 by cacharle ### ########.fr # +# # +# **************************************************************************** # + +LIB = ar rc +RM = rm -f + CC = gcc -CCFLAGS = -Wall -Wextra -Werror -fPIC +CCFLAGS = -Wall -Wextra -Werror NAME = libft.a SRC = ft_atoi.c ft_bzero.c ft_isalnum.c ft_isalpha.c ft_isascii.c ft_isdigit.c ft_isprint.c \ @@ -12,17 +27,27 @@ SRC = ft_atoi.c ft_bzero.c ft_isalnum.c ft_isalpha.c ft_isascii.c ft_isdigit.c f ft_strrchr.c ft_split.c ft_strstr.c ft_substr.c ft_strtrim.c ft_tolower.c \ ft_toupper.c ft_strlcpy.c ft_calloc.c OBJ = $(SRC:.c=.o) +INCLUDE = libft.h + +BONUSSRC = ft_lstadd_back_bonus.c ft_lstadd_front_bonus.c ft_lstclear_bonus.c \ + ft_lstdelone_bonus.c ft_lstiter_bonus.c ft_lstlast_bonus.c \ + ft_lstmap_bonus.c ft_lstnew_bonus.c ft_lstsize_bonus.c +BONUSOBJ = $(BONUSSRC:.c=.o) +BONUSINCLUDE = libft_bonus.h all: $(NAME) -$(NAME): $(OBJ) libft.h - ar rc $(NAME) $(OBJ) +$(NAME): $(OBJ) $(INCLUDE) + $(LIB) $(NAME) $(OBJ) + +bonus: $(OBJ) $(BONUSOBJ) $(INCLUDE) $(BONUSINCLUDE) + $(LIB) $(NAME) $(OBJ) $(BONUSOBJ) %.o: %.c $(CC) $(CCFLAGS) -c -o $@ $< clean: - rm -f $(OBJ) + rm -f $(OBJ) $(BONUSOBJ) fclean: clean rm -f $(NAME) diff --git a/ft_calloc.c b/ft_calloc.c index 0cdce92..9248e54 100644 --- a/ft_calloc.c +++ b/ft_calloc.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 12:45:37 by cacharle #+# #+# */ -/* Updated: 2019/10/07 12:47:58 by cacharle ### ########.fr */ +/* Updated: 2019/10/09 09:07:26 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,12 +15,12 @@ void *ft_calloc(size_t count, size_t size) { - void *mem; + void *mem; - if (count == 0 || size == 0) - { - return (NULL); - } + if (count == 0 || size == 0) + { + return (NULL); + } if ((mem = malloc(count * size)) == NULL) return (NULL); ft_bzero(mem, count * size); diff --git a/ft_lstadd_back.c b/ft_lstadd_back.c deleted file mode 100644 index e2cbf2a..0000000 --- a/ft_lstadd_back.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -void ft_lstadd_back(t_list **alst, t_list *new) -{ - t_list *cursor; - - if (*alst == NULL) - { - *alst = new; - return ; - } - cursor = *alst; - while (cursor->next != NULL) - cursor = cursor->next; - cursor->next = new; -} diff --git a/ft_lstadd_back_bonus.c b/ft_lstadd_back_bonus.c new file mode 100644 index 0000000..177245b --- /dev/null +++ b/ft_lstadd_back_bonus.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_back_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:02:03 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:07:46 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +void ft_lstadd_back(t_list **alst, t_list *new) +{ + t_list *cursor; + + if (*alst == NULL) + { + *alst = new; + return ; + } + cursor = *alst; + while (cursor->next != NULL) + cursor = cursor->next; + cursor->next = new; +} diff --git a/ft_lstadd_front.c b/ft_lstadd_front.c deleted file mode 100644 index 4b1be2a..0000000 --- a/ft_lstadd_front.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "libft.h" - -void ft_lstadd_front(t_list **alst, t_list *new) -{ - new->next = *alst; - *alst = new; -} diff --git a/ft_lstadd_front_bonus.c b/ft_lstadd_front_bonus.c new file mode 100644 index 0000000..7fe99de --- /dev/null +++ b/ft_lstadd_front_bonus.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_front_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:02:25 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:07:57 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_bonus.h" + +void ft_lstadd_front(t_list **alst, t_list *new) +{ + new->next = *alst; + *alst = new; +} diff --git a/ft_lstclear.c b/ft_lstclear.c deleted file mode 100644 index b944cda..0000000 --- a/ft_lstclear.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -void ft_lstclear(t_list **lst, void (*del)(void *)) -{ - t_list *tmp; - - while (*lst != NULL) - { - tmp = (*lst)->next; - (*del)((*lst)->content); - free(*lst); - *lst = tmp; - } -} diff --git a/ft_lstclear_bonus.c b/ft_lstclear_bonus.c new file mode 100644 index 0000000..933b6d5 --- /dev/null +++ b/ft_lstclear_bonus.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstclear_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:02:39 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:08:22 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +void ft_lstclear(t_list **lst, void (*del)(void *)) +{ + t_list *tmp; + + while (*lst != NULL) + { + tmp = (*lst)->next; + (*del)((*lst)->content); + free(*lst); + *lst = tmp; + } +} diff --git a/ft_lstdelone.c b/ft_lstdelone.c deleted file mode 100644 index 4cc1106..0000000 --- a/ft_lstdelone.c +++ /dev/null @@ -1,8 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -void ft_lstdelone(t_list *lst, void (*del)(void *)) -{ - (*del)(lst->content); - free(lst); -} diff --git a/ft_lstdelone_bonus.c b/ft_lstdelone_bonus.c new file mode 100644 index 0000000..8add0f3 --- /dev/null +++ b/ft_lstdelone_bonus.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstdelone_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:03:02 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:08:36 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +void ft_lstdelone(t_list *lst, void (*del)(void *)) +{ + (*del)(lst->content); + free(lst); +} diff --git a/ft_lstiter.c b/ft_lstiter.c deleted file mode 100644 index 7eed34b..0000000 --- a/ft_lstiter.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "libft.h" - -void ft_lstiter(t_list *lst, void (*f)(t_list *)) -{ - while (lst != NULL) - { - (*f)(lst); - lst = lst->next; - } -} diff --git a/ft_lstiter_bonus.c b/ft_lstiter_bonus.c new file mode 100644 index 0000000..132e223 --- /dev/null +++ b/ft_lstiter_bonus.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstiter_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:03:22 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:08:56 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +void ft_lstiter(t_list *lst, void (*f)(t_list *)) +{ + while (lst != NULL) + { + (*f)(lst); + lst = lst->next; + } +} diff --git a/ft_lstlast.c b/ft_lstlast.c deleted file mode 100644 index 7442937..0000000 --- a/ft_lstlast.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -t_list *ft_lstlast(t_list *lst) -{ - if (lst == NULL) - return (NULL); - while (lst->next != NULL) - lst = lst->next; - return (lst); -} diff --git a/ft_lstlast_bonus.c b/ft_lstlast_bonus.c new file mode 100644 index 0000000..e3195e8 --- /dev/null +++ b/ft_lstlast_bonus.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstlast_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:03:40 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:08:12 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +t_list *ft_lstlast(t_list *lst) +{ + if (lst == NULL) + return (NULL); + while (lst->next != NULL) + lst = lst->next; + return (lst); +} diff --git a/ft_lstmap.c b/ft_lstmap.c deleted file mode 100644 index 41a7e19..0000000 --- a/ft_lstmap.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *)) -{ - t_list *mapped; - t_list *tmp; - - while (lst != NULL) - { - tmp = ft_lstnew(lst->content); - tmp->next = lst->next; - tmp = (*f)(tmp); - ft_lstadd_back(&mapped, tmp); - } - return (mapped); -} diff --git a/ft_lstmap_bonus.c b/ft_lstmap_bonus.c new file mode 100644 index 0000000..4cb195f --- /dev/null +++ b/ft_lstmap_bonus.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstmap_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:03:57 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:09:13 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *)) +{ + t_list *mapped; + t_list *tmp; + + while (lst != NULL) + { + tmp = ft_lstnew(lst->content); + tmp->next = lst->next; + tmp = (*f)(tmp); + ft_lstadd_back(&mapped, tmp); + } + return (mapped); +} diff --git a/ft_lstnew.c b/ft_lstnew.c deleted file mode 100644 index 01ab599..0000000 --- a/ft_lstnew.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -t_list *ft_lstnew(void const *content) -{ - t_list *elem; - - if ((elem = (t_list*)malloc(sizeof(t_list))) == NULL) - return (NULL); - /* elem->content = (void*)content; */ - (void)content; - elem->next = NULL; - return (elem); -} diff --git a/ft_lstnew_bonus.c b/ft_lstnew_bonus.c new file mode 100644 index 0000000..9f09a85 --- /dev/null +++ b/ft_lstnew_bonus.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstnew_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:01:16 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:07:37 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +t_list *ft_lstnew(void const *content) +{ + t_list *elem; + + if ((elem = (t_list*)malloc(sizeof(t_list))) == NULL) + return (NULL); + elem->content = (void*)content; + elem->next = NULL; + return (elem); +} diff --git a/ft_lstsize.c b/ft_lstsize.c deleted file mode 100644 index 4324269..0000000 --- a/ft_lstsize.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <stdlib.h> -#include "libft.h" - -int ft_lstsize(t_list *lst) -{ - int counter; - - counter = 0; - while (lst != NULL) - { - counter++; - lst = lst->next; - } - return (counter); -} diff --git a/ft_lstsize_bonus.c b/ft_lstsize_bonus.c new file mode 100644 index 0000000..193fced --- /dev/null +++ b/ft_lstsize_bonus.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstsize_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 09:04:28 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:08:06 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "libft_bonus.h" + +int ft_lstsize(t_list *lst) +{ + int counter; + + counter = 0; + while (lst != NULL) + { + counter++; + lst = lst->next; + } + return (counter); +} diff --git a/ft_memmove.c b/ft_memmove.c index d5d6789..1c97fab 100644 --- a/ft_memmove.c +++ b/ft_memmove.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */ -/* Updated: 2019/10/07 12:20:25 by cacharle ### ########.fr */ +/* Updated: 2019/10/09 09:06:05 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,20 +16,20 @@ void *ft_memmove(void *dst, const void *src, size_t len) { - size_t i; - t_byte *dst_cast; - t_byte *src_cast; + size_t i; + t_byte *dst_cast; + t_byte *src_cast; if (dst == NULL && src == NULL) return (NULL); - dst_cast = (t_byte*)dst; - src_cast = (t_byte*)src; - i = -1; - if (dst_cast < src_cast) - while (++i < len) - dst_cast[i] = src_cast[i]; - else - while (len-- > 0) - dst_cast[len] = src_cast[len]; - return (dst); + dst_cast = (t_byte*)dst; + src_cast = (t_byte*)src; + i = -1; + if (dst_cast < src_cast) + while (++i < len) + dst_cast[i] = src_cast[i]; + else + while (len-- > 0) + dst_cast[len] = src_cast[len]; + return (dst); } diff --git a/ft_putchar.c b/ft_putchar.c index d8dc595..0e01aea 100644 --- a/ft_putchar.c +++ b/ft_putchar.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:53:31 by cacharle #+# #+# */ -/* Updated: 2019/10/07 09:53:40 by cacharle ### ########.fr */ +/* Updated: 2019/10/09 08:45:20 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:45:02 by cacharle #+# #+# */ -/* Updated: 2019/10/07 14:30:19 by cacharle ### ########.fr */ +/* Updated: 2019/10/09 08:58:46 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,13 +18,7 @@ # define TRUE 1 # define FALSE 0 -typedef unsigned char t_byte; - -typedef struct s_list -{ - void *content; - struct s_list *next; -} t_list; +typedef unsigned char t_byte; void *ft_memset(void *s, int c, size_t n); void ft_bzero(void *s, size_t n); @@ -79,13 +73,5 @@ 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); -t_list *ft_lstnew(void const *content); -void ft_lstadd_front(t_list **alst, t_list *new); -int ft_lstsize(t_list *lst); -t_list *ft_lstlast(t_list *lst); -void ft_lstadd_back(t_list **alst, t_list *new); -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)(t_list *)); #endif diff --git a/libft_bonus.h b/libft_bonus.h new file mode 100644 index 0000000..41b1d33 --- /dev/null +++ b/libft_bonus.h @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libft_bonus.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/09 08:58:54 by cacharle #+# #+# */ +/* Updated: 2019/10/09 09:11:45 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef LIBFT_BONUS_H +# define LIBFT_BONUS_H + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +t_list *ft_lstnew(void const *content); +void ft_lstadd_front(t_list **alst, t_list *new); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **alst, t_list *new); +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)(t_list *)); +t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *)); + +#endif |
