commit 582b7b0652035a9435908d25a7c52235d225c937 Author: Etienne Rey-bethbeder Date: Mon Mar 6 17:38:20 2023 +0100 Start Philosopher, Makefile, Libft, main.c diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..039f878 --- /dev/null +++ b/Makefile @@ -0,0 +1,137 @@ +SRCS = philo/philo.c +SRCS_BONUS = +OBJS = ${SRCS:.c=.o} +OBJS_BONUS = ${SRCS_BONUS:.c=.o} +LIBS = libft/libft.a +CC = clang +CFLAGS = -g -pthread -Wall -Wextra -Werror +NAME = philosopher + +all: ${NAME} + +${NAME}: ${OBJS} + make -C libft + ${CC} ${CFLAGS} -o ${NAME} ${OBJS} ${LIBS} + +bonus: ${OBJS_BONUS} + make -C libft + ${CC} ${CFLAGS} -o ${NAME} ${OBJS_BONUS} ${LIBS} + +%.o:%.c + ${CC} ${CFLAGS} -c -o $@ $< + +clean: + rm -f ${OBJS} + rm -f ${OBJS_BONUS} + make -C libft clean + +fclean: + rm -f ${OBJS} ${NAME} + rm -f ${OBJS_BONUS} ${NAME} + make -C libft fclean + +re: fclean all + +.PHONY: all clean fclean re coffee + +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.3 + @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.3 + @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.3 + @clear + @echo "" + @echo " ( ) " + @echo " ) (" + @echo " ___)...----)----....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo "\'._ '"--...___...--"' _.'" + @echo ' \""--..__ __..--""/' + @echo " '._ """----.....______.....----""" _.'" + @echo ' ""--..,,_____ _____,,..--"""''' + @echo ' """------"""' + make coffee diff --git a/libft/Makefile b/libft/Makefile new file mode 100644 index 0000000..b12262c --- /dev/null +++ b/libft/Makefile @@ -0,0 +1,155 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: erey-bet +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2022/09/27 04:19:30 by erey-bet #+# #+# # +# Updated: 2022/12/13 13:23:28 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 ft_strlen_double.c ft_strjoin_free.c \ +ft_strdup_free.c ft_strdups.c ft_strslen.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 = -g -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.o b/libft/ft_atoi.o new file mode 100644 index 0000000..d1c9eb2 Binary files /dev/null and b/libft/ft_atoi.o differ 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_atoi_check.o b/libft/ft_atoi_check.o new file mode 100644 index 0000000..64ba625 Binary files /dev/null and b/libft/ft_atoi_check.o differ 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_bzero.o b/libft/ft_bzero.o new file mode 100644 index 0000000..a1779b2 Binary files /dev/null and b/libft/ft_bzero.o differ 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_calloc.o b/libft/ft_calloc.o new file mode 100644 index 0000000..6fdbd51 Binary files /dev/null and b/libft/ft_calloc.o differ 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_get_size.o b/libft/ft_get_size.o new file mode 100644 index 0000000..7f091fe Binary files /dev/null and b/libft/ft_get_size.o differ 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_isalnum.o b/libft/ft_isalnum.o new file mode 100644 index 0000000..552dbf8 Binary files /dev/null and b/libft/ft_isalnum.o differ 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_isalpha.o b/libft/ft_isalpha.o new file mode 100644 index 0000000..5e164e0 Binary files /dev/null and b/libft/ft_isalpha.o differ 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_isascii.o b/libft/ft_isascii.o new file mode 100644 index 0000000..6953cbd Binary files /dev/null and b/libft/ft_isascii.o differ 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_isdigit.o b/libft/ft_isdigit.o new file mode 100644 index 0000000..5af3e93 Binary files /dev/null and b/libft/ft_isdigit.o differ 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_isprint.o b/libft/ft_isprint.o new file mode 100644 index 0000000..cd9d413 Binary files /dev/null and b/libft/ft_isprint.o differ 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_itoa.o b/libft/ft_itoa.o new file mode 100644 index 0000000..36ff83f Binary files /dev/null and b/libft/ft_itoa.o differ 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_memchr.o b/libft/ft_memchr.o new file mode 100644 index 0000000..9b463db Binary files /dev/null and b/libft/ft_memchr.o differ 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_memcmp.o b/libft/ft_memcmp.o new file mode 100644 index 0000000..7e82712 Binary files /dev/null and b/libft/ft_memcmp.o differ 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_memcpy.o b/libft/ft_memcpy.o new file mode 100644 index 0000000..6898eed Binary files /dev/null and b/libft/ft_memcpy.o differ 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_memmove.o b/libft/ft_memmove.o new file mode 100644 index 0000000..e5abfeb Binary files /dev/null and b/libft/ft_memmove.o differ 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_memset.o b/libft/ft_memset.o new file mode 100644 index 0000000..c6b230d Binary files /dev/null and b/libft/ft_memset.o differ 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_power.o b/libft/ft_power.o new file mode 100644 index 0000000..91ff924 Binary files /dev/null and b/libft/ft_power.o differ 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_putchar_fd.o b/libft/ft_putchar_fd.o new file mode 100644 index 0000000..0077317 Binary files /dev/null and b/libft/ft_putchar_fd.o differ 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_putendl_fd.o b/libft/ft_putendl_fd.o new file mode 100644 index 0000000..8d70731 Binary files /dev/null and b/libft/ft_putendl_fd.o differ 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_putnbr_fd.o b/libft/ft_putnbr_fd.o new file mode 100644 index 0000000..118be0a Binary files /dev/null and b/libft/ft_putnbr_fd.o differ 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_putstr_fd.o b/libft/ft_putstr_fd.o new file mode 100644 index 0000000..d3fb340 Binary files /dev/null and b/libft/ft_putstr_fd.o differ diff --git a/libft/ft_split.c b/libft/ft_split.c new file mode 100644 index 0000000..5947f62 --- /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: 2023/01/17 15:40:25 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) + 2)); + 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_split.o b/libft/ft_split.o new file mode 100644 index 0000000..6d5b247 Binary files /dev/null and b/libft/ft_split.o differ 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_strchr.o b/libft/ft_strchr.o new file mode 100644 index 0000000..784801e Binary files /dev/null and b/libft/ft_strchr.o differ 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_strdup.o b/libft/ft_strdup.o new file mode 100644 index 0000000..2d20876 Binary files /dev/null and b/libft/ft_strdup.o differ diff --git a/libft/ft_strdup_free.c b/libft/ft_strdup_free.c new file mode 100644 index 0000000..af831cf --- /dev/null +++ b/libft/ft_strdup_free.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strdup_free.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_free(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'; + free(src); + return (src_copy); +} diff --git a/libft/ft_strdup_free.o b/libft/ft_strdup_free.o new file mode 100644 index 0000000..18abce7 Binary files /dev/null and b/libft/ft_strdup_free.o differ diff --git a/libft/ft_strdups.c b/libft/ft_strdups.c new file mode 100644 index 0000000..d9e0c2c --- /dev/null +++ b/libft/ft_strdups.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strdups.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/26 14:25:30 by erey-bet #+# #+# */ +/* Updated: 2022/12/29 18:05:24 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char **ft_strdups(char **src) +{ + char **src_copy; + int x; + int y; + + src_copy = ft_calloc(ft_strslen(src) + 1, (sizeof(char *))); + if (src_copy == NULL) + return (NULL); + x = -1; + while (src[++x]) + { + src_copy[x] = ft_calloc(ft_strlen(src[x]) + 1, 1); + y = -1; + while (src[x][++y]) + src_copy[x][y] = src[x][y]; + src_copy[x][y] = '\0'; + } + src_copy[x] = NULL; + return (src_copy); +} diff --git a/libft/ft_strdups.o b/libft/ft_strdups.o new file mode 100644 index 0000000..a1ca00a Binary files /dev/null and b/libft/ft_strdups.o differ 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_striteri.o b/libft/ft_striteri.o new file mode 100644 index 0000000..c1c62c2 Binary files /dev/null and b/libft/ft_striteri.o differ 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_strjoin.o b/libft/ft_strjoin.o new file mode 100644 index 0000000..b900e1a Binary files /dev/null and b/libft/ft_strjoin.o differ diff --git a/libft/ft_strjoin_free.c b/libft/ft_strjoin_free.c new file mode 100644 index 0000000..2dc9a56 --- /dev/null +++ b/libft/ft_strjoin_free.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin_free.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/27 14:47:27 by erey-bet #+# #+# */ +/* Updated: 2023/01/17 16:25:07 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin_free(char *s1, char *s2, int b) +{ + char *tmp; + int size; + + if (s1 == NULL) + return (s2); + else if (s2 == NULL) + return (s1); + size = ft_strlen(s1) + ft_strlen(s2) + 1; + tmp = ft_calloc(size, 1); + if (tmp == NULL) + return (NULL); + ft_strlcpy(tmp, s1, size); + ft_strlcat(tmp, s2, size); + if (b > 0) + free(s1); + if (b > 1) + free(s2); + return (tmp); +} diff --git a/libft/ft_strjoin_free.o b/libft/ft_strjoin_free.o new file mode 100644 index 0000000..451448e Binary files /dev/null and b/libft/ft_strjoin_free.o differ 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_strlcat.o b/libft/ft_strlcat.o new file mode 100644 index 0000000..4972e30 Binary files /dev/null and b/libft/ft_strlcat.o differ 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_strlcpy.o b/libft/ft_strlcpy.o new file mode 100644 index 0000000..4eb3b6f Binary files /dev/null and b/libft/ft_strlcpy.o differ diff --git a/libft/ft_strlen.c b/libft/ft_strlen.c new file mode 100644 index 0000000..f12b894 --- /dev/null +++ b/libft/ft_strlen.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/15 11:46:17 by erey-bet #+# #+# */ +/* Updated: 2023/01/18 18:04:47 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlen(const char *str) +{ + int i; + + if (str == NULL) + return (0); + i = 0; + while (str[i] != '\0') + i++; + return (i); +} diff --git a/libft/ft_strlen.o b/libft/ft_strlen.o new file mode 100644 index 0000000..f8237b6 Binary files /dev/null and b/libft/ft_strlen.o differ diff --git a/libft/ft_strlen_double.c b/libft/ft_strlen_double.c new file mode 100644 index 0000000..8ea0ac7 --- /dev/null +++ b/libft/ft_strlen_double.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen_double.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/12 13:45:14 by erey-bet #+# #+# */ +/* Updated: 2022/12/12 13:46:16 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_strlen_double(char **strs) +{ + int i; + int y; + int count; + + i = 0; + while (strs[i]) + { + y = 0; + while (strs[i][y]) + { + count++; + } + i++; + } + return (count); +} diff --git a/libft/ft_strlen_double.o b/libft/ft_strlen_double.o new file mode 100644 index 0000000..91868b3 Binary files /dev/null and b/libft/ft_strlen_double.o differ 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_strmapi.o b/libft/ft_strmapi.o new file mode 100644 index 0000000..73536fb Binary files /dev/null and b/libft/ft_strmapi.o differ 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_strncmp.o b/libft/ft_strncmp.o new file mode 100644 index 0000000..fb37279 Binary files /dev/null and b/libft/ft_strncmp.o differ 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_strnstr.o b/libft/ft_strnstr.o new file mode 100644 index 0000000..5a77c6f Binary files /dev/null and b/libft/ft_strnstr.o differ 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_strrchr.o b/libft/ft_strrchr.o new file mode 100644 index 0000000..e67b653 Binary files /dev/null and b/libft/ft_strrchr.o differ diff --git a/libft/ft_strslen.c b/libft/ft_strslen.c new file mode 100644 index 0000000..c91921d --- /dev/null +++ b/libft/ft_strslen.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strslen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/07/26 14:25:30 by erey-bet #+# #+# */ +/* Updated: 2023/01/12 16:51:53 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_strslen(char **src) +{ + int i; + + i = 0; + while (src[i]) + i++; + return (i); +} diff --git a/libft/ft_strslen.o b/libft/ft_strslen.o new file mode 100644 index 0000000..b0afb10 Binary files /dev/null and b/libft/ft_strslen.o differ 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_strtrim.o b/libft/ft_strtrim.o new file mode 100644 index 0000000..eefb1d2 Binary files /dev/null and b/libft/ft_strtrim.o differ 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_substr.o b/libft/ft_substr.o new file mode 100644 index 0000000..e776f88 Binary files /dev/null and b/libft/ft_substr.o differ 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_tolower.o b/libft/ft_tolower.o new file mode 100644 index 0000000..1387a87 Binary files /dev/null and b/libft/ft_tolower.o differ 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/ft_toupper.o b/libft/ft_toupper.o new file mode 100644 index 0000000..e563534 Binary files /dev/null and b/libft/ft_toupper.o differ diff --git a/libft/libft.a b/libft/libft.a new file mode 100644 index 0000000..dc9f3e4 Binary files /dev/null and b/libft/libft.a differ diff --git a/libft/libft.h b/libft/libft.h new file mode 100644 index 0000000..c552ecc --- /dev/null +++ b/libft/libft.h @@ -0,0 +1,76 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/26 16:31:10 by erey-bet #+# #+# */ +/* Updated: 2022/12/13 13:23:44 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); +char *ft_strdup_free(char *src); +char **ft_strdups(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_strjoin_free(char *s1, char *s2, int b); +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); +int ft_strlen_double(char **strs); +int ft_strslen(char **src); + +#endif diff --git a/philo/philo.c b/philo/philo.c new file mode 100644 index 0000000..20261af --- /dev/null +++ b/philo/philo.c @@ -0,0 +1,13 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* philo.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/24 14:21:54 by erey-bet #+# #+# */ +/* Updated: 2023/02/24 14:21:55 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +