From 09f688ef23674078b4494a075531e22a2d540d0c Mon Sep 17 00:00:00 2001 From: Etienne Rey-bethbeder Date: Sun, 11 Dec 2022 18:48:37 +0100 Subject: [PATCH] Faut faire le parsing de la map --- .so_long.h.swp | Bin 0 -> 12288 bytes 42_libft | 1 - Makefile | 8 +- checker_linux | Bin 0 -> 38192 bytes get_next_line/get_next_line.c | 114 ++++++++++++++++ get_next_line/get_next_line.h | 28 ++++ get_next_line/get_next_line_bonus.c | 116 ++++++++++++++++ get_next_line/get_next_line_bonus.h | 28 ++++ get_next_line/get_next_line_utils.c | 75 +++++++++++ get_next_line/get_next_line_utils_bonus.c | 75 +++++++++++ libft/Makefile | 154 ++++++++++++++++++++++ libft/ft_atoi.c | 48 +++++++ libft/ft_atoi_check.c | 50 +++++++ libft/ft_bzero.c | 18 +++ libft/ft_calloc.c | 28 ++++ libft/ft_get_size.c | 29 ++++ libft/ft_isalnum.c | 20 +++ libft/ft_isalpha.c | 19 +++ libft/ft_isascii.c | 18 +++ libft/ft_isdigit.c | 18 +++ libft/ft_isprint.c | 18 +++ libft/ft_itoa.c | 54 ++++++++ libft/ft_lstadd_back.c | 21 +++ libft/ft_lstadd_front.c | 19 +++ libft/ft_lstclear.c | 27 ++++ libft/ft_lstdelone.c | 21 +++ libft/ft_lstiter.c | 22 ++++ libft/ft_lstlast.c | 25 ++++ libft/ft_lstmap.c | 42 ++++++ libft/ft_lstnew.c | 25 ++++ libft/ft_lstsize.c | 26 ++++ libft/ft_memchr.c | 29 ++++ libft/ft_memcmp.c | 29 ++++ libft/ft_memcpy.c | 32 +++++ libft/ft_memmove.c | 37 ++++++ libft/ft_memset.c | 28 ++++ libft/ft_power.c | 30 +++++ libft/ft_putchar_fd.c | 18 +++ libft/ft_putendl_fd.c | 25 ++++ libft/ft_putnbr_fd.c | 32 +++++ libft/ft_putstr_fd.c | 24 ++++ libft/ft_split.c | 117 ++++++++++++++++ libft/ft_strchr.c | 29 ++++ libft/ft_strdup.c | 31 +++++ libft/ft_striteri.c | 27 ++++ libft/ft_strjoin.c | 29 ++++ libft/ft_strlcat.c | 27 ++++ libft/ft_strlcpy.c | 30 +++++ libft/ft_strlen.c | 23 ++++ libft/ft_strmapi.c | 32 +++++ libft/ft_strncmp.c | 33 +++++ libft/ft_strnstr.c | 37 ++++++ libft/ft_strrchr.c | 33 +++++ libft/ft_strtrim.c | 86 ++++++++++++ libft/ft_substr.c | 35 +++++ libft/ft_tolower.c | 18 +++ libft/ft_toupper.c | 18 +++ libft/libft.a | Bin 0 -> 64666 bytes libft/libft.h | 71 ++++++++++ so_long | Bin 0 -> 57152 bytes so_long.c | 67 +++++++--- so_long.h | 10 +- 62 files changed, 2158 insertions(+), 26 deletions(-) create mode 100644 .so_long.h.swp delete mode 160000 42_libft create mode 100644 checker_linux create mode 100644 get_next_line/get_next_line.c create mode 100644 get_next_line/get_next_line.h create mode 100644 get_next_line/get_next_line_bonus.c create mode 100644 get_next_line/get_next_line_bonus.h create mode 100644 get_next_line/get_next_line_utils.c create mode 100644 get_next_line/get_next_line_utils_bonus.c create mode 100644 libft/Makefile create mode 100644 libft/ft_atoi.c create mode 100644 libft/ft_atoi_check.c create mode 100644 libft/ft_bzero.c create mode 100644 libft/ft_calloc.c create mode 100644 libft/ft_get_size.c create mode 100644 libft/ft_isalnum.c create mode 100644 libft/ft_isalpha.c create mode 100644 libft/ft_isascii.c create mode 100644 libft/ft_isdigit.c create mode 100644 libft/ft_isprint.c create mode 100644 libft/ft_itoa.c create mode 100644 libft/ft_lstadd_back.c create mode 100644 libft/ft_lstadd_front.c create mode 100644 libft/ft_lstclear.c create mode 100644 libft/ft_lstdelone.c create mode 100644 libft/ft_lstiter.c create mode 100644 libft/ft_lstlast.c create mode 100644 libft/ft_lstmap.c create mode 100644 libft/ft_lstnew.c create mode 100644 libft/ft_lstsize.c create mode 100644 libft/ft_memchr.c create mode 100644 libft/ft_memcmp.c create mode 100644 libft/ft_memcpy.c create mode 100644 libft/ft_memmove.c create mode 100644 libft/ft_memset.c create mode 100644 libft/ft_power.c create mode 100644 libft/ft_putchar_fd.c create mode 100644 libft/ft_putendl_fd.c create mode 100644 libft/ft_putnbr_fd.c create mode 100644 libft/ft_putstr_fd.c create mode 100644 libft/ft_split.c create mode 100644 libft/ft_strchr.c create mode 100644 libft/ft_strdup.c create mode 100644 libft/ft_striteri.c create mode 100644 libft/ft_strjoin.c create mode 100644 libft/ft_strlcat.c create mode 100644 libft/ft_strlcpy.c create mode 100644 libft/ft_strlen.c create mode 100644 libft/ft_strmapi.c create mode 100644 libft/ft_strncmp.c create mode 100644 libft/ft_strnstr.c create mode 100644 libft/ft_strrchr.c create mode 100644 libft/ft_strtrim.c create mode 100644 libft/ft_substr.c create mode 100644 libft/ft_tolower.c create mode 100644 libft/ft_toupper.c create mode 100644 libft/libft.a create mode 100644 libft/libft.h create mode 100755 so_long diff --git a/.so_long.h.swp b/.so_long.h.swp new file mode 100644 index 0000000000000000000000000000000000000000..4693ecd15482114fcf773fccf41eddc8365aeaaa GIT binary patch literal 12288 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 Z+eg>0QN!_&s{El1isOi86qsE8{{pOBm#zQ+ literal 0 HcmV?d00001 diff --git a/get_next_line/get_next_line.c b/get_next_line/get_next_line.c new file mode 100644 index 0000000..9ef66b8 --- /dev/null +++ b/get_next_line/get_next_line.c @@ -0,0 +1,114 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/15 23:42:35 by erey-bet #+# #+# */ +/* Updated: 2022/11/07 17:11:17 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "get_next_line.h" + +static char *read_line(int fd) +{ + char *buff; + int y; + + buff = ft_calloc(BUFFER_SIZE + 1, 1); + if (buff == NULL) + return (NULL); + y = read(fd, buff, BUFFER_SIZE); + if (y == -1) + { + free(buff); + return (NULL); + } + buff[y] = '\0'; + return (buff); +} + +static char *join_str(char *s1, char *s2) +{ + char *n_str; + int i; + int len; + + len = ft_strlen(s1); + n_str = ft_calloc(len + ft_strlen(s2) + 1, 1); + if (n_str == NULL) + return (NULL); + i = -1; + if (s1 != NULL) + while (s1[++i]) + n_str[i] = s1[i]; + i = -1; + while (s2[++i]) + n_str[i + len] = s2[i]; + n_str[i + len] = '\0'; + free(s1); + free(s2); + return (n_str); +} + +static char *get_text(char *save) +{ + int i; + char *new_s; + + i = 0; + while (save[i] && save[i] != '\n') + i++; + if (save[i] == '\n') + i++; + new_s = ft_calloc(i + 1, 1); + if (new_s == NULL) + return (NULL); + ft_strlcpy(new_s, save, i + 1); + ft_strlcpy(save, save + i, ft_strlen(save)); + return (new_s); +} + +static void *make_free(char *buff, char **save, int choice) +{ + if (choice == 1) + { + free(buff); + free(*save); + } + else + { + free(*save); + *save = NULL; + } + return (NULL); +} + +char *get_next_line(int fd) +{ + char *buff; + char *str; + static char *save; + + buff = NULL; + while (buff == NULL || (ft_strchr(save, '\n') == -1)) + { + buff = read_line(fd); + if (buff == NULL || (ft_strlen(buff) == 0 && ft_strlen(save) == 0)) + return (make_free(buff, &save, 1)); + if (ft_strlen(buff) == 0) + { + free(buff); + break ; + } + save = join_str(save, buff); + if (save == NULL) + return (NULL); + } + str = get_text(save); + if (ft_strlen(save) == 0) + make_free(NULL, &save, 2); + return (str); +} diff --git a/get_next_line/get_next_line.h b/get_next_line/get_next_line.h new file mode 100644 index 0000000..dba8046 --- /dev/null +++ b/get_next_line/get_next_line.h @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/15 23:40:12 by erey-bet #+# #+# */ +/* Updated: 2022/11/15 19:42:13 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GET_NEXT_LINE_H +# define GET_NEXT_LINE_H + +# include +# include +# ifndef BUFFER_SIZE +# define BUFFER_SIZE 41 +# endif + +char *get_next_line(int fd); +void *ft_calloc(size_t nitems, size_t size); +size_t ft_strlen(const char *str); +int ft_strchr(const char *str, int search); +void ft_strlcpy(char *dest, const char *src, size_t size); + +#endif diff --git a/get_next_line/get_next_line_bonus.c b/get_next_line/get_next_line_bonus.c new file mode 100644 index 0000000..6a0eb9b --- /dev/null +++ b/get_next_line/get_next_line_bonus.c @@ -0,0 +1,116 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/15 23:42:35 by erey-bet #+# #+# */ +/* Updated: 2022/11/16 13:20:26 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "get_next_line_bonus.h" + +static char *read_line(int fd) +{ + char *buff; + int y; + + buff = ft_calloc(BUFFER_SIZE + 1, 1); + if (buff == NULL) + return (NULL); + y = read(fd, buff, BUFFER_SIZE); + if (y == -1) + { + free(buff); + return (NULL); + } + buff[y] = '\0'; + return (buff); +} + +static char *join_str(char *s1, char *s2) +{ + char *n_str; + int i; + int len; + + len = ft_strlen(s1); + n_str = ft_calloc(len + ft_strlen(s2) + 1, 1); + if (n_str == NULL) + return (NULL); + i = -1; + if (s1 != NULL) + while (s1[++i]) + n_str[i] = s1[i]; + i = -1; + while (s2[++i]) + n_str[i + len] = s2[i]; + n_str[i + len] = '\0'; + free(s1); + free(s2); + return (n_str); +} + +static char *get_text(char *save) +{ + int i; + char *new_s; + + i = 0; + while (save[i] && save[i] != '\n') + i++; + if (save[i] == '\n') + i++; + new_s = ft_calloc(i + 1, 1); + if (new_s == NULL) + return (NULL); + ft_strlcpy(new_s, save, i + 1); + ft_strlcpy(save, save + i, ft_strlen(save)); + return (new_s); +} + +static void *make_free(char *buff, char **save, int choice) +{ + if (choice == 1) + { + free(buff); + free(*save); + } + else + { + free(*save); + *save = NULL; + } + return (NULL); +} + +char *get_next_line(int fd) +{ + char *buff; + char *str; + static char *save[1024]; + + if (fd < 0 || fd >= 1024) + return (NULL); + buff = NULL; + while (buff == NULL || ft_strchr(save[fd], '\n') == -1) + { + buff = read_line(fd); + if (buff == NULL || (ft_strlen(buff) == 0 && ft_strlen(save[fd]) == 0)) + return (make_free(buff, &save[fd], 1)); + if (ft_strlen(buff) == 0) + { + free(buff); + break ; + } + save[fd] = join_str(save[fd], buff); + if (save[fd] == NULL) + return (NULL); + } + str = get_text(save[fd]); + if (ft_strlen(save[fd]) == 0) + make_free(NULL, &save[fd], 2); + return (str); +} diff --git a/get_next_line/get_next_line_bonus.h b/get_next_line/get_next_line_bonus.h new file mode 100644 index 0000000..c36a5a1 --- /dev/null +++ b/get_next_line/get_next_line_bonus.h @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_bonus.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/15 23:40:12 by erey-bet #+# #+# */ +/* Updated: 2022/11/15 20:00:55 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GET_NEXT_LINE_BONUS_H +# define GET_NEXT_LINE_BONUS_H + +# include +# include +# ifndef BUFFER_SIZE +# define BUFFER_SIZE 41 +# endif + +char *get_next_line(int fd); +void *ft_calloc(size_t nitems, size_t size); +size_t ft_strlen(const char *str); +int ft_strchr(const char *str, int search); +void ft_strlcpy(char *dest, const char *src, size_t size); + +#endif diff --git a/get_next_line/get_next_line_utils.c b/get_next_line/get_next_line_utils.c new file mode 100644 index 0000000..624fad3 --- /dev/null +++ b/get_next_line/get_next_line_utils.c @@ -0,0 +1,75 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/11/07 17:19:41 by erey-bet #+# #+# */ +/* Updated: 2022/11/07 17:19:42 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "get_next_line.h" + +void *ft_calloc(size_t nitems, size_t size) +{ + size_t i; + char *tmp; + + if (nitems == 0 || size == 0) + return (malloc(0)); + if (nitems * size < nitems) + return (NULL); + tmp = malloc(nitems * size); + if (tmp == NULL) + return (NULL); + i = 0; + while (i < nitems * size) + { + tmp[i] = '\0'; + i++; + } + return (tmp); +} + +size_t ft_strlen(const char *str) +{ + int i; + + if (str == NULL) + return (0); + i = 0; + while (str[i] != '\0') + i++; + return (i); +} + +int ft_strchr(const char *str, int search) +{ + int i; + + i = 0; + while (str[i] || str[i] == (unsigned char)search) + { + if (str[i] == (unsigned char)search) + return (i); + i++; + } + return (-1); +} + +void ft_strlcpy(char *dest, const char *src, size_t size) +{ + size_t i; + + i = 0; + if (!size || !dest || !src) + return ; + while (i < size - 1 && src[i] != '\0') + { + dest[i] = src[i]; + i++; + } + dest[i] = '\0'; +} diff --git a/get_next_line/get_next_line_utils_bonus.c b/get_next_line/get_next_line_utils_bonus.c new file mode 100644 index 0000000..528ac2f --- /dev/null +++ b/get_next_line/get_next_line_utils_bonus.c @@ -0,0 +1,75 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_utils_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/11/07 17:19:41 by erey-bet #+# #+# */ +/* Updated: 2022/11/15 19:57:30 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "get_next_line.h" + +void *ft_calloc(size_t nitems, size_t size) +{ + size_t i; + char *tmp; + + if (nitems == 0 || size == 0) + return (malloc(0)); + if (nitems * size < nitems) + return (NULL); + tmp = malloc(nitems * size); + if (tmp == NULL) + return (NULL); + i = 0; + while (i < nitems * size) + { + tmp[i] = '\0'; + i++; + } + return (tmp); +} + +size_t ft_strlen(const char *str) +{ + int i; + + if (str == NULL) + return (0); + i = 0; + while (str[i] != '\0') + i++; + return (i); +} + +int ft_strchr(const char *str, int search) +{ + int i; + + i = 0; + while (str[i] || str[i] == (unsigned char)search) + { + if (str[i] == (unsigned char)search) + return (i); + i++; + } + return (-1); +} + +void ft_strlcpy(char *dest, const char *src, size_t size) +{ + size_t i; + + i = 0; + if (!size || !dest || !src) + return ; + while (i < size - 1 && src[i] != '\0') + { + dest[i] = src[i]; + i++; + } + dest[i] = '\0'; +} diff --git a/libft/Makefile b/libft/Makefile new file mode 100644 index 0000000..e507ce0 --- /dev/null +++ b/libft/Makefile @@ -0,0 +1,154 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: erey-bet +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2022/09/27 04:19:30 by erey-bet #+# #+# # +# Updated: 2022/10/19 17:45:46 by erey-bet ### ########.fr # +# # +# **************************************************************************** # + +SRCS = ft_isalpha.c ft_isdigit.c ft_isalnum.c ft_isascii.c ft_isprint.c \ +ft_strlen.c ft_memset.c ft_bzero.c ft_memcpy.c ft_memmove.c ft_strlcpy.c \ +ft_strlcat.c ft_toupper.c ft_tolower.c ft_strchr.c ft_strrchr.c ft_strncmp.c \ +ft_memchr.c ft_memcmp.c ft_strnstr.c ft_atoi.c ft_calloc.c ft_strdup.c \ +ft_substr.c ft_strjoin.c ft_strtrim.c ft_split.c ft_itoa.c ft_strmapi.c \ +ft_striteri.c ft_putchar_fd.c ft_putstr_fd.c ft_putendl_fd.c ft_putnbr_fd.c \ +ft_get_size.c ft_power.c ft_atoi_check.c +OBJS = ${SRCS:.c=.o} +BONUS_SRCS = 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 +BONUS_OBJS = ${BONUS_SRCS:.c=.o} +CC = gcc +CFLAGS = -Wall -Wextra -Werror +NAME = libft.a + +ifdef BONUS + SRCS += ${BONUS_SRCS} +endif + +all: ${NAME} + +${NAME}: ${OBJS} + ar -rc ${NAME} ${OBJS} + +%.o:%.c + ${CC} ${CFLAGS} -c -o $@ $< + +clean: + rm -f ${OBJS} ${BONUS_OBJS} + +fclean: clean + rm -f ${NAME} + +re: fclean all + +bonus: + @make BONUS=1 + +coffee: + @clear + @echo "" + @echo " (" + @echo " ) (◦" + @echo " ___...(-------)-....___◦" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo '\._ "--...___...--" _."' + @echo ' \""--..__ __..--""/' + @echo ' "._ """----.....______.....----""" _."' + @echo ' ""--..,,_____ _____,,..--"""' + @echo ' """------"""' + @sleep 0.2 + @clear + @echo "" + @echo " (◦" + @echo " ◦ ◦ ) ( " + @echo " ___..(.------)--....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo '\._ "--...___...--" _."' + @echo ' \""--..__ __..--""/' + @echo ' "._ """----.....______.....----""" _."' + @echo ' ""--..,,_____ _____,,..--"""' + @echo ' """------"""' + @sleep 0.2 + @clear + @echo " ◦" + @echo " ( ◦" + @echo " ◦ ) ( " + @echo " ___..(.------)--....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo '\._ "--...___...--" _."' + @echo ' \""--..__ __..--""/' + @echo ' "._ """----.....______.....----""" _."' + @echo ' ""--..,,_____ _____,,..--"""' + @echo ' """------"""' + @sleep 0.2 + @clear + @echo "" + @echo " ( ) ◦" + @echo " ◦ ) (◦" + @echo " ___)...----)----....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo '\._ "--...___...--" _."' + @echo ' \""--..__ __..--""/' + @echo ' "._ """----.....______.....----""" _."' + @echo ' ""--..,,_____ _____,,..--"""' + @echo ' """------"""' + @sleep 0. + ${MAKE} coffee + +.PHONY: all clean fclean re bonus coffee diff --git a/libft/ft_atoi.c b/libft/ft_atoi.c new file mode 100644 index 0000000..a723bf6 --- /dev/null +++ b/libft/ft_atoi.c @@ -0,0 +1,48 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/21 08:21:05 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:44:20 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int ft_isspace(char c) +{ + if (c == ' ' || c == '\f' + ||c == '\n' || c == '\r' || c == '\t' || c == '\v') + return (1); + return (0); +} + +int ft_atoi(const char *nptr) +{ + long result; + int sign; + + while (ft_isspace(*nptr)) + nptr++; + sign = 1; + if (*nptr == '+' || *nptr == '-') + { + if (*nptr == '-') + sign = -1; + nptr++; + } + result = 0; + while (*nptr >= '0' && *nptr <= '9') + { + if (result >= 2147483647 && sign == 1) + return (-1); + else if (result >= 2147483647) + return (0); + result = result * 10 + *nptr - '0'; + nptr++; + } + return (result * sign); +} diff --git a/libft/ft_atoi_check.c b/libft/ft_atoi_check.c new file mode 100644 index 0000000..b549055 --- /dev/null +++ b/libft/ft_atoi_check.c @@ -0,0 +1,50 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi_check.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/21 08:21:05 by erey-bet #+# #+# */ +/* Updated: 2022/12/08 16:37:19 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int ft_isspace(char c) +{ + if (c == ' ' || c == '\f' + ||c == '\n' || c == '\r' || c == '\t' || c == '\v') + return (1); + return (0); +} + +int ft_atoi_check(const char *nptr) +{ + long result; + int sign; + + while (ft_isspace(*nptr)) + nptr++; + sign = 1; + if (*nptr == '+' || *nptr == '-') + { + if (*nptr == '-') + sign = -1; + nptr++; + } + result = 0; + while (*nptr >= '0' && *nptr <= '9') + { + result = result * 10 + *nptr++ - '0'; + if ((result > 2147483647 && sign == 1) + || (result > 2147483648 && sign == -1)) + return (0); + } + if (*nptr--) + return (0); + if (*nptr == '-' || *nptr == '+') + return (0); + return (1); +} diff --git a/libft/ft_bzero.c b/libft/ft_bzero.c new file mode 100644 index 0000000..8688fb4 --- /dev/null +++ b/libft/ft_bzero.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_bzero.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/26 15:21:33 by erey-bet #+# #+# */ +/* Updated: 2022/09/26 15:31:11 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_bzero(void *s, unsigned int n) +{ + ft_memset(s, 0, n); +} diff --git a/libft/ft_calloc.c b/libft/ft_calloc.c new file mode 100644 index 0000000..15af293 --- /dev/null +++ b/libft/ft_calloc.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_calloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/28 16:21:44 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 14:17:31 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_calloc(size_t nitems, size_t size) +{ + size_t *tmp; + + if (nitems == 0 || size == 0) + return (malloc(0)); + if (nitems * size < nitems) + return (NULL); + tmp = malloc(nitems * size); + if (tmp == NULL) + return (NULL); + ft_bzero(tmp, nitems * size); + return (tmp); +} diff --git a/libft/ft_get_size.c b/libft/ft_get_size.c new file mode 100644 index 0000000..ec08039 --- /dev/null +++ b/libft/ft_get_size.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_get_size.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/10 22:50:35 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:14:29 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_get_size(long n) +{ + long i; + + if (n == 0) + return (1); + i = 0; + n *= (n > 0) - (n < 0); + while (n > 0) + { + i++; + n = n / 10; + } + return (i); +} diff --git a/libft/ft_isalnum.c b/libft/ft_isalnum.c new file mode 100644 index 0000000..59a05d6 --- /dev/null +++ b/libft/ft_isalnum.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalnum.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/26 16:47:30 by erey-bet #+# #+# */ +/* Updated: 2022/09/26 16:50:25 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_isalnum(int c) +{ + if (!(c >= 'A' && c <= 'Z')) + if (!(c >= 'a' && c <= 'z')) + if (!(c >= '0' && c <= '9')) + return (0); + return (1); +} diff --git a/libft/ft_isalpha.c b/libft/ft_isalpha.c new file mode 100644 index 0000000..b23c00f --- /dev/null +++ b/libft/ft_isalpha.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalpha.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/17 17:34:33 by erey-bet #+# #+# */ +/* Updated: 2022/09/26 14:40:50 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_isalpha(int c) +{ + if (!(c >= 'A' && c <= 'Z')) + if (!(c >= 'a' && c <= 'z')) + return (0); + return (1); +} diff --git a/libft/ft_isascii.c b/libft/ft_isascii.c new file mode 100644 index 0000000..82b1c10 --- /dev/null +++ b/libft/ft_isascii.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isascii.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/17 18:06:14 by erey-bet #+# #+# */ +/* Updated: 2022/09/26 14:36:18 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_isascii(int c) +{ + if (c >= 0 && c <= 127) + return (1); + return (0); +} diff --git a/libft/ft_isdigit.c b/libft/ft_isdigit.c new file mode 100644 index 0000000..3b5cb1b --- /dev/null +++ b/libft/ft_isdigit.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isdigit.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/17 18:06:14 by erey-bet #+# #+# */ +/* Updated: 2022/09/26 14:41:48 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_isdigit(int c) +{ + if (c > 47 && c < 58) + return (1); + return (0); +} diff --git a/libft/ft_isprint.c b/libft/ft_isprint.c new file mode 100644 index 0000000..c8b42c6 --- /dev/null +++ b/libft/ft_isprint.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isprint.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/17 18:24:36 by erey-bet #+# #+# */ +/* Updated: 2022/07/17 18:27:27 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_isprint(int c) +{ + if (c >= 32 && c <= 126) + return (1); + return (0); +} diff --git a/libft/ft_itoa.c b/libft/ft_itoa.c new file mode 100644 index 0000000..54e40ab --- /dev/null +++ b/libft/ft_itoa.c @@ -0,0 +1,54 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/04 17:12:52 by erey-bet #+# #+# */ +/* Updated: 2022/10/26 16:00:48 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static void ft_itoa_bis(char *str, int len, int i, long nl) +{ + while (len > 1) + { + len--; + str[i] = (nl / ft_power(10, len) % 10) + 48; + i++; + } + str[i] = nl % 10 + 48; + i++; + str[i] = '\0'; +} + +char *ft_itoa(int n) +{ + char *str; + int len; + int i; + long nl; + + nl = n; + if (nl < 0) + nl *= -1; + len = ft_get_size(nl); + i = 0; + if (n < 0) + { + str = malloc(len + 2); + if (str == NULL) + return (NULL); + str[i] = '-'; + i++; + } + else + str = malloc(len + 1); + if (str == NULL) + return (NULL); + ft_itoa_bis(str, len, i, nl); + return (str); +} diff --git a/libft/ft_lstadd_back.c b/libft/ft_lstadd_back.c new file mode 100644 index 0000000..1e6c411 --- /dev/null +++ b/libft/ft_lstadd_back.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_back.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 23:14:10 by erey-bet #+# #+# */ +/* Updated: 2022/10/09 23:22:24 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstadd_back(t_list **lst, t_list *new) +{ + if (*lst != NULL) + ft_lstlast(*lst)->next = new; + else + *lst = new; +} diff --git a/libft/ft_lstadd_front.c b/libft/ft_lstadd_front.c new file mode 100644 index 0000000..746f007 --- /dev/null +++ b/libft/ft_lstadd_front.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_front.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 21:43:39 by erey-bet #+# #+# */ +/* Updated: 2022/10/09 22:02:22 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstadd_front(t_list **lst, t_list *new) +{ + new->next = *lst; + *lst = new; +} diff --git a/libft/ft_lstclear.c b/libft/ft_lstclear.c new file mode 100644 index 0000000..1778aa4 --- /dev/null +++ b/libft/ft_lstclear.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstclear.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 23:56:15 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:13:45 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstclear(t_list **lst, void (*del)(void*)) +{ + t_list *temp; + + if (lst == NULL || del == NULL) + return ; + while (*lst != NULL) + { + temp = (*lst)->next; + ft_lstdelone(*lst, del); + *lst = temp; + } +} diff --git a/libft/ft_lstdelone.c b/libft/ft_lstdelone.c new file mode 100644 index 0000000..d06004c --- /dev/null +++ b/libft/ft_lstdelone.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstdelone.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 23:22:38 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:15:03 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstdelone(t_list *lst, void (*del)(void*)) +{ + if (lst == NULL || del == NULL) + return ; + del(lst->content); + free(lst); +} diff --git a/libft/ft_lstiter.c b/libft/ft_lstiter.c new file mode 100644 index 0000000..1680813 --- /dev/null +++ b/libft/ft_lstiter.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstiter.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/10 00:42:33 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 00:56:30 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstiter(t_list *lst, void (*f)(void *)) +{ + while (lst != NULL) + { + f(lst->content); + lst = lst->next; + } +} diff --git a/libft/ft_lstlast.c b/libft/ft_lstlast.c new file mode 100644 index 0000000..9ca97dd --- /dev/null +++ b/libft/ft_lstlast.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstlast.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 23:03:50 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:14:51 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstlast(t_list *lst) +{ + t_list *current; + + current = lst; + if (current == NULL) + return (NULL); + while (current->next != NULL) + current = current->next; + return (current); +} diff --git a/libft/ft_lstmap.c b/libft/ft_lstmap.c new file mode 100644 index 0000000..217944a --- /dev/null +++ b/libft/ft_lstmap.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstmap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/10 01:03:28 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 14:55:38 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) +{ + t_list *head; + t_list *new; + + if (lst == NULL || f == NULL || del == NULL) + return (NULL); + new = ft_lstnew(f(lst->content)); + if (new == NULL) + { + ft_lstclear(&new, del); + return (NULL); + } + head = new; + lst = lst->next; + while (lst != NULL) + { + new->next = ft_lstnew(f(lst->content)); + if (new == NULL) + { + ft_lstclear(&head, del); + return (NULL); + } + new = new->next; + lst = lst->next; + } + return (head); +} diff --git a/libft/ft_lstnew.c b/libft/ft_lstnew.c new file mode 100644 index 0000000..8ef323a --- /dev/null +++ b/libft/ft_lstnew.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstnew.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 21:34:58 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:13:33 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstnew(void *content) +{ + t_list *list; + + list = malloc(sizeof(t_list)); + if (list == NULL) + return (NULL); + list->content = content; + list->next = NULL; + return (list); +} diff --git a/libft/ft_lstsize.c b/libft/ft_lstsize.c new file mode 100644 index 0000000..b510d2f --- /dev/null +++ b/libft/ft_lstsize.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstsize.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/09 22:59:07 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:14:41 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_lstsize(t_list *lst) +{ + int size; + + size = 0; + while (lst != NULL) + { + size++; + lst = lst->next; + } + return (size); +} diff --git a/libft/ft_memchr.c b/libft/ft_memchr.c new file mode 100644 index 0000000..f4e3580 --- /dev/null +++ b/libft/ft_memchr.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 19:02:18 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 02:19:17 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memchr(const void *memory_block, int searched_char, size_t size) +{ + size_t i; + unsigned char *tmp; + + i = 0; + tmp = (unsigned char *)memory_block; + while (i < size) + { + if (tmp[i] == (unsigned char)searched_char) + return (&tmp[i]); + i++; + } + return (NULL); +} diff --git a/libft/ft_memcmp.c b/libft/ft_memcmp.c new file mode 100644 index 0000000..eea3c83 --- /dev/null +++ b/libft/ft_memcmp.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memcmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 19:18:16 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 14:45:03 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_memcmp(const void *pointer1, const void *pointer2, size_t size) +{ + size_t i; + unsigned char *tmp1; + unsigned char *tmp2; + + if (size == 0) + return (0); + tmp1 = (unsigned char *)pointer1; + tmp2 = (unsigned char *)pointer2; + i = 0; + while (i < size - 1 && tmp1[i] == tmp2[i]) + i++; + return (tmp1[i] - tmp2[i]); +} diff --git a/libft/ft_memcpy.c b/libft/ft_memcpy.c new file mode 100644 index 0000000..f7699a7 --- /dev/null +++ b/libft/ft_memcpy.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/26 15:32:11 by erey-bet #+# #+# */ +/* Updated: 2022/09/27 06:36:02 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memcpy(void *dest, const void *src, size_t s) +{ + size_t i; + char *tmp_dest; + const char *tmp_src; + + if (dest == NULL && src == NULL) + return (NULL); + i = 0; + tmp_dest = dest; + tmp_src = src; + while (i < s) + { + tmp_dest[i] = tmp_src[i]; + i++; + } + return (dest); +} diff --git a/libft/ft_memmove.c b/libft/ft_memmove.c new file mode 100644 index 0000000..7101813 --- /dev/null +++ b/libft/ft_memmove.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memmove.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 06:50:08 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 14:35:27 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memmove(void *dest, const void *src, size_t s) +{ + size_t i; + char *d; + const char *sc; + + if (dest == NULL && src == NULL) + return (dest); + d = dest; + sc = src; + if (d < sc) + ft_memcpy(d, sc, s); + else + { + i = s; + while (i > 0) + { + i--; + d[i] = sc[i]; + } + } + return (dest); +} diff --git a/libft/ft_memset.c b/libft/ft_memset.c new file mode 100644 index 0000000..5c2adcd --- /dev/null +++ b/libft/ft_memset.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memset.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/26 14:46:33 by erey-bet #+# #+# */ +/* Updated: 2022/10/15 23:31:18 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memset(void *ptr, int v, size_t count) +{ + size_t i; + char *tmp; + + i = 0; + tmp = ptr; + while (i < count) + { + tmp[i] = v; + i++; + } + return (ptr); +} diff --git a/libft/ft_power.c b/libft/ft_power.c new file mode 100644 index 0000000..2f9df8d --- /dev/null +++ b/libft/ft_power.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_power.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/10 22:50:22 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 22:50:31 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_power(int nb, int power) +{ + int i; + int new_nb; + + if (power < 0) + return (0); + i = 0; + new_nb = 1; + while (i < power) + { + i++; + new_nb *= nb; + } + return (new_nb); +} diff --git a/libft/ft_putchar_fd.c b/libft/ft_putchar_fd.c new file mode 100644 index 0000000..2cd47eb --- /dev/null +++ b/libft/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/05 00:21:56 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 00:31:51 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putchar_fd(char c, int fd) +{ + write(fd, &c, 1); +} diff --git a/libft/ft_putendl_fd.c b/libft/ft_putendl_fd.c new file mode 100644 index 0000000..9484dd0 --- /dev/null +++ b/libft/ft_putendl_fd.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putendl_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/05 00:48:29 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 22:14:10 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putendl_fd(char *s, int fd) +{ + if (s == NULL) + return ; + while (*s) + { + ft_putchar_fd(*s, fd); + s++; + } + ft_putchar_fd('\n', fd); +} diff --git a/libft/ft_putnbr_fd.c b/libft/ft_putnbr_fd.c new file mode 100644 index 0000000..8c549e9 --- /dev/null +++ b/libft/ft_putnbr_fd.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/05 10:22:16 by erey-bet #+# #+# */ +/* Updated: 2022/10/18 17:32:20 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putnbr_fd(int n, int fd) +{ + int len; + long nl; + + nl = n; + if (nl < 0) + nl *= -1; + len = ft_get_size(nl); + if (n < 0) + ft_putchar_fd('-', fd); + while (len > 1) + { + --len; + ft_putchar_fd(nl / ft_power(10, len) % 10 + 48, fd); + } + ft_putchar_fd(nl % 10 + 48, fd); +} diff --git a/libft/ft_putstr_fd.c b/libft/ft_putstr_fd.c new file mode 100644 index 0000000..15457fa --- /dev/null +++ b/libft/ft_putstr_fd.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/05 00:32:38 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 22:13:50 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putstr_fd(char *s, int fd) +{ + if (s == NULL) + return ; + while (*s) + { + ft_putchar_fd(*s, fd); + s++; + } +} diff --git a/libft/ft_split.c b/libft/ft_split.c new file mode 100644 index 0000000..7b305d7 --- /dev/null +++ b/libft/ft_split.c @@ -0,0 +1,117 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_split.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/28 09:52:05 by erey-bet #+# #+# */ +/* Updated: 2022/10/12 16:14:08 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int get_len_all(char const *s, char c) +{ + int i; + int check; + int count; + + i = 0; + check = 0; + count = 0; + while (s[i]) + { + if (s[i] != c && check == 0) + { + count++; + check = 1; + } + else if (s[i] == c && check == 1) + check = 0; + i++; + } + return (count); +} + +static int get_len_next(char const *s, char c, int i) +{ + int y; + int count; + + y = i; + count = 0; + while (s[y] == c) + y++; + while (s[y] && s[y++] != c) + count++; + return (count); +} + +static void *ft_malloc_split(char **strs, int *iyx, char const *s, char c) +{ + iyx[1]++; + strs[iyx[1]] = malloc(get_len_next(s, c, iyx[0]) + 1); + if (strs[iyx[1]] == NULL) + { + iyx[1]--; + while (iyx[1] >= 0) + { + free(strs[iyx[1]]); + iyx[1]--; + } + free(strs); + return (NULL); + } + return (""); +} + +static char **ft_split_bis(char const *s, char c, char **strs, int *iyx) +{ + int boo; + + boo = 0; + while (s[iyx[0]]) + { + if (s[iyx[0]] != c) + { + if (boo == 0) + if (ft_malloc_split(strs, iyx, s, c) == NULL) + return (NULL); + boo = 1; + strs[iyx[1]][iyx[2]] = s[iyx[0]]; + iyx[2]++; + } + else if (boo == 1) + { + strs[iyx[1]][iyx[2]] = '\0'; + iyx[2] = 0; + boo = 0; + } + iyx[0]++; + } + if (boo == 1) + strs[iyx[1]][iyx[2]] = '\0'; + return (strs); +} + +char **ft_split(char const *s, char c) +{ + char **strs; + int iyx[3]; + + iyx[0] = 0; + iyx[1] = -1; + iyx[2] = 0; + if (s == NULL) + return (NULL); + strs = malloc(sizeof(char *) * (get_len_all(s, c) + 1)); + if (strs == NULL) + return (NULL); + if (ft_split_bis(s, c, strs, iyx) == NULL) + return (NULL); + iyx[1]++; + strs[iyx[1]] = NULL; + return (strs); +} diff --git a/libft/ft_strchr.c b/libft/ft_strchr.c new file mode 100644 index 0000000..a6eabee --- /dev/null +++ b/libft/ft_strchr.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 10:05:58 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 02:22:26 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strchr(const char *str, int search) +{ + int i; + + i = 0; + while (str[i] || str[i] == (unsigned char)search) + { + if (str[i] == (unsigned char)search) + { + return ((char *)&str[i]); + } + i++; + } + return (NULL); +} diff --git a/libft/ft_strdup.c b/libft/ft_strdup.c new file mode 100644 index 0000000..1830bfc --- /dev/null +++ b/libft/ft_strdup.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strdup.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/26 14:25:30 by erey-bet #+# #+# */ +/* Updated: 2022/09/28 16:32:55 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strdup(const char *src) +{ + char *src_copy; + int i; + + src_copy = (char *)malloc(sizeof(char) * ft_strlen(src) + 1); + if (src_copy == NULL) + return (NULL); + i = 0; + while (src[i]) + { + src_copy[i] = src[i]; + i++; + } + src_copy[i] = '\0'; + return (src_copy); +} diff --git a/libft/ft_striteri.c b/libft/ft_striteri.c new file mode 100644 index 0000000..5f63e33 --- /dev/null +++ b/libft/ft_striteri.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_striteri.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/04 23:17:51 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 22:14:20 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_striteri(char *s, void (*f)(unsigned int, char*)) +{ + unsigned int i; + + if (f == NULL || s == NULL) + return ; + i = 0; + while (s[i]) + { + f(i, &s[i]); + i++; + } +} diff --git a/libft/ft_strjoin.c b/libft/ft_strjoin.c new file mode 100644 index 0000000..3af4212 --- /dev/null +++ b/libft/ft_strjoin.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/27 14:47:27 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 14:19:45 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin(char const *s1, char const *s2) +{ + char *tmp; + int size; + + if (s1 == NULL || s2 == NULL) + return (NULL); + size = ft_strlen(s1) + ft_strlen(s2) + 1; + tmp = malloc(size); + if (tmp == NULL) + return (NULL); + ft_strlcpy(tmp, s1, size); + ft_strlcat(tmp, s2, size); + return (tmp); +} diff --git a/libft/ft_strlcat.c b/libft/ft_strlcat.c new file mode 100644 index 0000000..dd71c78 --- /dev/null +++ b/libft/ft_strlcat.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/19 13:02:39 by erey-bet #+# #+# */ +/* Updated: 2022/10/14 17:49:58 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlcat(char *dest, const char *src, size_t size) +{ + size_t len_dest; + size_t len_src; + + if (size == 0) + return (ft_strlen(src)); + len_dest = ft_strlen(dest); + if (len_dest >= size) + return (ft_strlen(src) + (size)); + len_src = ft_strlcpy(dest + len_dest, src, size - len_dest); + return (len_dest + len_src); +} diff --git a/libft/ft_strlcpy.c b/libft/ft_strlcpy.c new file mode 100644 index 0000000..b80d474 --- /dev/null +++ b/libft/ft_strlcpy.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/17 19:03:49 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 14:37:25 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlcpy(char *dest, const char *src, size_t size) +{ + size_t i; + + i = 0; + if (size) + { + while (i < size - 1 && src[i] != '\0') + { + dest[i] = src[i]; + i++; + } + dest[i] = '\0'; + } + return (ft_strlen(src)); +} diff --git a/libft/ft_strlen.c b/libft/ft_strlen.c new file mode 100644 index 0000000..4cb5f51 --- /dev/null +++ b/libft/ft_strlen.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/15 11:46:17 by erey-bet #+# #+# */ +/* Updated: 2022/09/27 08:52:38 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlen(const char *str) +{ + int i; + + i = 0; + while (str[i] != '\0') + i++; + return (i); +} diff --git a/libft/ft_strmapi.c b/libft/ft_strmapi.c new file mode 100644 index 0000000..325e929 --- /dev/null +++ b/libft/ft_strmapi.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strmapi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/04 22:55:32 by erey-bet #+# #+# */ +/* Updated: 2022/10/10 15:43:18 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) +{ + unsigned int i; + char *str; + + if (s == NULL || f == NULL) + return (NULL); + str = ft_strdup(s); + if (str == NULL) + return (NULL); + i = 0; + while (s[i]) + { + str[i] = f(i, s[i]); + i++; + } + return (str); +} diff --git a/libft/ft_strncmp.c b/libft/ft_strncmp.c new file mode 100644 index 0000000..9ca8735 --- /dev/null +++ b/libft/ft_strncmp.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strncmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/18 19:09:01 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 15:04:46 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_strncmp(const char *s1, const char *s2, size_t n) +{ + size_t i; + unsigned char *tmp_s1; + unsigned char *tmp_s2; + + if (n <= 0) + return (0); + tmp_s1 = (unsigned char *)s1; + tmp_s2 = (unsigned char *)s2; + i = 1; + while (*tmp_s1 == *tmp_s2 && (*tmp_s1 != '\0' && *tmp_s2 != '\0') && i < n) + { + tmp_s1++; + tmp_s2++; + i++; + } + return (*tmp_s1 - *tmp_s2); +} diff --git a/libft/ft_strnstr.c b/libft/ft_strnstr.c new file mode 100644 index 0000000..2845cbc --- /dev/null +++ b/libft/ft_strnstr.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strnstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/28 09:37:24 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 16:39:12 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strnstr(const char *big, const char *little, size_t len) +{ + size_t i; + size_t y; + char *b; + + b = (char *)big; + i = 0; + if (!*little || (little == big && ft_strlen(little) <= len)) + return (b); + while (i < len && big[i]) + { + y = 0; + while (b[i + y] == little[y] && i + y < len) + { + y++; + if (little[y] == '\0') + return (&b[i]); + } + i++; + } + return (NULL); +} diff --git a/libft/ft_strrchr.c b/libft/ft_strrchr.c new file mode 100644 index 0000000..9e48783 --- /dev/null +++ b/libft/ft_strrchr.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strrchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 11:13:35 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 02:23:25 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strrchr(const char *str, int search) +{ + int i; + char *last; + + i = 0; + last = NULL; + while (str[i] || str[i] == (unsigned char)search) + { + if (str[i] == (unsigned char)search) + { + last = (char *)&str[i]; + if (str[i] == 0) + return (last); + } + i++; + } + return (last); +} diff --git a/libft/ft_strtrim.c b/libft/ft_strtrim.c new file mode 100644 index 0000000..c54b7cc --- /dev/null +++ b/libft/ft_strtrim.c @@ -0,0 +1,86 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strtrim.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/29 02:41:32 by erey-bet #+# #+# */ +/* Updated: 2022/10/05 14:41:29 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int get_start(const char *str, char const *set) +{ + int i; + int y; + int check; + + i = 0; + while (str[i]) + { + y = 0; + check = 0; + while (set[y]) + { + if (str[i] == set[y]) + check = 1; + y++; + } + if (check == 0) + return (i); + i++; + } + return (0); +} + +static int get_end(const char *str, char const *set) +{ + int i; + int y; + int check; + + i = ft_strlen(str) - 1; + while (i > 0) + { + y = 0; + check = 0; + while (set[y]) + { + if (str[i] == set[y]) + check = 1; + y++; + } + if (check == 0) + return (i + 1); + i--; + } + return (0); +} + +char *ft_strtrim(char const *s1, char const *set) +{ + char *str; + int i; + int start; + int end; + + if (s1 == NULL || set == NULL) + return (NULL); + start = get_start(s1, set); + end = get_end(s1, set); + str = malloc(end - start + 1); + if (str == NULL) + return (NULL); + i = 0; + while (start < end) + { + str[i] = s1[start]; + i++; + start++; + } + str[i] = '\0'; + return (str); +} diff --git a/libft/ft_substr.c b/libft/ft_substr.c new file mode 100644 index 0000000..2a41b7b --- /dev/null +++ b/libft/ft_substr.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_substr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/28 16:33:43 by erey-bet #+# #+# */ +/* Updated: 2022/10/11 22:09:26 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_substr(char const *s, unsigned int start, size_t len) +{ + long size; + char *new_s; + + if (s == NULL) + return (NULL); + size = ft_strlen(s) - start; + if (size < 0) + size = 0; + else if ((unsigned long)size > len) + size = len; + new_s = malloc(size + 1); + if (new_s == NULL) + return (NULL); + if (start <= ft_strlen(s)) + ft_strlcpy(new_s, s + start, len + 1); + else + new_s[0] = '\0'; + return (new_s); +} diff --git a/libft/ft_tolower.c b/libft/ft_tolower.c new file mode 100644 index 0000000..eea41be --- /dev/null +++ b/libft/ft_tolower.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_tolower.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 10:04:55 by erey-bet #+# #+# */ +/* Updated: 2022/09/27 10:05:32 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_tolower(int c) +{ + if (c >= 'A' && c <= 'Z') + c = c + 32; + return (c); +} diff --git a/libft/ft_toupper.c b/libft/ft_toupper.c new file mode 100644 index 0000000..3bb2a91 --- /dev/null +++ b/libft/ft_toupper.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_toupper.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/27 10:01:53 by erey-bet #+# #+# */ +/* Updated: 2022/09/27 10:04:19 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_toupper(int c) +{ + if (c >= 'a' && c <= 'z') + c = c - 32; + return (c); +} diff --git a/libft/libft.a b/libft/libft.a new file mode 100644 index 0000000000000000000000000000000000000000..17e7ae0ab4ff3396cd8df53b0ccc4d27fb5e1e17 GIT binary patch literal 64666 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 BQ~Ce^ literal 0 HcmV?d00001 diff --git a/libft/libft.h b/libft/libft.h new file mode 100644 index 0000000..7546f2e --- /dev/null +++ b/libft/libft.h @@ -0,0 +1,71 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/26 16:31:10 by erey-bet #+# #+# */ +/* Updated: 2022/10/18 17:32:25 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef LIBFT_H +# define LIBFT_H +# include +# include + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +int ft_isalpha(int c); +int ft_isdigit(int c); +int ft_isalnum(int c); +int ft_isascii(int c); +int ft_isprint(int c); +int ft_toupper(int c); +int ft_tolower(int c); +size_t ft_strlen(const char *str); +void *ft_memset(void *ptr, int v, size_t count); +void ft_bzero(void *s, unsigned int n); +void *ft_memcpy(void *dest, const void *src, size_t s); +void *ft_memmove(void *dest, const void *src, size_t s); +void *ft_memchr(const void *memory_block, int searched_char, size_t size); +int ft_memcmp(const void *pointer1, const void *pointer2, size_t size); +size_t ft_strlcpy(char *dest, const char *src, size_t size); +char *ft_strnstr(const char *big, const char *little, size_t len); +char *ft_strchr(const char *str, int search); +char *ft_strrchr(const char *str, int search); +int ft_strncmp(const char *s1, const char *s2, size_t n); +size_t ft_strlcat(char *dest, const char *src, size_t size); +char *ft_strdup(const char *src); +int ft_atoi(const char *nptr); +char **ft_split(char const *s, char c); +void *ft_calloc(size_t nitems, size_t size); +char *ft_itoa(int n); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +void ft_striteri(char *s, void (*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); +int ft_get_size(long n); +int ft_power(int nb, int power); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char *ft_substr(char const *s, unsigned int start, size_t len); +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **lst, t_list *new); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **lst, 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)(void *)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)); +int ft_atoi_check(const char *nptr); + +#endif diff --git a/so_long b/so_long new file mode 100755 index 0000000000000000000000000000000000000000..6e4a12017b04d8cdb80a49641383dc1e83d6ddb4 GIT binary patch literal 57152 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 OLU8EsDHJ+Be*YU~Eq)mQ literal 0 HcmV?d00001 diff --git a/so_long.c b/so_long.c index 8d52516..f3b6116 100644 --- a/so_long.c +++ b/so_long.c @@ -6,15 +6,25 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/09 14:18:18 by erey-bet #+# #+# */ -/* Updated: 2022/12/10 19:19:12 by erey-bet ### ########.fr */ +/* Updated: 2022/12/11 18:48:15 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" #include -int quit(void) +void free_img(t_data *data) { + mlx_destroy_image(data->mlx, data->mlx_img); + free(data->mlx_img); +} + +int quit(t_data *data) +{ + if (data->mlx_img != NULL) + free_img(data); + free(data->mlx_win); + free(data->mlx); exit(0); return (0); } @@ -22,7 +32,7 @@ int quit(void) int key_hook(int key, t_data *data) { if (key == K_ESC) - quit(); + quit(data); else if (key == K_LEFT) data->x_player -= 128; else if (key == K_RIGHT) @@ -31,33 +41,58 @@ int key_hook(int key, t_data *data) data->y_player -= 128; else if (key == K_DOWN) data->y_player += 128; + data->update = 1; return (0); } int render(t_data *data) { - int height; - int width; - - height = 128; - width = 128; - //mlx_destroy_image(data->mlx, data->player); - data->player = mlx_xpm_file_to_image(data->mlx, "assets/player.xpm", &width, &height); - mlx_put_image_to_window(data->mlx, data->mlx_win, data->player, data->x_player, data->y_player); + int x; + int y; + + if (data->update == 1) + { + x = -1; + while (++x < (data->w_screen / 128)) + { + y = -1; + while (++y < (data->h_screen / 128)) + { + if (x * 128 != data->x_player || y * 128 != data->y_player) + { + data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/background.xpm", &data->size, &data->size); + mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, x * 128, y *128); + } + } + } + data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/player.xpm", &data->size, &data->size); + mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, data->x_player, data->y_player); + data->update = 0; + } return (0); } +void init_data(t_data *data) +{ + data->update = 1; + data->size = 128; + data->x_player = 0; + data->y_player = 0; + data->h_screen = 768; + data->w_screen = 768; + data->mlx = mlx_init(); + data->mlx_win = mlx_new_window(data->mlx, data->w_screen, data->h_screen, "lili meli"); +} + int main(int argc, char *argv[]) { t_data data; (void)argc; (void)argv; - data.x_player = 0; - data.y_player = 0; - data.mlx = mlx_init(); - data.mlx_win = mlx_new_window(data.mlx, 1000, 1000, "lili meli"); - mlx_hook(data.mlx_win, 17, 0, quit, 0); + map = get_map(argc, argv); + init_data(&data); + mlx_hook(data.mlx_win, 17, 0, quit, &data); mlx_key_hook(data.mlx_win, key_hook, &data); mlx_loop_hook(data.mlx, render, &data); mlx_loop(data.mlx); diff --git a/so_long.h b/so_long.h index e956c7a..c1a0082 100644 --- a/so_long.h +++ b/so_long.h @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/12/10 17:59:18 by erey-bet #+# #+# */ -/* Updated: 2022/12/10 18:29:57 by erey-bet ### ########.fr */ +/* Updated: 2022/12/11 14:47:20 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,15 +17,15 @@ # include "minilibx-linux/mlx.h" # include "key.h" # include -# include "42_libft/libft.h" +# include "libft/libft.h" typedef struct s_data { void *mlx; void *mlx_win; - void *player; - void *bg; - void *wall; + void *mlx_img; + int update; + int size; int x_player; int y_player; int h_screen;