From cdc4eb5d5f0237f5a9242552c8fc6e1c5e26f868 Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Mon, 23 Jan 2023 13:22:30 +0100 Subject: [PATCH] Ca marche bien --- Makefile | 60 +++++++++++++++++ client | Bin 0 -> 32784 bytes client_src/main.c | 52 +++++++++++++++ client_src/main.o | Bin 0 -> 3840 bytes libftx/Makefile | 35 ++++++++++ libftx/extra/Makefile | 39 +++++++++++ libftx/extra/extra.a | Bin 0 -> 44078 bytes libftx/extra/extra.h | 38 +++++++++++ libftx/extra/ft_contain_only.c | 41 ++++++++++++ libftx/extra/ft_contain_only.o | Bin 0 -> 3200 bytes libftx/extra/ft_freer.c | 58 ++++++++++++++++ libftx/extra/ft_freer.o | Bin 0 -> 4944 bytes libftx/extra/ft_is_in.c | 27 ++++++++ libftx/extra/ft_is_in.o | Bin 0 -> 2376 bytes libftx/extra/ft_isnum.c | 38 +++++++++++ libftx/extra/ft_isnum.o | Bin 0 -> 2760 bytes libftx/extra/ft_random_generator.c | 38 +++++++++++ libftx/extra/ft_random_generator.o | Bin 0 -> 3480 bytes libftx/extra/ft_realloc.c | 31 +++++++++ libftx/extra/ft_realloc.o | Bin 0 -> 3024 bytes libftx/extra/ft_strchri.c | 27 ++++++++ libftx/extra/ft_strchri.o | Bin 0 -> 2856 bytes libftx/extra/ft_strcmp.c | 23 +++++++ libftx/extra/ft_strcmp.o | Bin 0 -> 2424 bytes libftx/extra/ft_strfjoin.c | 42 ++++++++++++ libftx/extra/ft_strfjoin.o | Bin 0 -> 3344 bytes libftx/extra/ft_strgen.c | 31 +++++++++ libftx/extra/ft_strgen.o | Bin 0 -> 2760 bytes libftx/extra/ft_strmerger.c | 33 +++++++++ libftx/extra/ft_strmerger.o | Bin 0 -> 4096 bytes libftx/extra/ft_strndup.c | 32 +++++++++ libftx/extra/ft_strndup.o | Bin 0 -> 2856 bytes libftx/extra/ft_ultoa.o | Bin 0 -> 4688 bytes libftx/extra/ft_ultoa_base.c | 89 ++++++++++++++++++++++++ libftx/extra/ft_ultoa_base.o | Bin 0 -> 4720 bytes libftx/gnl/Makefile | 39 +++++++++++ libftx/gnl/get_next_line.a | Bin 0 -> 5998 bytes libftx/gnl/get_next_line.c | 104 +++++++++++++++++++++++++++++ libftx/gnl/get_next_line.h | 25 +++++++ libftx/gnl/get_next_line.o | Bin 0 -> 5784 bytes libftx/gnl/get_next_line_utils.o | Bin 0 -> 5424 bytes libftx/libft/Makefile | 87 ++++++++++++++++++++++++ libftx/libft/ft_atoi.c | 39 +++++++++++ libftx/libft/ft_atoi.o | Bin 0 -> 2952 bytes libftx/libft/ft_bzero.c | 18 +++++ libftx/libft/ft_bzero.o | Bin 0 -> 2432 bytes libftx/libft/ft_calloc.c | 26 ++++++++ libftx/libft/ft_calloc.o | Bin 0 -> 2728 bytes libftx/libft/ft_isalnum.c | 22 ++++++ libftx/libft/ft_isalnum.o | Bin 0 -> 2256 bytes libftx/libft/ft_isalpha.c | 20 ++++++ libftx/libft/ft_isalpha.o | Bin 0 -> 2216 bytes libftx/libft/ft_isascii.c | 18 +++++ libftx/libft/ft_isascii.o | Bin 0 -> 2176 bytes libftx/libft/ft_isdigit.c | 20 ++++++ libftx/libft/ft_isdigit.o | Bin 0 -> 2176 bytes libftx/libft/ft_isprint.c | 18 +++++ libftx/libft/ft_isprint.o | Bin 0 -> 2168 bytes libftx/libft/ft_itoa.c | 55 +++++++++++++++ libftx/libft/ft_itoa.o | Bin 0 -> 3472 bytes libftx/libft/ft_lstadd_back.c | 26 ++++++++ libftx/libft/ft_lstadd_front.c | 21 ++++++ libftx/libft/ft_lstclear.c | 27 ++++++++ libftx/libft/ft_lstdelone.c | 25 +++++++ libftx/libft/ft_lstiter.c | 24 +++++++ libftx/libft/ft_lstlast.c | 22 ++++++ libftx/libft/ft_lstmap.c | 39 +++++++++++ libftx/libft/ft_lstnew.c | 25 +++++++ libftx/libft/ft_lstsize.c | 26 ++++++++ libftx/libft/ft_memchr.c | 31 +++++++++ libftx/libft/ft_memchr.o | Bin 0 -> 2736 bytes libftx/libft/ft_memcmp.c | 29 ++++++++ libftx/libft/ft_memcmp.o | Bin 0 -> 2840 bytes libftx/libft/ft_memcpy.c | 32 +++++++++ libftx/libft/ft_memcpy.o | Bin 0 -> 2736 bytes libftx/libft/ft_memmove.c | 37 ++++++++++ libftx/libft/ft_memmove.o | Bin 0 -> 2952 bytes libftx/libft/ft_memset.c | 28 ++++++++ libftx/libft/ft_memset.o | Bin 0 -> 2608 bytes libftx/libft/ft_putchar_fd.c | 18 +++++ libftx/libft/ft_putchar_fd.o | Bin 0 -> 2368 bytes libftx/libft/ft_putendl_fd.c | 21 ++++++ libftx/libft/ft_putendl_fd.o | Bin 0 -> 2488 bytes libftx/libft/ft_putnbr_fd.c | 34 ++++++++++ libftx/libft/ft_putnbr_fd.o | Bin 0 -> 2736 bytes libftx/libft/ft_putstr_fd.c | 21 ++++++ libftx/libft/ft_putstr_fd.o | Bin 0 -> 2448 bytes libftx/libft/ft_split.c | 92 +++++++++++++++++++++++++ libftx/libft/ft_split.o | Bin 0 -> 5296 bytes libftx/libft/ft_strchr.c | 24 +++++++ libftx/libft/ft_strchr.o | Bin 0 -> 2336 bytes libftx/libft/ft_strdup.c | 31 +++++++++ libftx/libft/ft_strdup.o | Bin 0 -> 2824 bytes libftx/libft/ft_striteri.c | 27 ++++++++ libftx/libft/ft_striteri.o | Bin 0 -> 2600 bytes libftx/libft/ft_strjoin.c | 38 +++++++++++ libftx/libft/ft_strjoin.o | Bin 0 -> 3432 bytes libftx/libft/ft_strlcat.c | 25 +++++++ libftx/libft/ft_strlcat.o | Bin 0 -> 2912 bytes libftx/libft/ft_strlcpy.c | 28 ++++++++ libftx/libft/ft_strlcpy.o | Bin 0 -> 2808 bytes libftx/libft/ft_strlen.c | 25 +++++++ libftx/libft/ft_strlen.o | Bin 0 -> 2464 bytes libftx/libft/ft_strmapi.c | 33 +++++++++ libftx/libft/ft_strmapi.o | Bin 0 -> 3000 bytes libftx/libft/ft_strncmp.c | 25 +++++++ libftx/libft/ft_strncmp.o | Bin 0 -> 2840 bytes libftx/libft/ft_strnstr.c | 35 ++++++++++ libftx/libft/ft_strnstr.o | Bin 0 -> 3072 bytes libftx/libft/ft_strrchr.c | 24 +++++++ libftx/libft/ft_strrchr.o | Bin 0 -> 2728 bytes libftx/libft/ft_strtrim.c | 44 ++++++++++++ libftx/libft/ft_strtrim.o | Bin 0 -> 3736 bytes libftx/libft/ft_substr.c | 35 ++++++++++ libftx/libft/ft_substr.o | Bin 0 -> 3304 bytes libftx/libft/ft_tolower.c | 18 +++++ libftx/libft/ft_tolower.o | Bin 0 -> 2184 bytes libftx/libft/ft_toupper.c | 18 +++++ libftx/libft/ft_toupper.o | Bin 0 -> 2184 bytes libftx/libft/libft.a | Bin 0 -> 96836 bytes libftx/libft/libft.h | 71 ++++++++++++++++++++ libftx/libftx.a | Bin 0 -> 5274 bytes libftx/libftx.h | 90 +++++++++++++++++++++++++ libftx/printf/Makefile | 39 +++++++++++ libftx/printf/ft_dprintX.c | 18 +++++ libftx/printf/ft_dprintX.o | Bin 0 -> 2528 bytes libftx/printf/ft_dprintarg.c | 36 ++++++++++ libftx/printf/ft_dprintarg.o | Bin 0 -> 4752 bytes libftx/printf/ft_dprintflag.c | 23 +++++++ libftx/printf/ft_dprintflag.o | Bin 0 -> 3008 bytes libftx/printf/ft_dprintl_base.c | 34 ++++++++++ libftx/printf/ft_dprintl_base.o | Bin 0 -> 2904 bytes libftx/printf/ft_dprintptr.c | 27 ++++++++ libftx/printf/ft_dprintptr.o | Bin 0 -> 2920 bytes libftx/printf/ft_dprintstrtab.c | 29 ++++++++ libftx/printf/ft_dprintstrtab.o | Bin 0 -> 2856 bytes libftx/printf/ft_dprintul.c | 18 +++++ libftx/printf/ft_dprintul.o | Bin 0 -> 2520 bytes libftx/printf/ft_dprintul_base.c | 81 ++++++++++++++++++++++ libftx/printf/ft_dprintul_base.o | Bin 0 -> 4624 bytes libftx/printf/ft_dprintx.c | 18 +++++ libftx/printf/ft_dprintx.o | Bin 0 -> 2512 bytes libftx/printf/ft_isarg.c | 29 ++++++++ libftx/printf/ft_isarg.o | Bin 0 -> 2568 bytes libftx/printf/ft_isdigit.c | 20 ++++++ libftx/printf/ft_isdigit.o | Bin 0 -> 2176 bytes libftx/printf/ft_printf.a | Bin 0 -> 52442 bytes libftx/printf/ft_printf.c | 24 +++++++ libftx/printf/ft_printf.h | 41 ++++++++++++ libftx/printf/ft_printf.o | Bin 0 -> 3344 bytes libftx/printf/ft_putchar_fd.c | 19 ++++++ libftx/printf/ft_putchar_fd.o | Bin 0 -> 2368 bytes libftx/printf/ft_putstr_fd.c | 25 +++++++ libftx/printf/ft_putstr_fd.o | Bin 0 -> 2688 bytes libftx/printf/ft_skipflag.c | 30 +++++++++ libftx/printf/ft_skipflag.o | Bin 0 -> 2872 bytes libftx/printf/ft_strlen.c | 25 +++++++ libftx/printf/ft_strlen.o | Bin 0 -> 2472 bytes libftx/printf/ft_vdprintf.c | 54 +++++++++++++++ libftx/printf/ft_vdprintf.o | Bin 0 -> 3832 bytes libftx/printf/libftprintf.a | Bin 0 -> 30760 bytes server | Bin 0 -> 34360 bytes server_src/main.c | 82 +++++++++++++++++++++++ server_src/main.o | Bin 0 -> 5656 bytes 164 files changed, 3066 insertions(+) create mode 100644 Makefile create mode 100755 client create mode 100644 client_src/main.c create mode 100644 client_src/main.o create mode 100644 libftx/Makefile create mode 100644 libftx/extra/Makefile create mode 100644 libftx/extra/extra.a create mode 100644 libftx/extra/extra.h create mode 100644 libftx/extra/ft_contain_only.c create mode 100644 libftx/extra/ft_contain_only.o create mode 100644 libftx/extra/ft_freer.c create mode 100644 libftx/extra/ft_freer.o create mode 100644 libftx/extra/ft_is_in.c create mode 100644 libftx/extra/ft_is_in.o create mode 100644 libftx/extra/ft_isnum.c create mode 100644 libftx/extra/ft_isnum.o create mode 100644 libftx/extra/ft_random_generator.c create mode 100644 libftx/extra/ft_random_generator.o create mode 100644 libftx/extra/ft_realloc.c create mode 100644 libftx/extra/ft_realloc.o create mode 100644 libftx/extra/ft_strchri.c create mode 100644 libftx/extra/ft_strchri.o create mode 100644 libftx/extra/ft_strcmp.c create mode 100644 libftx/extra/ft_strcmp.o create mode 100644 libftx/extra/ft_strfjoin.c create mode 100644 libftx/extra/ft_strfjoin.o create mode 100644 libftx/extra/ft_strgen.c create mode 100644 libftx/extra/ft_strgen.o create mode 100644 libftx/extra/ft_strmerger.c create mode 100644 libftx/extra/ft_strmerger.o create mode 100644 libftx/extra/ft_strndup.c create mode 100644 libftx/extra/ft_strndup.o create mode 100644 libftx/extra/ft_ultoa.o create mode 100644 libftx/extra/ft_ultoa_base.c create mode 100644 libftx/extra/ft_ultoa_base.o create mode 100644 libftx/gnl/Makefile create mode 100644 libftx/gnl/get_next_line.a create mode 100644 libftx/gnl/get_next_line.c create mode 100644 libftx/gnl/get_next_line.h create mode 100644 libftx/gnl/get_next_line.o create mode 100644 libftx/gnl/get_next_line_utils.o create mode 100644 libftx/libft/Makefile create mode 100644 libftx/libft/ft_atoi.c create mode 100644 libftx/libft/ft_atoi.o create mode 100644 libftx/libft/ft_bzero.c create mode 100644 libftx/libft/ft_bzero.o create mode 100644 libftx/libft/ft_calloc.c create mode 100644 libftx/libft/ft_calloc.o create mode 100644 libftx/libft/ft_isalnum.c create mode 100644 libftx/libft/ft_isalnum.o create mode 100644 libftx/libft/ft_isalpha.c create mode 100644 libftx/libft/ft_isalpha.o create mode 100644 libftx/libft/ft_isascii.c create mode 100644 libftx/libft/ft_isascii.o create mode 100644 libftx/libft/ft_isdigit.c create mode 100644 libftx/libft/ft_isdigit.o create mode 100644 libftx/libft/ft_isprint.c create mode 100644 libftx/libft/ft_isprint.o create mode 100644 libftx/libft/ft_itoa.c create mode 100644 libftx/libft/ft_itoa.o create mode 100644 libftx/libft/ft_lstadd_back.c create mode 100644 libftx/libft/ft_lstadd_front.c create mode 100644 libftx/libft/ft_lstclear.c create mode 100644 libftx/libft/ft_lstdelone.c create mode 100644 libftx/libft/ft_lstiter.c create mode 100644 libftx/libft/ft_lstlast.c create mode 100644 libftx/libft/ft_lstmap.c create mode 100644 libftx/libft/ft_lstnew.c create mode 100644 libftx/libft/ft_lstsize.c create mode 100644 libftx/libft/ft_memchr.c create mode 100644 libftx/libft/ft_memchr.o create mode 100644 libftx/libft/ft_memcmp.c create mode 100644 libftx/libft/ft_memcmp.o create mode 100644 libftx/libft/ft_memcpy.c create mode 100644 libftx/libft/ft_memcpy.o create mode 100644 libftx/libft/ft_memmove.c create mode 100644 libftx/libft/ft_memmove.o create mode 100644 libftx/libft/ft_memset.c create mode 100644 libftx/libft/ft_memset.o create mode 100644 libftx/libft/ft_putchar_fd.c create mode 100644 libftx/libft/ft_putchar_fd.o create mode 100644 libftx/libft/ft_putendl_fd.c create mode 100644 libftx/libft/ft_putendl_fd.o create mode 100644 libftx/libft/ft_putnbr_fd.c create mode 100644 libftx/libft/ft_putnbr_fd.o create mode 100644 libftx/libft/ft_putstr_fd.c create mode 100644 libftx/libft/ft_putstr_fd.o create mode 100644 libftx/libft/ft_split.c create mode 100644 libftx/libft/ft_split.o create mode 100644 libftx/libft/ft_strchr.c create mode 100644 libftx/libft/ft_strchr.o create mode 100644 libftx/libft/ft_strdup.c create mode 100644 libftx/libft/ft_strdup.o create mode 100644 libftx/libft/ft_striteri.c create mode 100644 libftx/libft/ft_striteri.o create mode 100644 libftx/libft/ft_strjoin.c create mode 100644 libftx/libft/ft_strjoin.o create mode 100644 libftx/libft/ft_strlcat.c create mode 100644 libftx/libft/ft_strlcat.o create mode 100644 libftx/libft/ft_strlcpy.c create mode 100644 libftx/libft/ft_strlcpy.o create mode 100644 libftx/libft/ft_strlen.c create mode 100644 libftx/libft/ft_strlen.o create mode 100644 libftx/libft/ft_strmapi.c create mode 100644 libftx/libft/ft_strmapi.o create mode 100644 libftx/libft/ft_strncmp.c create mode 100644 libftx/libft/ft_strncmp.o create mode 100644 libftx/libft/ft_strnstr.c create mode 100644 libftx/libft/ft_strnstr.o create mode 100644 libftx/libft/ft_strrchr.c create mode 100644 libftx/libft/ft_strrchr.o create mode 100644 libftx/libft/ft_strtrim.c create mode 100644 libftx/libft/ft_strtrim.o create mode 100644 libftx/libft/ft_substr.c create mode 100644 libftx/libft/ft_substr.o create mode 100644 libftx/libft/ft_tolower.c create mode 100644 libftx/libft/ft_tolower.o create mode 100644 libftx/libft/ft_toupper.c create mode 100644 libftx/libft/ft_toupper.o create mode 100644 libftx/libft/libft.a create mode 100644 libftx/libft/libft.h create mode 100644 libftx/libftx.a create mode 100644 libftx/libftx.h create mode 100644 libftx/printf/Makefile create mode 100644 libftx/printf/ft_dprintX.c create mode 100644 libftx/printf/ft_dprintX.o create mode 100644 libftx/printf/ft_dprintarg.c create mode 100644 libftx/printf/ft_dprintarg.o create mode 100644 libftx/printf/ft_dprintflag.c create mode 100644 libftx/printf/ft_dprintflag.o create mode 100644 libftx/printf/ft_dprintl_base.c create mode 100644 libftx/printf/ft_dprintl_base.o create mode 100644 libftx/printf/ft_dprintptr.c create mode 100644 libftx/printf/ft_dprintptr.o create mode 100644 libftx/printf/ft_dprintstrtab.c create mode 100644 libftx/printf/ft_dprintstrtab.o create mode 100644 libftx/printf/ft_dprintul.c create mode 100644 libftx/printf/ft_dprintul.o create mode 100644 libftx/printf/ft_dprintul_base.c create mode 100644 libftx/printf/ft_dprintul_base.o create mode 100644 libftx/printf/ft_dprintx.c create mode 100644 libftx/printf/ft_dprintx.o create mode 100644 libftx/printf/ft_isarg.c create mode 100644 libftx/printf/ft_isarg.o create mode 100644 libftx/printf/ft_isdigit.c create mode 100644 libftx/printf/ft_isdigit.o create mode 100644 libftx/printf/ft_printf.a create mode 100644 libftx/printf/ft_printf.c create mode 100644 libftx/printf/ft_printf.h create mode 100644 libftx/printf/ft_printf.o create mode 100644 libftx/printf/ft_putchar_fd.c create mode 100644 libftx/printf/ft_putchar_fd.o create mode 100644 libftx/printf/ft_putstr_fd.c create mode 100644 libftx/printf/ft_putstr_fd.o create mode 100644 libftx/printf/ft_skipflag.c create mode 100644 libftx/printf/ft_skipflag.o create mode 100644 libftx/printf/ft_strlen.c create mode 100644 libftx/printf/ft_strlen.o create mode 100644 libftx/printf/ft_vdprintf.c create mode 100644 libftx/printf/ft_vdprintf.o create mode 100644 libftx/printf/libftprintf.a create mode 100755 server create mode 100644 server_src/main.c create mode 100644 server_src/main.o diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..306f555 --- /dev/null +++ b/Makefile @@ -0,0 +1,60 @@ +CLIENT_SRC = client_src/main.c +SERVER_SRC = server_src/main.c + +CLIENT_OBJ = ${CLIENT_SRC:.c=.o} +SERVER_OBJ = ${SERVER_SRC:.c=.o} + +CC = clang +CFLAGS = -Werror -Wall -Wextra -g +LIBS = libftx/libftx.a + +CLIENT_NAME = client +SERVER_NAME = server + +%.o: %.c + ${CC} ${CFLAGS} -c $< -o $@ + +all: ${CLIENT_NAME} ${SERVER_NAME} + +${CLIENT_NAME}: ${CLIENT_OBJ} + make -C libftx + ${CC} ${CLIENT_OBJ} -o ${CLIENT_NAME} ${LIBS} + +${SERVER_NAME}: ${SERVER_OBJ} + make -C libftx + ${CC} ${SERVER_OBJ} -o ${SERVER_NAME} ${LIBS} + +client_clean: + make -C libftx clean + rm -f ${CLIENT_OBJ} + +server_clean: + make -C libftx clean + rm -f ${SERVER_OBJ} + +clean: + make -C libftx clean + rm -f ${SERVER_OBJ} + rm -f ${CLIENT_OBJ} + +client_fclean: + make -C libftx fclean + rm -f ${CLIENT_NAME} + +server_fclean: + make -C libftx fclean + rm -f ${SERVER_NAME} + +fclean: + make -C libftx fclean + rm -f ${SERVER_NAME} + rm -f ${CLIENT_NAME} + +server_re: server_fclean + ${SERVER_NAME} + +client_re: client_fclean client + +re: client_re server + +.PHONY: all clean fclean re client_re client_clean client_fclean server_re server_clean server_fclean diff --git a/client b/client new file mode 100755 index 0000000000000000000000000000000000000000..a086530ac4bdbfbd3c65f1abe90445e7571bad31 GIT binary patch literal 32784 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 +#include "../libftx/libftx.h" + +void ft_char2signal(int pid, char c) +{ + size_t i; + + i = sizeof(char) * 8; + while (i > 0) + { + if ((c >> (i - 1)) & 1) + kill(pid, SIGUSR2); + else + kill(pid, SIGUSR1); + i--; + usleep(0); + } +} + +int main(int ac, char **av) +{ + int pid; + size_t i; + + if (ac != 3 || !ft_isnum(av[1])) + { + ft_printf("Argument error !"); + return (1); + } + pid = ft_atoi(av[1]); + kill(pid, SIGUSR2); + i = 0; + while (av[2][i] != '\0') + { + ft_char2signal(pid, av[2][i]); + i++; + } + ft_char2signal(pid, '\0'); + return (0); +} diff --git a/client_src/main.o b/client_src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..1cca93597c08fabc7f7c3c681eb7859782f348cd GIT binary patch literal 3840 zcmbtWU1%It6h5=FcYl&*ceBy{SgUJm5s}O`F$Jx$-BP#R#wseUM6krk?rbu2b~fzJ z#ECkog+%7;;`HS5+3fAy z_3UB<3Ay^@BE-);i`Don!ZS}T=IZmxcT4p-rM?95Q%Us9OfJu^L;WWfnC}n>HN}zK zOcsN#tmLM%i#;nY>4TM(m0bN=;^@`*y-$E_KXpC3OgW|}mvYm!#rouu8b7@r0iI%J zBEo~I-P2nLy-Z}1&)t?VoJKuAfuE+3>FmPHmc5u{84$2Aw94MzBo9z+MS z-2~Ft=eCXD9F9f7vCPfS;vkUN^EdC7==)4|83&d+dUbDQq*gL)CuLMBJNQ%{)KYm%w?|UrMx|<&?Nm>%wnN*|{cw#tdtU2Bt54er zdCSE08LC$D>5^{RS{~ANv6>z&myBvUpC8q0rIzT+jMm67!;i$ge$#ObHvsy zpeQhH2gb|-p-0Yc_F=LWd$v*`Fz49~WBk zZDGIR!`~J5+dlj~VZZOgWk0|0;j%y9`0%Q*ulevvVc+oK?+E)xAAU;MDWPfZz4M>( z;Zwqv`&`bCfFaV}5p4^DRxpNZBSZS|aK#u0tzuZZ<`@$WX!&x9{xKw@>QtaswG3lS zu-rh?E|%TL3Lh}DYS&6|%(N{3bEes4$IuQueWbhU=z0Fy=}y@MjjsJ6y->jCbcBM& zD)_1uo0_mp+Yo>;I#jIaB}2Xi8urT3he4|zFL7Nd7j#D_xJT=eL;YX+GDdsPyG(YA zE(erbu4;V6ac$W2z7pm=Tjb2p2ZjENyyCyx;^_3AZ^`{gBwQ2##nFC{H~U6`)Bd6+ zdW9|3TcX`g2?#B_A|M<5dMwA^`yb=|QD$lp{$@ZnDd$3jfCnBESBd^FfsYlT%>t5c^BHoKp-Ov5h z#m2m6op^I1evk~0$ni^v-m_NocTVhIIWIJS^d8B0xqs+>^!EuNctj-K;&b{;xPaVN z?Oze?%XX-JdWZe(Pa&orS}CKVYD0b!@$y_zJc+;k>xlX1j(GU1$K@FjK#I1Mzx{sz Dc6;z_ literal 0 HcmV?d00001 diff --git a/libftx/Makefile b/libftx/Makefile new file mode 100644 index 0000000..7474655 --- /dev/null +++ b/libftx/Makefile @@ -0,0 +1,35 @@ +OBJ = ${SRC:.c=.o} + +NAME = libftx.a + +LIBS = libft/libft.a gnl/get_next_line.a printf/ft_printf.a extra/extra.a + +CC = clang + +FLAG = -Wall -Wextra -Werror + +all: ${NAME} + +${NAME}: ${OBJ} + make -C extra + make -C libft + make -C gnl + make -C printf + ar -rcT $(NAME) $(LIBS) + +clean: + make -C extra clean + make -C libft clean + make -C gnl clean + make -C printf clean + +fclean: clean + rm -f ${NAME} + make -C extra fclean + make -C libft fclean + make -C printf fclean + make -C gnl fclean + +re: fclean all + +.PHONY: all clean fclean re diff --git a/libftx/extra/Makefile b/libftx/extra/Makefile new file mode 100644 index 0000000..6fa8fdd --- /dev/null +++ b/libftx/extra/Makefile @@ -0,0 +1,39 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: cchauvet ;y})V-h7XNe3d*F)?@mg9sQ|*27YeC9NeH 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 literal 0 HcmV?d00001 diff --git a/libftx/extra/extra.h b/libftx/extra/extra.h new file mode 100644 index 0000000..539b6d9 --- /dev/null +++ b/libftx/extra/extra.h @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* extra.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet +# include +# include +# include +# include +# include "../libft/libft.h" + +int ft_isnum(char *str); +char *ft_ultoa_base(unsigned long long n, char *base); +char *get_next_line(int fd); +size_t ft_random_generator(size_t start, size_t stop); +void ft_freer_tab_ultimate(size_t len, ...); +void ft_freer_ultimate(size_t len, ...); +char *ft_strgen(char c, size_t len); +char *ft_strfjoin(char *s1, char *s2); +char *ft_strmerger(size_t arg_len, ...); +int ft_is_in(char *str, char c); +void *ft_realloc(void *tab, size_t size, size_t new_size, int bytes); +char *ft_strndup(char *src, size_t n); +ssize_t ft_strchri(char *str, char c); +int ft_contain_only_str(char *str, char *to_find); +int ft_contain_only(char *str, char c); +int ft_strcmp(char *s1, char *s2); +#endif diff --git a/libftx/extra/ft_contain_only.c b/libftx/extra/ft_contain_only.c new file mode 100644 index 0000000..4844e79 --- /dev/null +++ b/libftx/extra/ft_contain_only.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_contain_only.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet A&bReug2!e%r&b{B4-h53J!2@5; zIluFrKlgm!`SMcc+*7h70VfGg!M4UxfcfyYoOZ=D#Bt|TcInsj;zo99ZeuZXKYKUR zCS!Ivvyojs-;S*X!V7;w?AkE_jIEu&fBc)+wSL6!W;V&^-mtf)on81+$}VNv_ik=& zZK09MS02CEu2Av%O2uyaV>S0i# zry`LEKrjZhA+#5n7XqvM5m$i9gs^)IROn8k50N=+p&&g&niRW%zlwZ)+S5Muw7RFQ zAq&XYpLeyy*Tgz8W>H}=4tB*j$YNAoFIVft7;$5$WKjb_3h&B6DfB&INV4W4p)gDp zTDH?l7A@VbBxj69)2!Rc@d<5A8yh{^a*g9JPM|ia9fPuyFV<~GH|>1gwytPJNZI9P zs#>oZ%~Y{i)mt-$lbW1J)lA!Tbn9};G7DvAHf78@4PA5x({@BG-*g&43xnYgm|)eh zu$J94E4EQel1tOPYUCYo>iM#1m*BsB!UJ9dK)QMXq}jN1pg$CT9Z&Qj#Ay-H!NC*J z_$%_013|fhJ3QM-!jb4uw(U*V-bN?@dHj_m>96PjF}f(Yq*SZfpiZPLYo<0jKHI#qVgMh!!^d#fdV}GC10?xme_m%g7ZNobwJdU81j6$oD z*9(P)F#}q|uyoDAhY+-4y;d`JdHa|bJ%OH!7sa&8b;@8i^QH}&U3U!a%+ph&O-C??V^^-W$BWU!`CEq*EhHsbwG30daH1k9pPoON;MD|A+SS7_r z;@)S`CStUm{%eSS@>u6r+%fIzvuS?Nm?|U9L&C2bB;Qkjoh$ryx=kVJo^y*)g-9P?a)IWN= zxIaJt*AVMf|0=8h7qt6H-1{mTd*xqY`FS47-;YboPw$*^ZmW)L9#@A}nLp1*{zP2& XG=MuOh`l4*3M-1=Kk}m)6Z8KKb@qN< literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_freer.c b/libftx/extra/ft_freer.c new file mode 100644 index 0000000..a010acf --- /dev/null +++ b/libftx/extra/ft_freer.c @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_freer.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet (+{@0ixQBd3i@3F{e^Dy?2|d#TLO&MLFm=k`iz0a>|Zpl5lupR$?Fluh+gR_&rJ zvS^%*T)?T4yDv=p5&`yZDX@%c3 zGSKeE5aM4;l;D;?AV5fyixbi;Nf;Zr1NV>k38F_!3pfw7W3|no1~E1e*aD)a zfiL8a!!N=E91?>Bq4;$T4S3D(pStl0-?A;B08>BNxbh`N$JwTPY-CBrL9_PQl~KVupoS@$FJ`F&TB11Z5K zl@1x^uN8#AE*zFS0Ua&qVIa^->SPaaUYS^t2;BPY~n$KJ9r3)uQl4t9s#b z87^d;LT4;xWkx#3?OZ;Y&2+Bcp!e#%JsS(uxc>DGpl#CcCke+) zX*(Z|#YU~dxb1{DZ3w56nWST-UJ9p@!wF|1Y)?2js}^S#Qcf~$IrcK*Si>unWtWtl zA*n2MRmkL%BN;p1nansOpFC)r4jH$|$e5W;B=WXHRyZVTa2AG>NM&C!t=tHFY>VXV z5i@U%+pcDsCqlAmbtDwid2p|(D1 zB?NbB%`V5#Ozkf)d!zV=Ag71K!9$XyE5R0ISOz{)xRB4`nuSxT@pRAn4OFI^BJ6I4 za558172-Cjtrlzopu7{0+X;OXvw#d!?aFWp$Y@7WG)eU|%b&=rRk^4($!puyfOk-p z2UWj!)T@m8zfd~nfH_Ks18fMGs`RNI?|xN2rAjZV1c$Bq7 z_XuDI7!HgQ$Ir2NJci+_AXniDfwYOmi}=p#;P;{<5HcJc&x1LUn&DGBfo1B zBpj1V9PeTJ>N*@BN}O(H0{7p{^fip*@ak9RzU$x*Go0sv-vFg21^ff1?-B4*Opglq zgKU1&4Cnpub$dAYV)UOq0|S4bS^ ze&4xp4d-<)3-~nCe-ZGHnEt1LhuOIJkB`^Ajp1#KbNmX6?-1}W7`|4(zhQWm z@Nmu^Cwk6KS-JyvGSOq%blQgdlzHTx95cHS$xI?k^i0;V^{003?a4b<>?NY(X-tcS(=_84dZ#lp?Tdo?4_cvnv{NjdwCg7vAp2Ra6pWK2Ab^jbUGEkI$ z!#fQ)t|xt}0mmmd64n-bLcGk9euhdNiM|`bCSvG*KRY}}1*4!69ef-0-vQ5eN^Ekm ze@rR%e-~hwvll+~bc{{t<3d5Ma(*)eHHyE;u1@T)o_HMRkAacP^?oh9(R#3f?}sin zR{vYWkPwTf|2q(1B&K~I@P_lp_MgGxaQ<*h@OZxd?*i7S|96-pKVMjyYkcwkXjDJS z>hn5SAMawZ{w~0j?Mqo;hv8GB2^P=i1>=##US|R0KGcDI%{95g0@E=Lw}e>#Z)mpF AjsO4v literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_is_in.c b/libftx/extra/ft_is_in.c new file mode 100644 index 0000000..bb8a149 --- /dev/null +++ b/libftx/extra/ft_is_in.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_is_in.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet KAS=%e@HL}-k z3gS;osS?4VNImug@DXS$AtVlPU$fbYYKaAI*H0`DpK{*)R42m=+ieotgzmEpAh-17O<6GMNlO z+5vKa>$p;s2qxo~)1}^~IzooPq^Pe+Q%;DxY23R!)Vf2hHPo&kOBwgb9n>^=LR?2H zl_paxr?H6TZWwjvDh)5J&Gr0tCuoIphx6`&yDNEDd?1f(5*l& ztaftsR@3j~DwVp|?fFq|F`sJ&VGwzZOSwi+u10G)e=TZzqc{k{2s%+4FakFS;J@Xk zM*zGtWT38`1GSb_`*u!D{*2}O0C8GG@w30Qvp*TfccqOAdI095Vt)b!!?$`?NLTVm)hrSjOFNEY&qEJaZU7 zX8#_s6ucUYF@d@D18*~%XcA-d6R^89I*R&C;{3Qah{*{%P)=r%CM0~=oG2j8 z3>gSM&-!}_JTa>9egda+mRR4LuUso`zbS2X-8>-@`(?thK( zcwkVL^W#}TUE&1qvHu)%x_k2eImY#OfxGILyS0*6F1P(2xDgHoxRqA3>Ek%Ck*30J z`wfrvAgs1VO$lz;ihTFvS1a?K$g5lex6$Y|OWx`#&TDO3Tq6j52K;)d+V-0M=osv6 z7xP438Tofj;{ONT#Y2+)BWL!xd43guxjrEd;)F>*ihF?t=~uzCA~2^|{Y*05XZr=_ z!gOC34LU}?CWAjnAamXKW5knlBJMZ2C`%k*vmbtnV%o!;=7C%mSQmDi<8BDRT=EO2 zf3I=zDQ-@BUy>wF_;ECfob<~ln>%69eZL*XU)J517?8P_Bjo*})7*}$-vb7vPE@}s zToNyM6*2uz2!ULvMoNNoUk`2L@;@7spT4eo{_}{LX9n~cxru8;(*FX`{fYGazaXa9 Sj{Kf8c%Kv`ilZ6P^S=RCBH2Fx literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_isnum.c b/libftx/extra/ft_isnum.c new file mode 100644 index 0000000..42afeee --- /dev/null +++ b/libftx/extra/ft_isnum.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isnum.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet INT_MAX || INT_MIN > i * sign) + return (0); + if (!(*str >= '0' && *str <= '9')) + return (0); + str++; + } + return (1); +} diff --git a/libftx/extra/ft_isnum.o b/libftx/extra/ft_isnum.o new file mode 100644 index 0000000000000000000000000000000000000000..1eb725575bd37ba83635887f5248eaee8549b820 GIT binary patch literal 2760 zcmb_d-)|d55T3pBp5wUnISwgF3MfKUQ5AA_Ly($cicvAWng&Inph^{r&d&LVVxKGf z9MYoFmNb!~R6r$o;}75s@k*qsh==5V;I&BZTM!Q*Q7O!vcb)TbJRmXB-R}3zH#56? zJNBLY)pr%fKpKOKaEv4iFcdwW=e%hSbW|>zJHMJcw-5L8PbkdX%^&KIVDryeeTyQH zK0-71^IZz^x$h_act+nkA+Wjmn3+5I!@d@JzWw|&O7ZjudeO`$xc?2|wS0Hj++930 z^+z$29hjTl3?}NLu4|SSpP2ghKbddhYVPP?zTm|#BA+Mzz}$a~%w2QgK>vakB8$D_ z>BOEg`h$T*FAQqOg;s9h>2<7yiRfH*^Ups1nT@bBiBYa5lFy$`jIfjjpcqJ|wA{Fw zxDbCMK0R?|^sNa1m4hOvE299B`2omZ0X10GEz5_r3XgPnbW?JvEI(D|V+B4*e)LB7qzmOL63QMQ)~@kb zfhV$D$?}+1G+@dl>EI z!LW%kA20A1v(l;UaYeoPqZ+%$Sx4cx$KHNI-uIA;z;8z(E>Mpz;ecC3PnfBIof2Xy zUlNp9_?yn*nh4@|r;RG$!8$j~20-y5n-kleC(#KPt^8&vlMmnkf zSI7Cxzwir!mvwD{F9-ORz{>&tQ-Q@z>#u)X@XdhU>u2O-oUFSpbe{+Gw*{UOBkjq* zue9KU`vqgwE_Ny_R|x{5zCm4Uc=&9MbxS69j{t6}%kU=JEt$F+($-fYnLf7k;|;=fli zXH{IhZzUndVCU$_6DRMfl;^}m-ebwrACccEHkgzAbwOVDi$kdk_bo$-H;H_pC%dg2}v>pe6}Pm*RGGFsjM%@F~J4ne-ZJtKflR1IbK4i zocndLu#Xy|{iMg;@b?1cNs4&+dq5nS+2hLG-w{Bg JI9gJ${@VsLRD7}YVe!d_6(`9lp1Y^Fn|Ji9 z!Y}>cW4J>`JG;=DTUbh-9za9CkzFKs_afe|(o9!|wu0xVx3lwlYi=F_uBXteGq<33 zn)8OFKvfBewB^ez35`+EEEBDyc?t#30&zDX6$*_3Tq#d-~- zA?dNi2vZV+>o+Baq+u06PU3XRqo5>q#p7{+h=xwXYG#9ycsl+}eCx*jBfB>OFa|P5 z`$quOi5@e$4)%|D0RXWi8aU|Jct!9+;y$A_ZaaAU9f7P6jYd3gY!Z}SBPb=$;ho86 zXL_viilxeDi>@{F2`aQEU2FI&&wAChMtGm@T5Hddihf9U6j}4;kGYCPVpkBlZ53ac zeA9B8qlKzrO^?o+cB4|aM$_ZkHf`J3_NLpJeq$W13GGQJIa6Myr>0HIv<;_jYXwMI zrADe;ubGWhp-?uOv!;`p7*EwIR>d)@M^n{GzT_NBna3R4fTq=`Oj~Agv|>47<3Y8K z3+eG{R8E*v4m2FYrh9z`N=2aXYQ-`EXSAWwtU(3-+h#BcYbiY_(utQrIyNY6S`&?( z!H4-UGP+3US;3yf;9K(E0agADJpdjcia-JHk|h0=7$8OO0A5n6*|2HLscLn$HkKZD z+irSOURqNXt59tgO$ggQrW2*%6pLm_D|?5(PbNm9BqbK@Ut~;;X{=9umZ@rvDe5%q zyUC*J0*k8$5KX!$dK1l^OwJ*Bk42iSuf^7@r`SM_#V;{=C)=o&*=CII&#`EZMQ{}P z3l=@XWMb;;YzXzb982VwJjo>WfZUJU^wzQ3{WI){!2PALeg&4d(bKK)L(~J&P=E!I zYb$^cAVd_PiqZYVu61D*t|1@xt$mqz0jq}PX{DW2aFme(~qk8~d3*Zs1 zsX$pS@OKEJ5bwuJ@E-}H5Rc*|IMzp3$d~$rh*Cz} z{}jaf1s~%9>$oN^#w7HRkJC7NxxJZd%7g!{c!F~=zFQQLZC}NIPr!eU+b;(A1#TY+ z@Q=BDG{8US_VEC}%ZF3eh+pHRzgH;-|LcLZqvA}YVhGU1-DjwpE zQn5;PsLz-dd162nTbfmOOl{u_hsUsX7mk8PC2`6q7V#@H-4pFra&HA@d8%X^H4{p< zX@YGUMH;bSRIBwu*ebAMYB--``c z`SuHaXNdXF2K8s?h9c^WXZ^d@&_9g-dR(h3(!+lH(_uMxe?p2~XfEvM_wFsQ(0|-0>TKH&Z zC-%V%x+YLa)n(BFal-Dv?KU)zzyrE#9>2edfkqZ}DDpy<4b)>ec7D*ZZjJncRy~ z9)xbvilQ34elWxp3&2FCZaei@wv@IDv01BHD^~2-*tjujjE)?r^WfO|ar6!vk3rs< zs#@t%sggCa5V!NS_;jUg)#BOgbhX^Xg{srM5+J%4I$1e&0MIU}v z_!%GmrttajL0i`SNZ{vv{7;1cjt{>f{EvOOoIs!Z@b`uPl@Grl{BM2ub>YW^rZe-N zn>;7~c?NYba#p5Zm`Z0dRcjWEs#QuG4$dbqvXye#!U-c7HK!`VZbs40SHQ37+!+D>AQOf5a}C7X^?yk8e^Vq-{{;E_e-JUE z$oE8(OI-YDzm|Z|vcA+bH`?Xj75UVkS7e^l$1o^uFE7&WN705`bFmpwZfA=gkuT?w z49NGFzKuq^^II1`DEXb~{AlLLe2HfeYuCRi>fgn0DT1#1GrK!>cQ)+I zh9pue#FWG;B!UtIK~S(@1&jC~NQwHOee}_%=EaBj()2ChLp*2Z-p%Z76vV^MJ@_ntd@DRb^QRZ&2Q0%zgC5-32e=b%3wbf>{U=4^KDkLlIj?ApcM)y(be^2J>+ zRuV|a{*u|-N7-2kjcp3bUdilcue`Wz+!%-(H)d~7Y(4qgYUY;l?vXBMEWW%4#z$M| zdM|V9s$#4#^zRIXr0wkTmXck|Z0~%H;~xweMs-gf7a?nzJ!I~^_OmjiJeW)|Ejf7a zvE-04tOKY9vNRJt!}|27mOS16RR2RqXHrie1&A?FIW&_3U{hVDJ_0kTFaV(E1Zc^# z{r&v_aRYH2^hAT8#$0HY2?5cG9L|2**F;AVjI#9_ABcK!BPsa|laWAk>)bDHkh z#H2ZHj;9}Q2hNGNC()WRpMZ*=_xx6=)^f}eSZ>9$YR!i2S*22~(4Mz_YiiPJIIiOt z>KClKQ>^$4mc8J&3Xw>tH*qG%^&y}4JZH(y`_R#T3veiGzzKP6*K?|_T@C^``@gL@ zeB*ogiz`bngR(HF92@9~ujAevN1PrK+5vbbIe1xpHleH6kOA;0a$@iuIuu3uE14ig zTZ)fjwY`?*xTSi#Y+DPbPUcTerR$E{UPxEnwpDa|5B{CvEpi5?%Bt7r8|jHjN}Cnz zh86CDm;oX=#O$N^i*vST)@UuFs{(j_xolSu4o+4tBB5x8!utAtXS#l#X?m5#ZnEBG zme6yoH^)*rHke~ad^TEP$8&5n#~#ROZ>}>{8#%*b`c0;O&-7PWAF}b6!1hcqNFRC- zQ1lm69aAIbx?3+J6oWhacYE;ELT8a(ZY_L;E{qHfuy_v<4X^|y$)P`7~6W^<3lj7ZUynx5v1q z+(h&96UXJefmybT?P|VIEVk@HjP1I6(A# zit&Es2lz7qa4nZ0ec}ic=UvdJc}LWPzz0Q#Yl@Y}B-b78Z*VP?%r(&=W5j)(gI|e2 zu4V2ch)3(NL+8b|$pey{M<0HY(NF=^8&Sr&EtI$yzZC%2Vt%3N56WTjKk&mz?-vyj zCp6Ws=tp^fMh|zyA#)eQ_&J%r%YjpoSn7)R7ckZLVfowS2SVhD^4A-Q7kCXZc})nx z!~9U1l2bDALw@-D-yAYO-QHsTV*Xjgv~&CP-{&2CIwH=$0BHRr^8A~K$+;umd7hN3 MWS~$SElHmLZ^xWevH$=8 literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_strcmp.c b/libftx/extra/ft_strcmp.c new file mode 100644 index 0000000..3b7265d --- /dev/null +++ b/libftx/extra/ft_strcmp.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strcmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet MAaP1EfNPav!3y;SFR9Zr1xg#H(zgO=j~oE zUwlnd3WOA#gIE(3;72o-mm+ZqEc9Hi?EF#L`S_@^)46}Ad`Onct@2UDy>w{(JeEcI ze#Kozd9pBnaQ62v%J;0B4-YsQ*&9b-eRF`OFU$A#ly#Fz-Ob~6t9*FlK<$(d@9uTG z-8ip-c`tF^vGG&CzW0k7S10omrk*c6I-MU^#SDOEBUsEVP3igPb1&qcIeuZ{rQ-m) z2^vEeCIF1Z0o8mO^!&M8E(egYfE?f&E&~@pHfqdRB&WB}5zquAMZHCuvI5+7?e-4mZSTnTSex!|)Cq!*Fjm%Y%GuY#5CkQ(;uI~hEGn-zkU2g_6^9%NzJvV#06B*~P zEugk&KL@pNr5(21#)j=eDX6te>&=GOF1hZy)7kXG(&9p?Q4i{&<6kNH^=d8LDtTLB z%ZUS_9)!@I2aISzdjab3-%db}0h7^=4Y>LSsI7vU9(yRei~V~Xaau&wCU`kt_)L4{ zSVr4M4}c~@2AsfMDfM^$7%^%)E)^dUpDm)1e#>=Bna1c(=19jZX7){M-<%4~>6-cE zzV7dunm+j=HuX1C``R3RC-Nxlo0_d@n7^0m0sA)M2K?0>X4d03K48{CAJ9e70mpI( z>44*wqEo0B6ZxZFAto6{QBGEosU*BNttcQBdkh4hW&M!^p19iZSOTX!XIX!OId!Yw zbd;Zc04{M-x5j?wnF}7WzMR58Vx3=f|NPe(r#T^#JkgCp{lf^2@%LGuVNPdHo_~(< z^mBo|>Qy^yD^9iA@;1Q^@sfb;HX98OZwDLkqQx@_cFXe}w$y`K6YQWFdiMF(muK6d z<6Z&V_ct3W&gv@O;I#pFzaDrDc*mecU!#5n9WRtlXe@(&us|37_&DU$Oe8K-y{ zz7v3X`j%LT6DIR0?n^Alyb4|rfjPydbCT%}+uvm_EbV&+4QY&gpJH%Z0-2|MPa~eZ zC*uACH{}cm&~J$R@Y5906mz-{fZ=1i5GkgvGkb`f?cjp`ID6P zt)g*Q{oW50KZ~ G>;D5|`0Nz` literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_strfjoin.c b/libftx/extra/ft_strfjoin.c new file mode 100644 index 0000000..32d41b8 --- /dev/null +++ b/libftx/extra/ft_strfjoin.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strfjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 7%g5T5n=Z5*euogYd{`AI2=3t1;=C{ZvMFk-{m*9D4wiN*scOL?n>P%i%Q_noDM8-}uC)K`?NlwC4bjrzhWB;W0%fR(XL3cU53@7yE@*Eb+}{y0Oo zQH-Ur4P$BYrqTG>sDG~*jj5Z-tIx-j`X&;06OjoY_Qud$CGH2kv0K+M_Li5k+2YFB zng`Su)-iU{FS5o(@KGk$wu-E66?w!j;t>Kx40Upi3SA2nl8^7VL5v@xG3sy?_h%FJ zrcu8>`uYz_m-2X`N2rO^{ks!gO1B0ONn#mQ$CYkvv`^Ri%#IEB#M|S~41w;wz*mo2yJ@|)WngFjt+p>PDK0^nDiUGqIe+2+k|c_MP*4bSWP6cu_WJ+GU+mpreBvVgXXw>HmGVwXvys8;Mt--5_@-lB-X zRIX~f)&9JdwP*V0%!*Si+xD6;lH)W57^6EIr}mwwUn}ZM_X(e_xeG^=^~-Mhi4M0_ae`AYU;BJ zQs6bjqOgbyilY3T=p;onyp(j+sicc`-l|TU>Dqz)nf)UJR?)8324?JPI#+ZZxHrX_ zcObYCxQ8h2{29~HXQ_lVBZRkmce2!^A|8tWC3>`RF|aK5j*C6ZV(74ljSKCPh-(u< z(@qLin-S5UM0?%ygf=VUb!p4vEOCqV1H3;7U|G zb*}_nn4lMFT{1y@TqHv|FoT8^>c<{`}MZ7!EkM|8BHgOmJeTb9LT%b|^4^2UoM+rm; z<4^mrhtm<2{3`(*hgcKe!&^#uf;ibEalD$t25q?mgj0-^ZZ;%7!2ZqvE+iTC0|A`! z9Af`r*3?$;tvz`c{2=49t~c%wGeY=0``)NTTk_vxd^*HG$9^S*f5!e|2*1Ssg%FP8 z#}gSR>wd!c=d30EA^Ts2@ORknXH9z(+@Fsa5AR!By9WBSnXArZvbkKvoCCdLT3Ox2 zsS0|&Tq>D3I+=m9nV0>DqFpEl=MCGIX@hQ;T~j~y;?#iSX7i^(x2(BRCObWiKL9h^ zlHi0h88Bxvg-W($LZM>f&CTSqmQ~INOW;V;u?;tyLp@(2{lCc9m?iif%cK)A-?}CN z)_g3QDE%G~CeMXj7-d7AV~K}n0{v+So)^iBal#q{#H07hZ9yO7R6E=gExpfRiFs0m zx%+S-j1l)w2EUbotixO#@mBpWa{m`OfcmF%9`1iHVni9lD=1&^M|?R5qAlx7P4l8v z`~<&L>MtlVPUC~S~}LUHs-h3o$d^jNpf literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_strgen.c b/libftx/extra/ft_strgen.c new file mode 100644 index 0000000..a7d579d --- /dev/null +++ b/libftx/extra/ft_strgen.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strgen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 7%g5T4!j+qiLJ=cj5Diog;@T*z*c1_@edjgVpE77j>3r*6DO|XQN*9a-O4Sc86oi}6jUW^(s+Cs(Doi`#hNs)*yM`((Cpi}%v zWGU&-NTaAm#Ehh2r5yS}n6G%YU(c^O?T*{>^9zf{yfHs_CXAd5?<^u(GM<83u-XaQ zb;ma~PHq%%w%M>H2P9dsj`*E!To|(^(JN_8<{3v<(&T93Q+E zmJI!lTlbx6-t`0MxYwQ409s)HF8sHt(W;Kq3q`s9Dk$p{%BiuD^e4FE4G~Bf ztU54QB<>DMC#Y7Pn$d_`<(NtwiI!8?^l17tJE@mgy2SKv*rH1}+>2;R+l^yG{ z4Eod(8`B#|KFdZ*Y_!Bu`g2VE;R=S9SOyu)QqffOi|Q!OIUatJ_?5{>C;Y5!cEna)%9q zwx~#a++S#*OvMTWKgaQj1kbol>Y)Tr<2=LhBV5zYCU@z{f8oz^Uev8|Y)O2`an#;u zi}_={u5o-*;y>p2bBTYO<2={2*5rD{I^=!O!Kgaru)b=S z%WY>3jJD(1Mu063My1tkI@r=Y01IBCf&78BS0feLuX~A`v{*mghtPccUnPCf7pA zv1iaBa}-~Kwx};O_4%;; zHGbG>en}B|LeqZ{VJG9hO*TuyA;;3MGjiAD@LQaCI+07JSihjx(HORWeSVpV?@aqg zcZ$dtyoa1TC#0aq>+cdsh#Xr-->~}PK#Mw5pYCS4KK;UKmkwH}Zs2n$GrS>0J<2B$ ZI7R^9p&{=b`EK#1yiEXw@@Po8{y+b}BI*DD literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_strmerger.c b/libftx/extra/ft_strmerger.c new file mode 100644 index 0000000..60a6f03 --- /dev/null +++ b/libftx/extra/ft_strmerger.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strmerger.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 2) + { + temp = ft_strjoin(out, va_arg(va, char *)); + free(out); + if (temp == NULL) + return (NULL); + out = temp; + arg_len--; + } + return (out); +} diff --git a/libftx/extra/ft_strmerger.o b/libftx/extra/ft_strmerger.o new file mode 100644 index 0000000000000000000000000000000000000000..c577c4c227569e360baa319a5dd50ea49a0d25fd GIT binary patch literal 4096 zcmb_eUu;ul6#s5-Z`-X~+pRD*KphdnM%?X~7zhw7YV{6=ndo#F$)#&=yF&jg?QI1N zI5LXXrg1#f2Lp-^#Av|GhnYwmS-^xDA6$GOCcf}ugv6K`eOSaW&-w0mySs1W!Nil? z`#a}%&i9>jzwf)}-nT=2&)Wonm?DrpWYIENz=lOVNYxL`WF;}kAlqEMZnP?@GsoCWABRqjwI-UU!fl{pI4c?y$c0m&&Bz}ac< z*(fCUb`+0*)7w!Qp->&AaB-Z%&&^Z-^X`sS>3RjO%xI9AP@Tj+Q zVBFhz;F7m9G@+D>m{KWMXaQxTobu!x%%ha2u++YC@eV?%xC0|gQ{5CMJ1A7!DO6f1 zgyxh=XjZ9IeAHBYO67o0DJia7L3=km(k*1C+7(4(~gg&{?if zM-^EmazhdK`o?a!N=-_sr~q~Ek;NdT{E|y4%_`tmN~qEZcqR-~$^?jR)UYNfA5@y} zIZ&+msH2K3m#+gTGam*m&xaAPPBcroXjt8Mp+d+Vno-71&Dp%?uG5OaEERniZ=a*`c|6+i@$)Sbb<7a9%m{ExrebZwgJqCXZhdJ-#*TJWWEggAkh+ zW)WrZG&_Q=qGzXjmwR(tum9;bLhKT;F{;;3h_r2q>1c(KPA@^1YaQzdN_G3kW384^y2~TxSkC!8A~8KOTyW>n$*%H znSs>#bS@E3Yti;ZS|_>0Nln#BAxz>UY9ftz1)x8G~?meWw-1~Y+edSPpNL7Iw$|sU~B5g)OUOIwg@;cGA z6zuMQTBTLEv>?LCgG4y)6V^32UE^@P)&qwZ3LYu4*W){9d$!Rb`a}pJ>mbHXhQT2S z!hJZk0C+0l5(4>L7S}V7OcqjITYIQZH!WanRv?j%B=b>?ELmvSB#@jQjcPG@7-s?< zR?5)fO@epU5Ya10wtCy=wl$L9w$bkpkGigjEi(YR*rEdr0!W)bT8Y0cxpqsAL8-~H zU$OzNb_`2v9aqFSOwl$2po?ufz@XT6TdLnJxdtInbnKHF9ET()46r-mQr&l;?vv_q z4)Me_sa~ubgxU59=kQlCkE8&T*c8Tc;fZuC!@Nf`i8PVZ8C{cKcyXXBr-viQh>T57 z4M(H!b&4+;nM|ZLMrgxoEE`T~B$n0Sw)9ISLw-FxMC9Cw6ypCPxSrPc%$)QY{IdZ0 z+JM@f9fz8Y-wEW*_tta-nPT<_ljnO4e!}rRR5Z=J`hsg^%3@+)DM&vOLv*H$sdnfMwwP2Czd$Zsff^08%O{D}3P!ccSk4mQpN^Z8Bt94ITT zpO2kCbDwejut%EXP5vZsd`&=+aaR9hoRc#N_Jx)5cdU>fzd?NdIB;U$LIz+Iu9^hd fcynE_eiT0cm%y1ZG=SYE*eCoaX5%<~BtHMYC9U^E literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_strndup.c b/libftx/extra/ft_strndup.c new file mode 100644 index 0000000..c0fc2aa --- /dev/null +++ b/libftx/extra/ft_strndup.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strndup.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 7%Q6n?ww**H#OJ5E&6h9XOV%7Ltt5F}_q2ttOfTR0#ERh6pLKWlqcdmY*9 zkQAjrO;OxPKr289K`TyhuDGxOf} zzBg}XcHZn8=`$~=iUL9un1%yOpa73`9q2QjIs}ntK%#HLe(RV&0V|97kY;7oOlwq4-vz^{DTgzKAyGFi^^rpwbDb3ZFHe+kO z;j#7BU$BzC6MH*KjMem}Iho#$-B?HLTKdkHO6)2_$Ic1g>&0Cg3?p%irdaXRO|!MG zVCK!8&-eEBJYPG#i{q}@`fl|6w@SbAXmo&S(f9+y(S9YN1E?{aP&3ez&}W9U=*gbR zo)bq;4Lo}kAjClB(5V3cHgU+*V?b!vBcMg6dwO~R!bcGCr@%=+#umbcxOeWoo-TJk zA)smkB};jgEG4##eMr4Nf5A1~gzLIrH$px$4uxn0oY}^<%Mn|4#dd{)S<7iD7PeRe1Yq)i%(405&kaCKR zRJm5Q8mWA~oNX>xZfasYRka=4%~md^Dt4~uE~czSx1J3|0&?rnsOQ0fN)3}XorYa< ztU}UuTxi&rtT`8IO&4tVZ;OLLe{Y~%dIgllxH8<^6@DKN{6WO2khpcN z`Xe#`enuz+=df24 zjo_C2(e2t-5kubK=ae($AUL00@8CV+uhB9PbnW{6F4 zE|n72EBu3%O+q?J1lxZ7pe`~J?w21bC<%Y?_=Jye`$zz%7e>f2u84U~a{D1Z($NM_ z>GAvEB2LUx;yja&0)LI$UiG6c@YgwBkoX^QyDs6MaJwbpg7>b3zsKzlC7d1=lBC!B zdkyYa>_a{W9gKpNYnJA+xm?{^0HbbIvWANf0vP#PwQ6C#a|XUDf%@T0KiGDPH87l- zYZ))TJUh~Gv-yi)P&v+J3k7_yN{8qb+p#!cmFJ4}Y}KNf^Vv$JmJj5>8Z|Jho6X_4 zRHgC%$}OBAc>lzFOZ+CkB}wlWVd6du`V3b@9SB^m9r}L-@44W8&%q%M5Rbke zK7F1DoN~)+BEldCs~-EHleyFAk}+bx#lcSxLOo69K81;o%mZlsRG;$tA4ZHQ zqu7FSoL|=a`@Ka*c5@tx`X=uHvv0;lgQuL&VY@=N_I83B>GW%PB*f1yKudYk3^=MdA*?A361 k6WhKl@_3Pt)=wgA-vamo75VJQ7v_svCj*7zXi7Q%zfmbc-~a#s literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_ultoa.o b/libftx/extra/ft_ultoa.o new file mode 100644 index 0000000000000000000000000000000000000000..6786878855dc45d6d962b41c0a3b72db00f17cfe GIT binary patch literal 4688 zcmb_fTWnNC7@l*^&e`p@-CYWD5dvGUG0It5Aqv*Ih>M4n8bU-HLuvPNw%xGZ#l190 zs5ae7C`}AJ7>zN8M_!EaL5LU$1|qE*ZIlNSQP&5_){w9y8mf@g|DQ9nm!UqG_%~-~ z{_ns4GiT29_0Z1ks-h4<3h5>_PN0PB^3>)*HVqOVXznp5e>02Mg68CC#hfgZ&Eja8 zc;9FR74uSP9yRCwKxS&RTwcJ*WT*s6C0XfPTd87B6-wppkiul>%2en|@w{Tj=FeeD zWq8nh7R+a5^W!MH6q;r_#nB4LTM(KGm5;gLclM}jt|pu4;WBV{9;B6ynaMBBn}rh0 z&mUXnLjyC`bH#kPXZq+ew6A>P29u8O%$qmB2C@uIo0!{VXnO9{!oq^E_`>1BptB&D zhjHF4UJUkKNEqIA6Bu6f%g_2XHCicu1z>TWcqbZKwjNMuSw+;$`l@=14N5Mi6e`!n z^4G`mt_#}n#M)d6m9UY}KkSe2r2;g!8Gqp6!ijdA)*6E`uxMC1R&;6ZvR!mZ1n;}x zUH1&H595KY_nci>iu*c7j)tzoBH2lRf;rVw@}6_JSpA#0mH@rydaiGtwwLiz=r$%k z_mHhq%i^@1MTMtTnVSFrv_X$dg>LsA{tn zXG`-F%@3~HvGl1`gg7WsIkaObA#`H{tKVrvh|^0@)pZ}yJl)OB&4e^92gLRZk;Wi% z2j)XuSOdXrc_*EORZum7KLDD_i^wV6FQL79;(*N^wz;92jH)LF7#ECz47k0F+gh-> zU5tAgy@1SQ+&0uC&2|YiB;3h~XPRbfqZ`b0pPZh||Re3hyG2(?#|~3+a5pA4^5j zgZ>dKn@eWW{*F##gRx=#qXj1Hc&!t-jm9RD$oCgg`Ao!!kw7|;3k+q3ty~}$8;TT0 ztbAZ&XCRkJWzvIzR5F^#9}HLr^Vvw%sy`aZSp<}`2qDv-OCGWaTKEg;TyijN#r?^2 zo*>+xN3C2wYb(J#nTr<=5R|8Fn>!6zgqr87b*7LfNs_YC%rya=#NdtmFSV0p*fAjG z&~Bm}^eL-boUY^0-8F#WgM_=2Z1wn#sM}g~tz7{XChKBSLU2D-_nVfA*5aG_L z$rDxiVZ?!OSJdQFO#UOpbdX*UD2j5+(~1M80gn+#=Ogg0%(8<>PTHVGN-ccx~|@WTbT~wAnpRb-kBr`XF6BLp^$!w)9e;{#+GZ zHAB|`+8UO`by59&>aNpt%urX6*|mT-O;1pFn5ue!HbVflm#)x< zz|}Zi8>TDHQmuf3RZs7O*yGHr3PBa{PPCUHl-KgR8DhM) z$k~1dB)&zo&40ls0dK3zhrMfn;Wrcsza&lY+=lNQ(g3dqalD}jTpaF*i8)NG86sX^ zMH>o%1dbOFq~-R&aCVw<{_Z*){XEY3wS2_1D4*l-2%pRN7LJR!?7ajG`-3F#k8PH) zk76DE4aehr6#CzDJ}coraehp~uX6rP3ICn*@A6UPFZSIjNq>a%rzKqEc~QczaekJM z!oS$3KTG=WabDPodPRT!mh?p*?7K&;pB1jR3KjQePgyVaNWrl|>_~>&D{B~C_1Gb)R znoK7${K|kIdLy05TgJ1`?^&PAM`HVlfuF$sNIVW#oI&|&QM)pLYj(x4FDv!_Q^~Z& z6SIc;6WPeHg>GVzR4Nn0nYbDmkYYX(B}VSmVI2P_`WpObi})JG|5kvm*hBS~FLRa0 z`wL?AXC4ZJ_ycrOI_l-K8UHuHvs9*2c<2Icum^&A=t`W4D>;s_<(yDd;&I2ho)~1^ zE)d8V>PC4}CM2Q6lE*-IvHXAF`LE=DFn`>ia{l)MhCW4|FlBU=JG~_UK8pBa#P7ml z_P_F%0l&}nB<#ev8-!wBujiE)lnZ6u4{ZAb(lQetw|}SJDa=Lv0>*Q0vHn$BY>fe~ zi2cJeP}qz0$Madv2~AG%_`gU(i6w7??qczG@%=C2V0=tTjvoa~+qsZ|VGN!s4RL#M bCZRo&9RD(4a_>;@C=cZ41~}lBlH>maDPoK7 literal 0 HcmV?d00001 diff --git a/libftx/extra/ft_ultoa_base.c b/libftx/extra/ft_ultoa_base.c new file mode 100644 index 0000000..33933e5 --- /dev/null +++ b/libftx/extra/ft_ultoa_base.c @@ -0,0 +1,89 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ultoa_base.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 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 +# include +# ifndef BUFFER_SIZE +# define BUFFER_SIZE 42 +# endif +# include "../libft/libft.h" +# include "../extra/extra.h" + +char *get_next_line(int fd); + +#endif diff --git a/libftx/gnl/get_next_line.o b/libftx/gnl/get_next_line.o new file mode 100644 index 0000000000000000000000000000000000000000..67e5c28f1928d030e178a37a422cd106891e023e GIT binary patch literal 5784 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 Zx&9VLNGURoS)44$y*y!Ta7pF({{d;DXBPkf literal 0 HcmV?d00001 diff --git a/libftx/libft/Makefile b/libftx/libft/Makefile new file mode 100644 index 0000000..9a2c3b1 --- /dev/null +++ b/libftx/libft/Makefile @@ -0,0 +1,87 @@ +:# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: cchauvet >sMrgrZ%7;Kf5vYo6#~-WsBiQRG zRB9=45|ZXXimDzsa;mt%4Gst*ffU4F0Dk~#D)~@uK_Ho#-S=F3YYs?^v^z7unRzpB z-h10P7I5qO9z?HLX2E8{3p|0#0$M`=)+3=M%28W^1j z4N75^FbS`) zM+=iD+VYMzM4G!W^vJhR_E9FbkgApJS|nXamU5A`Or>g-OOewv`m{bh^?c1Sp1wAN z+N^$tW$mS;UAFWzi7b{|8W2Q+*BmHRw}K2*qG{ z1IDv3X2PQ}nB0J8vhcJCQ!zNR0cW!?XTpUTC~6&iY8Ege5QCu&7|p_n2@^3TzYnsi zjK)Cy1>|qR_kN8MkXJYcBUu z`c)6U!S!7a{sGq`oYS7#_oZ{(TfdL#%b8Ryx0Fn!Dw#E=S2Bg9ZfDkQrl-rrVg?5Q z4ic-nY~?J(TxXgFuBWS8rEHn$rLvvTUwva?s%j_GE8=xBy--*yE+vfZut+ocKcPp8b=~L;0V`s(y6cuC+%#8vhMsNppC(Mn8P5{XR zpkz*`(`htVxDvPk27-cz0y+MfKtL8CDbh94q!C4a)Cr{<$WU7fwFP1cwLuI?*05NB z)BqIAzT^4%ie)(Ue4Djgv+3lgXS6A8YVwF57^m;dpmtO{1~so#US_SPRsr3qxq72% zGgq%v8iwCyo_=&jw@t_N3~N!h%yP}^gsd9}E;wK{F_Z7OX5C@cyyZCm$zlo3fC8vLf_ zl9yEZk}4&AIf)4=ivv!l_r+5{Mra9m@d=@aVfY2iHwAYQyyA!+(F=zT;CbNRW1|T6TxX8s+(wE z$bu8-_8+msf51<0T;#+Xw_uVEg~C?mgR6aOFd7&nQ|jo9-& zADZU^;5>er=v^R8%%O0f<${=NfyZZ?p6KX&3cm&~YBvYSkIsqS6e59B?s!dP7w20f zB|>rE3uudDdI=vV&=uRqT>5B`eKH(o#8KXRGE6{SNwZaoU3%;7Gl z``Iu41$Wf`5#W_>| z=aW^Zy1ve%(m` literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_calloc.c b/libftx/libft/ft_calloc.c new file mode 100644 index 0000000..398f394 --- /dev/null +++ b/libftx/libft/ft_calloc.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_calloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet }i4h&`WTT)EnH6N5pPpn$PtP*b z9b+_`uvr&}C>jv-z8Aqm4qo)8s7Snd+hZ=m2p&d33@F5^?s}P?c07m=x~uA|uj*C5 z_v-alcJVn`l0XazW}#~d6yQ^>tIzrB9Hf!CWVU`XcYev3t<8?v^4jLkW(QI?9!83} zo9&pX{cL;cp!I|Khu1MLW!tG6!{qutdqhcoe%9w0y^HKt_6X-XGIzesy!MSWB0ZQKQnH;2^586y{WQj2PACP6dRAPS1}$bs9iZL1t)v3?M$!W5P9zjNt>2@K90&Asf#pS)%eQSi6082&BalK5*E;!4X zHLKCA)}74Mv_7d%PMq_6=hU@nv}W}4P;v96f^FAJdI=1t(ll1;HLGcqN-G6#&2o*I zX`@zks&2tvHSB7!;;sh*>^f%moMv^|vC5gM<3h8#VddR!MsR9Yt?0wx7K;C|Fu2qI z7+i*pmqA)jOJ|1Si4So}??s#*8njICbTWNYer8yc-$Mq#*9gVn3ce*t`ZGC9f_4HQ z$?%#Ds^75fwc5ngw6FUMWdsXkRGpITl`Vj#TP|A_eTCw}i-egVCc_;vDKwOnqz(=I zu8wFq^}dRFc0qkKr=Gj6Y745OEvu;m^)6HsITif_+GSNkNshq-HI0t(1yv@;6;(z{ z(k{ybSaFcL@B3p!WAN*7Kc@mGW%alfK9W5k8VbatkZ&vS&tt2jC*6nrK4PPxdHp>> z?B>7lU*H_nB)DDh*Ksi33gL962wYq*1Bm&3!aPwS;X%U%j#2gte1h%q5Ps5Uh|%>y zL+~FDOt_yV?L~N14aNn3o$bdWc!lj*meD+m5&jn2uSW0|+kVHRF6RA!@wEv5BepXv zsrGRFB2ToQga&%qDtgQLLb2Ge)R1d|EBQ*JP_v-sUq{`Z>uPvK={Pgp zC3^GCnt!M8NB$3S3uD9QN~HRY56R~OU>WUAx~B*e=Ty+=SP}go@MsUwuO@tc1uw_o zBm=~weWaeDaVil0+|ioI^&|VmIb_r43!NnWH2TF~VDNgF+=qJsv3~Wx%iu-ML-o^= zM(aPzImLIP>5nft?h^s96txOT{Y!c@{v|&2bZ>=+h!fI8r_jT^t#H$X98vDuLHyMy zeVc)cp;%JI_Y3$9RQj#oSA71&KGXV9?~8bWuOb$$2_g7`=l_n3(1>#BeDs_DcAxp_ u&W+BWLrhsbuA|t-=VWv^UaSk%Pa``2XNU=oPvF-!H|1@%DUNz9I{)AGPbI4W literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_isalnum.c b/libftx/libft/ft_isalnum.c new file mode 100644 index 0000000..92bd4f5 --- /dev/null +++ b/libftx/libft/ft_isalnum.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalnum.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = c && c >= '0') + || ('z' >= c && c >= 'a') + || ('Z' >= c && c >= 'A')) + return (1); + return (0); +} diff --git a/libftx/libft/ft_isalnum.o b/libftx/libft/ft_isalnum.o new file mode 100644 index 0000000000000000000000000000000000000000..c7e9bae2b519fb2dda3b8db111280bbf36ecabbe GIT binary patch literal 2256 zcmbtV&1(};5TCc3O+V5mY3oO;B0W@8q?@)XXcbM7Sj8ezsT4uVCfy`UlTArBp%tux zAQUasn@4Z~MbNf{NdsiUi8(!!3pL`Jm;!JYL(39!oCzAtWFb<%Z2oA=x!+LT$aV>Fn zvt~Z>TJ32XKPM8zp7n{Cua$^d$OXg)LdP`2js<_RnS%8dN zY-Gx{s@=#G3T3O=vc1fusZ7;z9nY$)WGYU+=&c1zi3G>>paB0?m==D7UP$8UJczZl zIN8_Ly^Y;Cg%~|Vv}u@0reA5d`r}$2Jpkw&V=#tqA;hm_KQU?|K0;X+?#QQ}!w%{x zVWfMTMk2mwq^}!Ci-sP*XQbmrBk@-t9=~Jgj-h=rL{l@cRFE|4{Sv_#{5*)V>Fsmu zFzcXq=&a~~V--O<(DZcDG^&G2e!pjkaR#~uY89R}!h;z^0ckK`!1%b-=~@sGu3SAh z;iCagd1xI(rvv8S-NW7^cHu8L-B%*6%j=&F;6uD6^@kz6F7;8#sisyhc6q5-x2m?12&dJ=TAr0hzFsB%zqE}B)N|*2tMbs_Gaz|* zv{Q%^#&g8(St;;2F`i~Ya*7S-B-00J&q>ZK>}#SSjFImT8Sq$gW?|p+Xi(>y{T|4s z>`EXh{qWP`6a5s3XpSi-{XA5JgPjAdfG4qJ+%J?g4Qj~fB40|X<^)D+y?i2N|M~P>=j9AoC&&dUCpk1Y~Zvl-_^%o=R v(^rw#&-E7&)8`Iq$X?)cNId@x(E5qO_1_^D?j8B= c && c >= 'a') || ('Z' >= c && c >= 'A')) + return (1); + return (0); +} diff --git a/libftx/libft/ft_isalpha.o b/libftx/libft/ft_isalpha.o new file mode 100644 index 0000000000000000000000000000000000000000..decfc4cd4cda9ede64426f65f3bc81ad4e6fbfec GIT binary patch literal 2216 zcmbVNPfrt35TCc(SN;^*0-_*lI6zbkTR=<{2trH+8=?sYLre(SmTlS4Zb`dskOU<$ znh+uC!Mi8pM!1qv1o^r$~h@t1g?9R8Ht;79I#Kx0{vE61Ao^KuMvAr&o_8&|9tcy>_c3V*T zl02d+KN?&acX*XNTKde|SbwyGtI_zmo@g6u4+AI~g6-j{E;Tw98IN4#Mq!frOPUCsvCEqnyZO zR`p8NuoI&riGpdFww_;0G5=_g64E$SRI`|pdkl5xtu#GtDX=!MDgWb4* z7%d`tXqb-1Un+N6!%7N00CEV0pbvM(*zag7F=`?%<~bKWkwZ-<9aLkC$D1oW5?dVIIAce^ST*M*{S;>_;nm)R%`FA&a8r3r%Ocz z9HRhIfu^ON-l5v=$?x7U7;Nf;n80_@L0~8W0iA9m(C!3t9S)3H_4b z)UA_VqkQcY{FcCF9(tcdGcI%L(mAU_f9S(YLhluvYI^Gq3*3Jm&{m9eCAX}n(@pk<1Mf`Jn(jAgq7TFJ=kLN~2!5j3l48`{kMg~76|XVyT==c|QfePso2SFX-I zZ(4=`jMe3ANiP`nBdK8lTTg>leo`P_yMf}=|Ic1vsQ10gOta#pzn6gE{^^b(PMDk{ z={_X{IcE}&OF?jo_2(qhYhh0cE}7p~LxUe9-vbdq-)S%TeXpX?JKxgxifGDD0Yrr# zeo7pop8yffG36X0#Y37X}~x+3R-@1P1t8F1GHy z3zX-ph`&jShvf51$V4Hie_aBUeWLy~;gazZUqUSCsBv+iHMD!l@4JY`p!!1r_35kV qub)CpojWcf+s1W5a{eVi=O^;l-$TsbJM!BW;73xBD30!kzy2R~j=it| literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_isascii.c b/libftx/libft/ft_isascii.c new file mode 100644 index 0000000..5706106 --- /dev/null +++ b/libftx/libft/ft_isascii.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isascii.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = 0 && 127 >= c) + return (1); + return (0); +} diff --git a/libftx/libft/ft_isascii.o b/libftx/libft/ft_isascii.o new file mode 100644 index 0000000000000000000000000000000000000000..43aef60da2af14fd167f36ba8afe3a8a40991bd2 GIT binary patch literal 2176 zcmbtU%}*0i5TCc(tw8AqA0mh`Jz$J6YymMU7{r*05aI!YAx6_|mu=9}t{*^h`#c&xZ{RkWJxFeMqVO$yNZEdz@nqcLZT9fl zSJ5RdC3-Y9kvcb+=n~yg07XZzJ38I3CMIH&vC9LqJ$D8GR1Fjf&GrC9hCoeB#bPnc z^ca_SthUyXsod(>v#KZG>6BRo^_0$v3OF_)qykOHX_`Z|+n2x96T~<}2g?2`JWGW8 zMjvx{#Q3n(`+T@2Wn%Osh}eI^Q{kfI)U4y)qI~r)_$`TZo}$!e0(evEj{S@WT zroZl}#DnJnec8%4ia8^nuUSpdU2D|^-K6c26K|>g|ufSXBPC;(GbMQcUJ~Hk(^o3 z_X-;P^UZ$Tlzj;#q#yk|i26O&nq$g2B6VhcvQX>q${=#C&-|>!g7NR91KrP09LJpA z6U%S4Kq2fMK|JreJJmV$A!j5_%!KY~V zQ_$B$V_5w*3345(Pk+T={YAvo`J*bb*SL-;9Y{*?M8WzW5DWH>{FWs6i4-J?qc;+) F{~N&Lw1)ry literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_isdigit.c b/libftx/libft/ft_isdigit.c new file mode 100644 index 0000000..0db99f6 --- /dev/null +++ b/libftx/libft/ft_isdigit.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isdigit.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = c && c >= '0') + return (1); + return (0); +} diff --git a/libftx/libft/ft_isdigit.o b/libftx/libft/ft_isdigit.o new file mode 100644 index 0000000000000000000000000000000000000000..3cd638bd530df8c7190f684dbc1e6d54f17e6c1d GIT binary patch literal 2176 zcmbtU&1(};5TBRLrXOjO^uyX(ksK-_(oI?`YAZD&u~v$QN~DMqHpwPgnrtN5#8jvX z1)*4^-aLBrPY~>(;K9GdgSUDMSg14EH_c|vMI3nVH}iY*@pg80Unke@`Gf!#0n5;_ zm<2fWcl1PCO+XkuQ}=g&>~6Qd+(d3E*$VGXpt7^wiih`xQ2U-drffg^936Lfmpp#< zO^k?(p)pknMb1u#M#N|Uz^5TO8c0kkp~c`*@Y2-k*zG9*MFpRvR>uJRGoXZ)gTWwX zdW_4tR)71-RPb-Pj+BpSG6cne2(RO=_&zi{mXl5OLn>3Z?0Pg?(yc6W!ida zGgdM)dAsR=D-ul0hAjMBVY>J@Z7Aa9I*4XOOb_+-?_)R4BS(vb9vbe1B5!?nhXYk~ zKyw3^A7*eDLi`R56HpUz3D>>wiP|!7+Ce2O)bLUJX1@l|VuDeN{!> zr(z-}r1!pqv>$$*^g2~K@2Trp0j0}kLjfF{9-;tEN4H!+bJUf;-4o#IKup_v}x=~h*#U1vz?PV`!7nH?n6S&I_)j$SBOOM^7MU?aGru=!iq%Z8`6H{ z;j7Y)N~D_Zx^t5E)&(tRWa@>qp2<{=257d?v_Z>O%4Gv5wln(dSF@|2RgID^<4h}G z0nMt|hPLuBHCwaw>?UZXQlp&Kb2tUN&4sa2ho%VCxygtuo>N z%04D=zjw|Tl`s7h6B50{9Y&rwo+EZoNQLK&`3Nf#Db|~lj$X*~q(la|3pgrpz+J4hxSfXj%KGcIk030bK9cV!Zh>ocB_oHzcxbkJO} zq;ec1^@nx0>p?HFhwqldJ$HW#l;=>!-yp*!{QOMWsPyXJksK=S6ZLNZ7soSSM6TCW zTatW==Wg-(X7R9B{eDSu9jZ@%MQ{BSa?09C1>p^@Q;B+#Qap*b{zv4zy(7O3Nq!~+ Lh2rQN@z(zX!gRE# literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_isprint.c b/libftx/libft/ft_isprint.c new file mode 100644 index 0000000..fd6d523 --- /dev/null +++ b/libftx/libft/ft_isprint.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isprint.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 6n`_bv!(0q>RPE8u?Hg}oOR8hG|UJy!6FR90+HEuRtI-yWp{R2BQua9 zyJWWx5goe=VK*wS)Eehh5}v#`pV__?O+e zZ%T)9A=asDvG%UsScj4b1E>ayiSSsr78{O?L@xGBcHZm(&~#8)n(PD!^??=}jYJ}t z_z|wgZBEv2+J^j3Gf+}RCZbRrDDi20YU;aZ$E=Y}55Y{P;<%M$Hg7tM$*NT<+eIgt z9yA7wf&MF%`eFL{AhIFjD&*XGyS!4e9oNW0%E^^eOT~g!PGz%8W~FMmsiDDC!FFud z%rB?%b|&Z68sLcpjD{@yTVc95oT@+ZeV$H(QfpUw+fJO^!gicPofa9rHQb7|zfx~U z!!|k~eT*vvefU%qWj_`rpf2K4JQu@Ps$0uZ3$?hSM_Vg;B5dfZrH4zx)^dI_pw*k@L}2vKb{uumWRAprj5ji8qPNS2kz)Nh>B!;paYg~ZFU^HtBj0Tfc)}>) z_Z`9m?|h5jFCLCP7Gms2{~cuA4S-9ClyiW&K$HvBL|~Nqf=Sea;$O0Zzkd=ZNd1vL zm#D*bkQm^*+R#?KzXeLL!|~UMcud}3Bo{Y9{rkZ~C4Hj)wcwI?(U(vQy6PT_b9nAG zzi$=~gX)VYb*Mi5EBfotpr%b777^d6pS<8BzS zl6k9~GBOY=jZ|Wz<)T@MWiq3w>V#>%g~6f7QgMekwWtoqBio@cfAD>#>w_$$=a{C?vUU0l3+jC=Fs$D%6r-#~A7%lR z)fpB#fKngpL}@GX&3&w6kOc-AS_Jh+&|?_G9Xy`hm88mg&J~m|A7*EvEm#)MJjmPgSu@Sxa;N zCc-|r((r0;K|sY{tMKQ0DvUJ5n~^3yGp|kq=7qSdImh}sod(nqSJFo)w!8B3Gl19* z9IY!&xpe#n_}Nzp7f#((;_@pe%w3&qE`&=P3eipzlEk|l z5$NV1BAj}=q?^P-+Ea%o+UziXw=H)o#O}NSPWwY7<76EX5`s(oMIrN^=d!O0T>44- zR|GyLIPE7rk327j1upHM7V_&JT;`>7NF?oL-uE1M87~O=Ll0gP^5-7>H6efH!QT*a zRB$@c?)~id;Ib}5;IdvJLW>#%BWtFsxnwGx9ycez7&i+k!!jo=Ff!$0(ZmMnZll7w zV)5>ZEL$BDPEMSBX`~EBscf0X!;cMhRjgFz5EzBRL@}AlX0hkzR+ty^B~t+AXmVsc zRWzZPDiq2YSAR1wkCjS;QF*pVT-*)lSI(xa6sdcR9$D1?;BTX^dp~8UI=|ci=vs3V z?WddQ9w5y94UxW|CM3G9-Q?{7^oN7KWiQ<>0?PAGe)R6eV*&l`Bl;8vrRXKWMYhQ6 z?SS%e++40*?l2|5X*Y;#ukAn+j9fN}#NUzNBCr2$)HSPrOw@l-I8glrdFziMMkd`j z-1LXYFTYEvlldj5{?*L?gg6xPJGznoknop!$uBfJR84Gc2OIOgr;EaWSOyea)-U0s zxM;S2_XtC|FSLL3uT1*O^F#mbS6#B!41r{*#D#_m1qM;<9u8N;`fO(wqNZwnext = new; +} diff --git a/libftx/libft/ft_lstadd_front.c b/libftx/libft/ft_lstadd_front.c new file mode 100644 index 0000000..b17cc46 --- /dev/null +++ b/libftx/libft/ft_lstadd_front.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_front.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet next = *lst; + *lst = new; +} diff --git a/libftx/libft/ft_lstclear.c b/libftx/libft/ft_lstclear.c new file mode 100644 index 0000000..e29060a --- /dev/null +++ b/libftx/libft/ft_lstclear.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstclear.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet next; + ft_lstdelone(*lst, del); + *lst = next; + } +} diff --git a/libftx/libft/ft_lstdelone.c b/libftx/libft/ft_lstdelone.c new file mode 100644 index 0000000..73ac454 --- /dev/null +++ b/libftx/libft/ft_lstdelone.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstdelone.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet content != NULL) + del(lst->content); + free(lst); + } +} diff --git a/libftx/libft/ft_lstiter.c b/libftx/libft/ft_lstiter.c new file mode 100644 index 0000000..1baa94d --- /dev/null +++ b/libftx/libft/ft_lstiter.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstiter.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet content); + lst = lst->next; + } +} diff --git a/libftx/libft/ft_lstlast.c b/libftx/libft/ft_lstlast.c new file mode 100644 index 0000000..ba0d9d7 --- /dev/null +++ b/libftx/libft/ft_lstlast.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstlast.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet next != NULL) + lst = lst->next; + return (lst); +} diff --git a/libftx/libft/ft_lstmap.c b/libftx/libft/ft_lstmap.c new file mode 100644 index 0000000..ed99c7c --- /dev/null +++ b/libftx/libft/ft_lstmap.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstmap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet content)); + if (root == NULL) + return (NULL); + last = root; + lst = lst->next; + while (lst != NULL) + { + last->next = ft_lstnew(f(lst->content)); + if (last->next == NULL) + { + ft_lstclear(&root, del); + return (NULL); + } + lst = lst->next; + last = last->next; + } + return (root); +} diff --git a/libftx/libft/ft_lstnew.c b/libftx/libft/ft_lstnew.c new file mode 100644 index 0000000..705733e --- /dev/null +++ b/libftx/libft/ft_lstnew.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstnew.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet next = NULL; + new->content = content; + return (new); +} diff --git a/libftx/libft/ft_lstsize.c b/libftx/libft/ft_lstsize.c new file mode 100644 index 0000000..fa39de9 --- /dev/null +++ b/libftx/libft/ft_lstsize.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstsize.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet next; + } + return (count); +} diff --git a/libftx/libft/ft_memchr.c b/libftx/libft/ft_memchr.c new file mode 100644 index 0000000..28f3775 --- /dev/null +++ b/libftx/libft/ft_memchr.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 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 F{|#chNX-BM literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_memset.c b/libftx/libft/ft_memset.c new file mode 100644 index 0000000..63e27dc --- /dev/null +++ b/libftx/libft/ft_memset.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memset.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 7%g5T4!jZk#x^6Q`7xB4i{GNGQ8W8YG~i1c9j&%8w91TGcZET0&H0$drg>Yki*E$Qvc6V|E=5o-mOx9^RTpEyj|)SZ=T*OnTJlSFFbVuz%W6V)cOKIYIO{nIb73v0F3OJOeO;` zbqv-Q;t2rKIRxnc9!ClXGUD8`!d8D?MM7tifc6?8E%z?|8v6B}F%-pUKlZg^^dYL0 ze*L0A^Iym4yg+&KfhkICrl!6igreJmnM$X>MI>wsD_-pdQLj*ISAu3?+wF#4Cnzkh z*h}`(;;Ei+E?-_jv}!*Jji~Iqe&|Ma4V<76I<1cHhEA>4s`R$q$XQ)+d@t~#O8b)2 z_Nt9&Csw0G2%!dE5J3R#4zAb>La!OP^#XCBx9gT8h$>aU8N1-Yf7>3wQE^hNXQ$F1;D@*uc^V{CZ+JR8_m2L|5lepwBLGDG;B|Cpn)Xlj2r2r0I5ejhcIg;S zyS?o%F0Tk%)XRzMaU-Xh>6t^*vNp_=^}IQ~ zXJ*jUH_Tb9Wg6Cbb85q!A>Wgx{*yU#!PKn{UB^w)tdrzzBvbJBV3N-mU9~Z{0mc|+ zV8nNW;ZPfZmtK+k5a$!~i`pV5ZWrnq9LZI<9f*(H1PzpYtVBHVixMA8@TRm$-IL%c z{&9(EKO|JBVY$(Mgh&*X=RDp|BMyVJQZv6L@utFeB^I9>ZH^ZWjQ9;D{v(O6DE#LV zzo+n`^^yBj;W_S0h2NF|6kt6DU$b-XZ&4WHm)!8Y6H?=0&#rbIc`lF+z-spu^~0( zs&kU-W9j#$W~IhHh7OgZSbiyf;6$m_*i*j<_La8~A^|LZx34_bY%bjp?9#hn($Ze_NS0zF9O$wi%xe$#> z_4`WRAFdPCZyE>ZGv7o`-4jx9L$3b~frO~BRrF0-|Hg#%>Gf9Er~7G~8+1@z#W57V d|4h*SN!0Z}K~Ak5#a)z5#rvl`>JfGQe*uPY{?z~g literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_putchar_fd.c b/libftx/libft/ft_putchar_fd.c new file mode 100644 index 0000000..5e34a25 --- /dev/null +++ b/libftx/libft/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 84*o{c0nn8lfr*6%UrU*=&-v$)+Tm*s8Tk zp|pr#?_NBLC$F9aJ$drxUm$q!pyw9qd%H93?sh#0KA3s)`@N5OJM(5&XJ)TRjDZja zldz8j3y=xB*7h<33G|%HZhp_M{Y+#wer>MoY|L!GSlP+GY;J#`BtOV8yY@LT|A}?8 zQ}Ld#98Vk>hqsvkfOgT#qzJpiGTAjc$ze<(I9OW8|iYbsyEUavdxxmrN>9p zRl_tawX%?|82O^L8|d5gp^wB^v=Da&0f9Bq&Ggr&&EFpGSX zA{gyB{dL|#O9+1N206(47w9p|{Q5m40vX!;l#OLL*dl9aNxJgeXMx;2j)WcMosM%z zok6?o>^g$|YfC%MGGCJtI}-0St7A+$3IspIaj%PaJux`y;wjH1jzv9mzIzvd>oeT$ z=g)Co?E8S@X&=AD@hu;}$}yb}iO6F=9>fKk-RGZkoZ^~lbk{k~d4HX4pcM3cvy@Zw z`MTZ$rLI?0#nP87P_$aLs^hcZ9u2F`%}#`27HgoGHA`2n-k2L|SgN)FN~O}O=F~y~ z-);#W)(uPd1XT=E5PCURtgBVs+vZ+`O|Rg-mYPSsTqXT~OG%@)6}hHTLOivj!7ztzA0P2}X+-5RQAIQC?N$BX@_eiDHl1n?FY{<9<7 QeNKKPfI@Nf#{B#L0oljN$N&HU literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_putendl_fd.c b/libftx/libft/ft_putendl_fd.c new file mode 100644 index 0000000..29715c8 --- /dev/null +++ b/libftx/libft/ft_putendl_fd.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putendl_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet t8MWsiYOE+_E5qm*|f3ArY4(Gi}kBm zsJ-aTqbL6a@uY&Hc=PB#ASifHsZda;GrRNJ%{D!V1KHo3-}}vb^WM&E?wq}JP7wm6 z2{;8Co@4=DXdB}pcQ^zwRF0;WKBpGG#ZpW2t4p<&)WZBKL?4j&>wbKsmgiTOYb#$U zV)^XKs}{uQ%kQqAT6h~9eqEQMNPqZ5xMR=Y z9)OSr3KJLF0JJC&=!Za!oC=4-7*@hx2!8<0?lHEzKtqaPXF3k*kMi^}O8`YjZoOE(aL z4txqBen)l?U>MbmsLv3O=h`;KLwu!Cp*6RB)^z=vrs@+~bWDru7d2%-YuCp#MIX?F z{z1`kNg1&jpCJ{3A8VUuaD7)si1 z^IPcY=E$f<=|2Cgd3KCQG~%hWB=43P`qVh<1&d>uA@N?l;{Yx0fvYFJll^ud?`vh) z>*Gm(lKlgW^eX(fdSnZ}pLv94%{pLY%cYWq-NcHjQ{ibZqG0FCVAy5HGR|Kf z?W{Uxb_$GQai)|ub2;q%i8^_)U|URBlj(fLELq$kxG?rVJJiM-9)BA)wUU7`j+p_Y zdb33MzxEs#@Yj=E?{G$Lr7l literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_putnbr_fd.c b/libftx/libft/ft_putnbr_fd.c new file mode 100644 index 0000000..b47899b --- /dev/null +++ b/libftx/libft/ft_putnbr_fd.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 9) + { + ft_putnbr_fd(n / 10, fd); + ft_putnbr_fd(n % 10, fd); + } + else + ft_putchar_fd(n + 48, fd); +} diff --git a/libftx/libft/ft_putnbr_fd.o b/libftx/libft/ft_putnbr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..e95c05131fb8797c6f0f77a9ca57ab47e11baac9 GIT binary patch literal 2736 zcmb`I-)|d55Xa~4e3!It?2A*Cgdm8@j|x>eCuxxQ5!#?C#h{AvLxC2xa{c3+ShdfU zeYOIsX+!`iRG{)kU&#_2%}imTlX)4_ ztI1EFKzE_JdFw&9+x?AtPym&m2ZLZ^70Ft=1IaJ;Qf^`M)+GAm&HF)my1T#K!49GJ zSg75R{4yPAJ2!Tszx3DN>vx6b!a@(;6L4dg}#@;{(!7H=&qkZa*Hmp6J z7%`26{m6J?SWDqA)g6Q>Ykt&7ycmBezHjW%7=U4d&fv8XfY?)DBo4;oaUAV5J~4a% z27|@h6|~jY9R#|76lm{Kq$Lggt8-!NBsz>%dQmv88H2@q)AO4Xg-Xs_nrON8M!Duq zOwTw|&eY_AW{{lzXa=KM=Q$|(*|SaG%h$7|qEmphS8Ak}YgMcejO1!&rbZ-cgCYva2H1~1~;Jcf)OGFk$7 zC1HQ2A0D#wo2US|fhY#g;9JwQe-cCFXi4$W`euf|DzF_}D{3S))7p8@9JF3Ht&+Lh zS~d-9&K$SC3A~Pe=!6-^>>f_p)=wxqZW?o@Zk-TW8?!0wIC_~9HYR!z$%fxIM=(7$ zhiN1Gv8h?c-pjg$GYw}H`TiPd4F2dwC5_&$=t~>Cr}`iU1`Mbuhz)pn-+hi5J3`$? zmXhiQ-vZe_*3xdKDjht%WV74wcO*_%gwUUsxIE4$+we=<@T(G+$EP+KT?9tZ3SVLc zh=(UKO2Q5aEflexs=W2^L4icPTj5K9N%5>!70?LRTqytD;j>C z(_xRYSE_;I)qK}^^^L{JhMy~(0jE-FRkOKb5ig{rK6$0=xeVOpY^k2Bx_u{@1H6yu zmg-C4;dZdPpUb2Fpi2IKvTt!5dB2EZ|KyKOZy_K{}F~o(UHBXb&yBR|2o6){}2Dj zQAbOv&i_edH0BgOvVF&e&dU(nqQ3BSE~ENC%bTC(C!6Re{2@$=wyb+kK0H!F)i%QZ zXI1%e2G2`Q|E*TE^_@JD3DCm(mfJY|CfmR vbeF32k0CRTc5CQX@!7Kb++VB<&7VxIe-)X~1Ok4&$%pbb$JCF`m|Fi|zj;YN literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_putstr_fd.c b/libftx/libft/ft_putstr_fd.c new file mode 100644 index 0000000..d8c87d2 --- /dev/null +++ b/libftx/libft/ft_putstr_fd.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet A zF+aOx&ez&z>zmnp$;{S7`vv9uLd3 zS;d)D(aGe!MxeT4p$f>aKt2bKixvJ;5mZ0Gnm_@&bsktF!8Wbv>tDbt+l)9Z61o^T z8cW<)j;+*{3&;Q{AQXX}xHHCn#8#4`o5sbuYQ*2?%YYJSe5G-w^$&j1bbU%w^@65c z(gyLUoYn^P2U<)&q^Tb@MSrBR%ZiTA6>&ZF0-_Q4-s$C3VL4})Tjj0M1)`xspA7l7 z3V*gw6Fozr=lger7`02nkLun|ag&;ovi!u(C-M6S?Ll12orq_Vk?^3A@qjWED4$RG zFt^u+@X+YO#t=^YL)_lNHQjFbmUjOIKfrNOk3R^A9hdMrx6e!XEVp?#EZ6T(8TzhD z{5ftXxuzP!b<)R%M6SONjGUdR71CBFQ?ct{RP3T(&Y@8F$!1?3uAi{C; zWiZ^bXB#KaP7YT+D?0;5u~;vqty~T#x&SvSj%RlT6&+Uq_H;U5u}XGV`*#^Q3kGKO ztPJX#CDQ*ZkMRNFz7fy+z?+a--0SCz(@*&ng$Po}2~y_-O2`{+_4xps4v;p`95%~;HA^2x z&GOuiSuSpyrMVrV&7TAnbJf^HO|xQbnvWaXTIra}?Uhe>)@%+h<&GdI$@c61&+k@OOe*E6uV4I#G|joT1$n`jFy=zG=JLA9;tk*UmW zYsnE8t$SQ*y=4#U#u;>l=A~+cauY#!{%_bPPVrdI0kK(K#Q-@AtNxxGeKX_b9!Js^Yb4B|M{5JWn z&br*U(VOq;d6#<;IO@AP$+&&Uk(!TR0KGqw{u-WQw7 z{K+9b4Vd`!5(wC z3XAI4dEz9-3F>D^fh3U|%j8n_EMN|w6`Vxg`5)KCszXR8AC(JVAu0qHaj!b-P_0JY&T=>F2*vsWVV>H;Q+4h9vBy# zRLV~4lkSZn1R-2fHHC)5|Db;V2&Mi>8ZOa@-=eBTL%_AbG-S~x3uIrX>NOfXLsh_h z{!vQQ-e8;t!@>KRvFe|o?dvoMQvVWd^FK{HVS31-K>$W*7yyicYQA-tTC~}s`~4+) z7^X)-$D$7`;V){0*CB*O6)+;I!NUBhX6|3dEJGlV#HlY129vZILs+yePFpP6?$E9@ z-EYx@arJ9UR8>D6hy2&6`W6k2(f}BS<1`S5IO^MXxBMzvcGoO@>IDd)hDPd{{gy_; z!Am6?EMY?Jkivm9u9dGb1k(HcENOncERG0 z00$X0L0wtZNFC= z2W9PCLEzn-@ABZ@Y9IFC=;u++-^)kbcFa`})(uIaa@V7YseF=Y?^RG&{$Vc>xSeMBEU9KJT2iO&ru1- z|CW#@C4AL|$&7@*&vEhn5c$k<{JWC=_c;C|3BSbgC?D|)DPHE=stl zv*>FK@AV%F`XXvG(Np$#abhenKAyK{h@Q8z3Ei=09ik_vr>1PU8;O&gO^V|MCoha} zic))`c4cxMxIQzv^fZ^_EvkMm({s~~t$*=L!`*OyN}eM+UMI#9sT5oYCwLC7i)^;ZEVi5ziXz-; znd^x`)*S|cjG^vJ-2Qb*D6wP+bQ|UWAU_Ct`1&z_JSXJ*9{~(~_Q2z%CwW2t=mlXe z;*0Sx$7K5>{4mi!#=hwB=~X@DJ&Zg85m!L3x%TIAZ@e_b?O*nSFc<3=@GCHBRKF44 ze`mQOviJ=W_G16hznl}AZ1VV5q{L+1?|^Qj_;2#~A`Y^+rE>fQz|_;b(=c3wr$$w7 eFWw8z-jVC?!9q%r`IyDU0zJwT#sOo?@&60x=Qg?k literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_strchr.c b/libftx/libft/ft_strchr.c new file mode 100644 index 0000000..8a2bb03 --- /dev/null +++ b/libftx/libft/ft_strchr.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet C3B?3-B*HS3J&$7Fp4Y#vkBXd5x_By+Eb91fvF8d&}X}^F6=ik{cUd?RS_Z;Lg zcy|lz`@>}amD!^3H~ZL`y}K^5YnjbA&)e-bvC-H0Zbd_#sFdt(nhV>aWio|{!RR|eRE?cF}IXpFhnfta7cz5ST#oVp+9`f zp>VG+*AOrWw1oLNs!jxM$RV!a0>YlcRT{r9cdSasB89#dDf1UxEQ$|v$r#M%ntsqs z<}0pWOt!pwqg?ZoQ`63*GdXdz89JwKO`~OLZp?DZkK2m1;w zZnNbDsbkZrYS}LbZe=M|Dd!5oN=E?_>fLB)Kpx6|03TL;H@yLhxN!-@%7{2H)YtzA zTlO(x^pH?D;M>H=Z^o%%%eaaR0D9*be1fYG;(cP66m=RO(LEHtQYZsqXJ~8MLJkf- zl>^pUxi>BCv>ZxH!;$?~N%kQ&n3jEM8MBJ7r14CS{Ui+ph4sB*VTDezp6eY%WAIPA zm(%Qgm>n(?%pDj3Cg2425EF15H93OzXe58wE5uZWLEJ~Hs6ixrd)&etxS%L}qGQ5d z)`Ul{ChU*klxK$RgRH4n+fB#)7mTa?1-8Fpt@AS)e~IlMG`z{StKrw#R$A3vWjx86 z&KN!CB;)#dz*+Qi&EkTa%hkOWIDxkkfRnFPs~*lgJMkWMXAhjZS8>@>_6s#|{952S zXD-Z7Gy*rj1Wu*WsxG*Ti+Dkc|DjjPzQ=%9S}4@rs@F}7L+xOtz|Emvt&;x#@(@!* z=R{>(=OKBl0M^u>sMu%_rshuhW_hFLQsElPm zAZwj_6!GYNQ1oSPN|FN-%)_6cP{vu)+!IC355rL9xSI-Kt?Dbi2k~C=-ib~{IX70@zmd_sP|V`12?_;_lQB&C+gn-J}O?}Ma1+oAp{rs zK6CJod5s; literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_strdup.c b/libftx/libft/ft_strdup.c new file mode 100644 index 0000000..69b89a4 --- /dev/null +++ b/libftx/libft/ft_strdup.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strdup.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 7%g5T4!jTmL1t<5VT3fGqxcA?qXr2})ankYVE%gg{1csEmKs&Z_Hmuy;); z3Pd#p(jI6egerkhd*X;Vl~Yv-L_i$4atsF~R{|;AB7tOPcHfIPTlav(Nc(2yo1ZuD zXWqVFIP<(LNgzmqQ!vs53J{BqFe&*|!UO6?X}+uOt8P}qKm#3;!C4SUG<^#1p`v)@Tm(j%#9rld0W98FD0SrtG|V{%19OIBT) zQBuc~PbZHZS)P982tb5^%%SCJ0JeBQRntId^kGm^r;^De?#rVd5*% zn!UZ8@Z|7t9RXPpC~4Abq)F*EjuCll)z{ud#^kLPPn#keYHxa4_98LW!NEHpRZ=%l zju8;Qf&-DPdA4W_N>$f(++5A7*v(we=yc7tott0K=Crxl$6e1j|K0*>i`o;=aLQe$ zQ+HRj8szOpH^0(u8QpxXwo-9>hLc}h$hS<}bSl=lyk%A!&YI6gfq(uK;LtF7%CoU64q@*Qwf8r*aR*NimfyIhU{gNfr(@a%gXNuZnk)K$+&yr}C zi)=!@#!@Iw6q#~@MT;y^WD)fwlW&~GfFg?{g0V7+l6qQBVD0`iW5&-Bi@;yQF(y!8 zzrX`#gqsGEoA*{hmTuR7kkrk|-c$edhTSKFjsP0i1D}*u4Rq{Ga0b1Dw-I1b6kZyWqz; zF6wD;T@T?d*S!}3W#Rue$Lk?~dL)QMobdPF5X3Ke)={2MxK8IqB>dNX6>^-@nu6;R z^@i80#z3nZRkvBLRI44M2U^FlDw<=gIiS_rt(Jie&pq&288r}h^kYrC(dH)0utBri zj-kEqQfap9RBGoyqsA;(>UDg%ng;?c(>6F@tdtv_O3R=;wTfl6Yop1qTQ!{BsZ^1_ z(<1&q(N~x!c<)5oBEOh71i(4%Uy$fMBTU?5VO!$Dbpdc5?lJnM1@E_TzskWm4v-(6 zC-oH3jL*Ee!!?oVH*TjtN|3_7C(#(j$iKwFtHIzgzE2`HuKpi6_%hE!^;2Jl>wk#n z6zfFQqd$4vX9D0{)G9djH_74nKEM3*eg#Ry3H~Y?g&g$zCfGayL)iBtKYlgr{w)V+ ze}W{|FR%+JjN88%exbxU)BaJfi+F+e5DV9Y5bW~#e<3A6Vc)mVHg5j8G4s=#9G;(k qqsp0K8`%ba`=s-Du`g6VQF#8Z5feV110Qbjru>!b6h|q;^ZyH>tTPk< literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_striteri.c b/libftx/libft/ft_striteri.c new file mode 100644 index 0000000..f21babb --- /dev/null +++ b/libftx/libft/ft_striteri.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_striteri.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 2^+5>uu%0t>?{@aGB7z5I&N;t(&iy!h z&m`}!UVc$y45To)2oF3-0h-1GdnGbgpoo#{_TV?W|9i>S#I@V?#OIfUW|97FD1 z!k7K?>X5?iz12f|@0H>1vl%GfJR6hyLZVDS#9QO@Nn=0r2Gs z*C+zf^kbkGF6Q%jfXs1r4%4zc8pxeM6;Fo?e2q^EAB>8MawM|VmxDmlB_)r&Mjk7s zwA)*;wTTM7>#_GXDz4pbM&9hFqzoELM;0^QMV-lhgzqdR#yp+M-601>Go#3K2G*;g z7lfr+tKw~xdQR7OJ6>sV$y_iO=AR0q!NvEM&|5a2hDK2KgRUDmUDvFEq4xYyL%W6%0Q-ni@Fu<) zV}BKnlA@muA7+JqmyTn#TD|uC;!{^FvQn7u2lcwsFq?66WHm&Q z=tagexj(sKyv}uFgQwo$**?!3Yg}7H@D1l^W*R()-WpFC7T12@?5bwq#^fB+^i6~* z_+vC}Oo#FE6T>=;FQLK{&6^m}0k6LzYv|7<=8tNOOwN!)JGqMN2;y<4pn)^ym)%AHlsMI!-R~}62kaDG7$M4C;L~6_R908nWxzVk( zon$6{R!m$is8mtkXp{bb=^<7ZU0YTY_h*7m*jB)n_`{jX+4u~ de+g*+BJ~yvteg8 zrj@kSRcS0$D+m=-e9{L+ilCxTDHhY#2lqvYzSx&)3JUQpqEOGdb8j-aO$G75+;hM0 zeCOP|_s+euCsX?$2`LH)Q(!l&Ai)BZqbvO+>n0(A$^+KSb*uGT(wdoGv}T$MR%?0@ z;xBih1iK3mf2D`IbEzdty741{Gt-L;gshp=WdsWX%p$mKsnfGoYfiB){t6;+4NF~< zOTA7N=2G)F(X2D6d8;+6V8wZBEOj}4b~76&wP>ArZ2q-@2nw!I_w+#I#`lykmumCG zHcxD0;%xlvU4G&Ms@p4xZAr(QWZb$?^k2Hy2fyU!uNn0+uhZLUCqFZK0Ue7kKMOvynoLo09}I+ zr^fpMI!0H)NF0j+M7J^rH?V#fAAktkz;4!;oAnqAsXI6ws;YZ=SGmZNwTLECNU9tp zq{c5{tB1}__^9op@(St*oqLXl;@YO`RQQ#*HLc8m^HD^7E2sN^)wT*Y(Y-zDxbuE51JtJTTc(C`SYpvm^f^!G)K z0N@>)uwA1}V~cJGR__wd%=HQdyNEIsL0E+-YJ5}UiWcqsQ|r|aX&Z_fwyIvz)?LxM z^t2W|q^;BUiSAw4-HNQ4*0!XzNSef*$mu*Od_{}4v>yFyEtJ-}u}U1p-DypIQ0qu* zooOwkk7?n<0Z{@){U}NZQ8cZ^nC>uEWn=VUCXNw8r0DxXow(Lw>bLlJkO{*dH*X0b zp~CV{UKLjPIbTIGeTPgjtir8#!5)nC1?sbR2Dvmo36{0GdFwX(PA;Q^Nu&Qww<=od zHvF>zJ`&L54auw%TiS48V&=rN!_NbK+zWn)QBp405 znl(Io$^#=`uhne4t+@g(eIE8RDo(K;xMp}4uVOHqx@Q}YK7L@x^|JY+V9+I&$rcLu zVJWSuf%l@#3A>yrHnKGvYT0VFo)1*U&y0bCd)XZNV>R;s*FMAo!E+(%eMW}}?F-*6 zx3q3SqwfZB;+%>NRp2BkxvUYav_Z^&xt|@Iq7ko zaI$tg24s%3S2_8+NaSAD8py9T|I>W_OFV(*PxppA|GSYRiMSWA%j`@3(#{EjdojN7 zbpNcCe}Zo+%`a#oPxz-WDEdL&Cu_YFYiLjV+(ht^+) zTqyRL){pKekuUh?ky~s23w->OQc!}>xXt+I*BGC^8S?lA*!A5vuqc*P^=5h bpG+SAQ{;q(33yZHADMZMDUV($dHjC>DtWxp literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_strlcat.c b/libftx/libft/ft_strlcat.c new file mode 100644 index 0000000..5ae86cf --- /dev/null +++ b/libftx/libft/ft_strlcat.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = size) + return (ft_strlen(src) + (size)); + return (len_dest + ft_strlcpy(dest + len_dest, src, size - len_dest)); +} diff --git a/libftx/libft/ft_strlcat.o b/libftx/libft/ft_strlcat.o new file mode 100644 index 0000000000000000000000000000000000000000..41537448b578d779f9f41267364b45539fb97456 GIT binary patch literal 2912 zcmb_eO>7%g5T4!jTbsDCof!Iyz=sA7Rd$^aDris}1g0CeLITOiLPCyz)<5cc9lYx( ztuTdzpIVVnBcKu>C?FvaM~=NAdgy^ej*+E@KH18X$ceAhkB#lWEi8NCZsbi-SW74<^AZrMYt8>Sd#JTuv z{P7d>=?f@&zPI3e#Ei)6Mb8@}57_(EqR1Mq5~mi6 zeu&DmRVjKK?HB=2sPt^Nm#JE1yOCKkyH2ZPXQrmLtd^a8qUQyt-ke5nMtc(KZpm@G zR<-PERnYCaqc=Nk)6uKdX1TXyy86tt-fr0~w`^U}tyZP(F8eBw304P3>e)`KVVku~ z%XYzOT{BBA)J(?(?5PV*x9WjlnRdy8|JyuiVGmM+B3*kKq~(-!>PR$p6VKsc#ONcT z?S^L)srTgPMpgM1G5~%?C<3oyD@oE{iBVE?eE3Ov&*{>Fbjw<5PfksHwzqYre8}B?47uhlvsQuc7dsCkv*g~SX|9BrO1w{>ueOwco8F) zSQ1VA6NHmRrsUZOax&@)o5-`NJUg3bv&hJ^^c^NY!zA^RJc5&_!H3D`2u9$~-C;3h z|3)4NEBrnm0MSt(@E8Pw3jF)dYZxC7^zWSkVl>fIAXk`$L-5m_Koy3^27mARa`q7X zr9<%R0i0GL`teEy{So{W&LJgMM7UqwevlqF5`jwhLOAm*zd6Zm!9U0SN4Tc_ z*t;cYpE(47n&YCM2KO(9@HOt!ev%0O$G!{REe+tGaQts9^S3#?pm0qJ%u2j0_5@=o1Dr>H}?1EP9wA&^=F8gnm zAmbCpnSOH1u6G2@v_Z2wuBlyou`ublH`u~vcv6J9^6n%cpFYFxwa83Icltq<{#t5 z+2jc{e}cmEr+Onw7QdkU!SlWif@q8Jg`VJ8IR6&E{PaEsMdS%x!l1B&yt~2T2?WAi z`qf8lF-*V5fu{nwWQz3*nEnwNwttKKLWy&x{i8QS7%g5T4!jTf1>;yGaNMstPzDxWSDZ3IY|xg##CE&81Q*aR|2{kiyLFd&%b2Js?Kfo%z0* z_vZb~yf^ZvpH&qFgeWixdq}VV+xnh86_`_y!N?hN`Ig!FBWErzZkx;PEpvHh)BGvF zK_TYKnGLh^y)w3L9zV0Wl)sto+!N6GEpny5izPbSkp6fbU03oqzf#g~GxXm+8VR~G zkT6&B+Z4YPm^kCQVlL-5ZeQQo*)cndn~=WT8;%IVZp0Fpd2wqKIWRjv=Fb1198!*? z`k9u>+s|da*rk`Pqr_Y{PbK zzvx`ZI(Dh*FN7*G5}YPxYP+6YbFIpV?fT%^m#kSIDxMEGQ473QIpDzlkLv>%pgo}| zmtFv6A)_4bjVD&|^zTQGJ`y@)csiANM}6j?u6~9Q0KXy?gO~8HD9YcdgQV!v@KdsF zuSMI)I?jA!bZk7Zg9FQk2bHzmveT|u5ZNXk5Q^tlDpu8~hrM)Q_nx)1!eTv%lk7l; zCG`SJ7uet`8?Lek3Tzndg66C;RU0_Ldi7se1|xb4Ogq8i1=dqwG5sl~e#`Xp`Z=cQ zH5Nxd(gXT)tOrf?oT}scDgRyN1N6k;&z)`o+Fm{Gb8Ebs_mK!Rh|5%fHMq0lX;poZ z`GdPau7F=A7`6X*jYH}q%JL63JBfIPdXUq23@MS3_^|gvXJ4p5@S_|LMtH_;Qujr8 zn&%kD4{}ZW*u71(AH56zBpqkJY^Q>|H6)FBY$8SmeWsa95 zzQwV~Bj$gf^CMi-UZeXJ`;gBe9%%tEDpsjon=O_~Eo&Z(mgN);-&*j&C^s7o3p<}j z;G@Fb;RxHUHpN7i3x?bDE#uVlGozkgEMEYF8gaH*so-l>+c(g$U5gV|eYV;vHY_nu z_-GlJ$}g6{@Gdq;|6iepG+KXRzG+^dUkie3Im*hzHA9L1jHq`ZDPminXH`oH01oe!Y( zQ-8|qH;|){9DYξtuGiHgWC^bvG+8^6Yjo#u~<7$@{ubP78fcO%*?5r-U0{fOM0 z9R4#Wo`{SkQ|w>R9W=U~-w-b-anE#q)Z1db;9o^fUK3KgMg3a<_I`3Ky&v83=ep#l wT9flvkkd}@P?^1n->#T^yvRrEClNSA0AHdZpB?#r=S{gz0ENcUlyd%m0VF{*T>t<8 literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_strlen.c b/libftx/libft/ft_strlen.c new file mode 100644 index 0000000..12813a2 --- /dev/null +++ b/libftx/libft/ft_strlen.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet &m;1 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 literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_strrchr.c b/libftx/libft/ft_strrchr.c new file mode 100644 index 0000000..3693db7 --- /dev/null +++ b/libftx/libft/ft_strrchr.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strrchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 0) + if (s[i] == (char) c) + return ((char *) s + i); + return (NULL); +} diff --git a/libftx/libft/ft_strrchr.o b/libftx/libft/ft_strrchr.o new file mode 100644 index 0000000000000000000000000000000000000000..02868cb5221774fcd683a9639c70e18437b458c8 GIT binary patch literal 2728 zcmbtU&2Jl35TD)kTf6zNodnXBB4mj#sVKWi2!fU>1R=xLG#r2+1VZlGUfZj#*VTG$ z(x6h1X;sS-Nt!^9L0c5VtlS4nhYxGyQGq)3|{_0NV_RpubGFPXBMWL|#;NBzx z_r4tthsIC&0m>9NFuFhH-uXeAk{(UZFeRNmdLlg~P2&mWM?gt0kB^T7C>c0A1CY?r zZCYJ9rle1gKRf>T@v}3}9S2|xWDb#+x^zHIJ{H8LW|4()nD{2H1f2jj2(r&@dERp(* zU?f=!kYozhN^RF~=gN-h)^Z)oYuQaVx3H+qYx8qYwgcnB`-`Y8X-`4bFSdNoE7v`( z47yuw>GfvAYU$;2-E4O(Ute0(8@6lvrgK4e>{8WV4;i3?7YT8MR1l1;7$w(|a_8U{x0-Jf0B?@dzeVI+Fzc9JLl4^||K|`{@W(zEHhE1GdNsZl) z@KJ=(Syn%On@L@H43A0M{X2bvrUd*k9Oa>e{cy;n?04M(n*zxLx=<82+{*kn~G<=wkAl%L?Z*uTd0r#X-N=VSiClp^+841bsFW(>c?^=1sGktVttG7#qx_1ui% zpK|^482%yGbDYz^M*mm*U;MvR&?;7`T`QWUl4o^5^DM{Id~4kYt=w!hEF56&flozb zF1TkHY`fJaw>g#zn%nd(?WI@N=32g4z5p5xT+ysl@Hwg-2y|@M;(%2zRz0&}MRMTm zX_(bFOUN%Zi2q;u5;utUpV;qD-b`N$fOD!>l&HT66a6e~D_juwCh+*|WY7@pbKz%j z@E8ZkkM0kjw15Oox#MRdhwlR~0MTDuJ>qmZM1o6%v37~;Oy!}yDF zcM<`xNI-=|6w_Y~v=Gm^bMIy{-5}yw=AL`L z^SbxUopbk@_?~-JMFB|)?0_Xnq5yrtrFjpZ_CO0-_9iBNPmKTBk(f9-pO~o3CdQA> zL-=?IO>jC3;S-HCor*7z)7%dvRO9nwThWMXgm7XFX+9$(qFEXe6Y+()H)%2zpWy%+ zC#rjAUhw!6)yi!6%);#Jh>tH|uokkb#%B`apDXA%Gxz=C;$otDblwg%K1=8{<;Dop zjtKi*5vDQ1BH7j=P}qs{iE8h3;?`bF@TDS`cL7xwXqm_t665DO4xG*E;Z4VBu@K&L z5Agc*oLo2=zl_zv)MD!$q(6gTb?ASb zsK&1xI15UPa${2~)0&!BuWxEmB3=MBj9N`cO~l)?Mr+z0x+8S++TE>pt_AQgPzAKR z6@YDCCVH=S0`P@_O#L^2*0duO!Z#YYi6g;P$n5Z#@GpEk_@E^}H?)nb=`iY4P2w#m zDG!sRtos5-k2*PQOLRU^8d{Q=I(d*w8-78CQXiMvg!CYnHc}M88rbv*G7&%gEzU9G zlcZ6?KiQI(XX(9;kzv*p-Ov0#*A>GV*lGGbV<&0VoV z&dgb<{GnJrH;}bPZRYRf8~d zpVY-+97>SpA;{yutseJ%4c|SM?#Mn+Mw^xO4L<+N`1&>=P7e{iPT1Mh{G57sqgQKC z(1h!{xfXz4M@_HpBQDVL}Uv3!1{(B9d_=e*uAyUwwk zna)=-1~{sO^+hUMnT(OuhwL5}PzfW_)+sCyyu@0(eQZsZ;i!2Bng46%^CnrSn>A-y zILW--EQGM;{f+s(lPogMu0?eu$=bSEAj#BY99BPKt@~L3HLLrW5B1*rq}>K-=R1epk@5WSTOh_M||E_SR-m0k}S~8d^+>sa)KW- z_0(fbsi+LAWbbFi@jcXd;Nqg&;2{K5{6$3o{!WCEhIl>F#E0$HX~5hNmo@t{x=N=3 zb^7JB6~*S|5SJcZ0nZ{HajcV{ImE7C!TtfniD)wFYGcd`>K#jF8o~~kGXI-)}yj|ur#7cS4iA1-`S$Wg)Ri*eS!$A!y%$$GormtPHp zK+hNhmBIehz(C0u0lj48Q@Ul0TA-(kg@S>Np6-vz0QGQTOH=z&$yA1giyb9rW{XR= zgl&^IOh=0Z-7H#$zU%(pcDy;#hd`$W+n>s0@Ddwb7A&7L4FMQK{n=8gU^oI{uhr>V zOAR1@qQH5nm`PbFf;;t2QH=k=K0#k+ePyVp=;K8C*=Ds-w6&T{_ZDH!Z;+HdG$7F* z5+}KP5&f5P_6=z}Edm}C0Qu2bpk6{m|J;ba!G}_Gk>H>YMP65WZcAnoCobm>cQ`G; z2`5;`c2^yYTy~09e~|a(2|gahrLO5)x>^*1u|Fei`dlrkx#_*}psPLDu a$)Cub{~TiO+L7I9aal%%12M|&&i@aZTh(g- literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_substr.c b/libftx/libft/ft_substr.c new file mode 100644 index 0000000..3200ce9 --- /dev/null +++ b/libftx/libft/ft_substr.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_substr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet len) + size = len; + ptr = malloc((size + 1) * sizeof(char)); + if (ptr == NULL) + return (NULL); + ptr[size] = '\0'; + while (size-- > 0) + ptr[size] = s[start + size]; + return (ptr); +} diff --git a/libftx/libft/ft_substr.o b/libftx/libft/ft_substr.o new file mode 100644 index 0000000000000000000000000000000000000000..e0b7098e1bd96f2aad87cabd551b5d33a8ad882c GIT binary patch literal 3304 zcmbtWU1%It6h1SvGdoF|-OZ0}+KL4HLnO0F8f&$+Mr3ueX+)GrDag7%v&qug*|;+s zwuQ7}w7M>q)(7#$7b_G&MNnUSP(syOeTm@1KITEOg&+}M0t)e*JNG8r>q-$1nK}3S z?sv|;bAQg}Z0gt(s-l1}1&+cF5-h-VbEiGYnv;+~<*eQK#a>qntEo*A-}sV1b7|u`A-j=kHB;-26}y>g+4p@%7=v06f0IVRpca!+@8Q&1 z{2XJOsWm2SE}{6UVz2xPBHJoPugXJCQ>tca)o#wTzKxjFZrM2I^2(Oon86&I5I=uM zDB5VwtlQd5>y1HEguFgz-nh24wZ(8FwTXVyUjBOY`727Fa(8S%*J6o1`(u4dzX71e zF^{$zrUtaw!##(403vsR7CYM0gH7GSh<;;oDD1m;@6^DfdjSj`R8CC|07NHlf@U0( z0d(EN9Q=g&BlrNAY>Q|m4q{iRHx1nBK2+;>2azpfK zh+YWM{ph0V#p4Y1eG#Ik8S1AjV7`YhHkP57A7i^~n}|lVZ%Bd`akbU31=n6j5YR8NZhEgQ}H>q*wHl^OdsW zC-eFFY;DmAk`v>}a>*+NS@&epE#-w2CQ0fU~|E{Qc0k`&c1 zaDXW}NY)P>%p9B;aZ6sUJ~HRklDSgg-$LS_@&OmCP;iRYJPqEyH#nW()PmzymFE+ef+kL%sWv>rva$M}f#n%Em#)(5Z`|GE*G z=o6^A4gJ2fZem9mCX%VwFfy(0O6$ESOBg@vYFdwDWFNA7j_C2Ut{u^%*qzo@%J%qB6y>2LHU?Q`nQ}puQ8i{;Tm759P{_j4gS^3R4ADDzBDT2^{Om zr)Ed6{^n1DMFlLAEfnzgVD6?sEK&|9ocT<#nk_p}&bn?TzcVQQI#@VhkjFm#->NM1Dp(`4q5vM_RAcFT;^o!7V(F$ztjAO`GTzRJT!m$BzgW+M@S;R z6PwJ=@Rl2K7#dqJ#FekXzu>-A*IoX?@yFe81pc z#zv?06ALBwnbwbLf`}J9)hV$S*xa^H`26RkP6@(`7}06`AwG~8hsLMh26_BEa@w)2 l3c8o@*|t$G6zf9qWb*h_uY`sP_-lxt{}#s-M@LE?|8GXIn}PrU literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_tolower.c b/libftx/libft/ft_tolower.c new file mode 100644 index 0000000..14d83da --- /dev/null +++ b/libftx/libft/ft_tolower.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_tolower.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = 'A' && 'Z' >= c)); +} diff --git a/libftx/libft/ft_tolower.o b/libftx/libft/ft_tolower.o new file mode 100644 index 0000000000000000000000000000000000000000..d72c6e9b19357d15238801de984deb80f36343ee GIT binary patch literal 2184 zcmbtU%}*0S6o0eZMWE0Y@PiK{Js?U9TZ)({Bv@i9lAs3+9*hRIWfvOSUDIxBQBe{S zBjN#1dNJ|nUtm0v7!vpgJnO-`CLBy?Qr~N5U|4F5@t4fJdB68H`}XZVi%(ux7y|(Y zqi~=J7GT?VaE?`uF$kjP^o_OeYs;necxf%Z8{J%8E{(m2?*(54(C5=#+(zQ1;JZ!a z*5kV`Z|<#pW5JI*shzLoa=CB&{%6+0&IZ~vH4r-06=-3tbpVQvWNTflT@4KTNBrkH zCfcrc0H_)$oSJ9@@b!Qi81?)8SmO?^>iy~~cW*-dC}Kz{f+mGg9I)UN?yBOEXO=)s*awijq7K|RF9q-)^=RnV~CKsCs; z#>TwXU1w>%8(P1mI$yM2wZ+mpEv?DY6kSm;SvBnFzKWC&ewL3~@Le3drbA{GEw!Km zPE8G{K*MnueWH!(2bZB{gcl zw|Ktr2mT7@McsL>k9+t6*Kd3HEZ4(aQcbyTl=I&EfIep?^7AuBB9S!Dw;k8i$8Syd=UgMX2zokQ$jlgXbNF4&A97EpY?Bk_ z!i<$QGNzOnr%}gRu8}~wlp*=Q*uVtxdl&i6^Oyc!5L|i(JBU1SVvdA+j30y)d`KL) zq*!lGGOf^th*!n_?)9a)@N(q5#UtofEW_(NghqM3g>OA?$`4M^f1Uj3-$7`v3ZOZr zoC91JqMH{g3W7^fU&s^4*NT6`9rVA%Q-4G**>$THS;Kd!$~}<31H7VR>;zDYFJsvqK{s6+MXujs8mjhs4Jc2KO~ g+J~5bK~OxwTmLO`-rkYlEGIvZf}lA1M!fZZ1L#l1bN~PV literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_toupper.c b/libftx/libft/ft_toupper.c new file mode 100644 index 0000000..3775f6d --- /dev/null +++ b/libftx/libft/ft_toupper.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_toupper.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = 'a' && 'z' >= c)); +} diff --git a/libftx/libft/ft_toupper.o b/libftx/libft/ft_toupper.o new file mode 100644 index 0000000000000000000000000000000000000000..485783d517d3cf8179eef56ec1cb44b811315539 GIT binary patch literal 2184 zcmbtU%}*0i5TCc(tw5nI;0GT@dO*~eZYg4-kYJ6eNTMDv^I=)Uij7kxf0<2D(s`rd6J zw-McYd1rt18}ohK&Fp@y)oN_#(P!4p&U$+l+3PBluWA>NMFIvTuGIxvQxj-fWLUIxR8Tlv!BqFzvw5HgKo zD4oyg#ZWSt)=FjF3XPA2av3vYY1xHPHj^-{N*!#GkTESt!oL;9iyx=Uqp;;!U==?b z>^#=CiOo2T94(RvZP&g2=hBTX_hWQG^&u`74CBri+xK=6P!Dl2+qLk44y3)&K-tHX zj*gNt5y4QODmB9 zr>2F-K*MoZE}+_D%OBxpk)Z>1dlfNC#M?dr%uyG?2f2RI#w+|xFks^;&ji=caHK{x zdW+|af8eijUerx-ecHj7xqi>V7q}kaNHy(s!<={C2h@2zQA)+NM53UVLACUX1!^*% z%jr0<+*q^h#@MuxM$?1yHluaxSjT&*OKMI^>?sm^vr) zblfOtIo*~Sr%}aPmX<(V$`SsrY+?fYdl&i6^Oyc!5FDL@?L(e8F-O8Z!Vdxk?-vJ- z6zj}Mrd8TdqIGEOPG6b}Cr8fPJmLXI0Z!j>G}z}`__gt-{NM!r*U69m9VC5q0GeaU zIm&ebL%dK$5FAB)fhUk}75|1isDFv4{)k+5*X>qh3*V(Ww`l(sD9;X$ze0*l#PbWv z!b7Y6{o?%-eWL!g;}Y?LPb1gzs{BH8Xt#^gH;Kkp_5GX_b*Mi56`l2C$jP^Bd4yG5 g4H5G%2#P0h)_;qfvv=e-$H@<*pimrrBhLE20SMZ~n*aa+ literal 0 HcmV?d00001 diff --git a/libftx/libft/libft.a b/libftx/libft/libft.a new file mode 100644 index 0000000000000000000000000000000000000000..e7ea2a65ff237f0fa0e018b8abb801d14921b8fb GIT binary patch literal 96836 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 pB(DA)iAldAtSj +# include + +void *ft_cancel(char **tab, size_t len); +int ft_atoi(const char *nptr); +void ft_bzero(void *s, size_t n); +void *ft_calloc(size_t nmemb, size_t size); +int ft_isalnum(int c); +int ft_isalpha(int c); +int ft_isascii(int c); +int ft_isdigit(int c); +int ft_isprint(int c); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memset(void *s, int c, size_t n); +char *ft_strchr(const char *s, int c); +char *ft_strdup(const char *s); +size_t ft_strlcat(char *dst, const char *src, size_t size); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlen(const char *s); +int ft_strncmp(const char *s1, const char *s2, size_t n); +char *ft_strnstr(const char *big, const char *little, size_t len); +char *ft_strrchr(const char *s, int c); +int ft_tolower(int c); +int ft_toupper(int c); + +char *ft_substr(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +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(int fd, char c); +void ft_putstr_fd(char *s, int fd); +void ft_putendl_fd(char *s, int fd); +void ft_putnbr_fd(int n, int fd); + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **lst, t_list *nouveau); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **lst, t_list *nouveau); +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 *)); + +#endif diff --git a/libftx/libftx.a b/libftx/libftx.a new file mode 100644 index 0000000000000000000000000000000000000000..f5a799d2b47d0f5ddad11f5e5ff647981b228fe3 GIT binary patch literal 5274 zcmb7HE0E+w81ABq0|q!?p%4gaK_Cz}=|^5$)CmMtAP@)y;$|~5nb{nfWGa(cjuQw3 z0)apv5C{YUfj}S-2m}IwKp+qZ1OkCTAP^K^KhxQ|sbse5oBZABFaP^b_PLkZi=w(Y znV$Cl0&l5h|M&Ei(pcyt=MzH6tAyNt3-}cHg^+6}!0W(=zz>8xa363JxC?v({7uM% zH-Ou~7r^g?JoGH^7Vru1Ga-}fz-zztBRC@*=PTJ_mjy>vyz>1B(l_ z3CR)lTWqpc`K@>TonklB>29)WS#M_RyviHYiY+vhoK0?5 zQ!B4VK#dLa26(seeUV$p{W`PJxm#+kv@Gcxh#pykj3U8 zm&QIfq(R5%B>Nn_)9DR;ZY-=B$Lmd_&;@dY&5?J^XVS}T&LIf^Y zgWM?S>5YRf`-5D;je}Zm8d^JSY;^|pbFSDNb3e|E@yMxj!XbZC8(3W%AwRmzU}<;(_pn9Ix&Z8H@-7|l&=9T{%Ss5N>>uW<88a~Vy?>ka!hGt}8=n?pO> zjNUkK)iGo<3%&Od;*3!s#_RR^2wY?+w)*V#V1E7YNy!yqU>kUdix+)2pCva=so@OP zB)*AEI(4i>!1>txvdHUS=tWs2V{K-MHzy@G3P#rz^JlE&CShn}WUq(f%oFc>G6c74 z!NK0=%$u>`^4OU?$Q7xVBXHrqEvrE; +# include +# include + +int ft_isnum(char *str); +char *ft_ultoa_base(unsigned long long n, char *base); +int ft_printf(const char *format, ...); +char *get_next_line(int fd); +size_t ft_random_generator(size_t start, size_t stop); +void ft_freer_tab_ultimate(size_t len, ...); +void ft_freer_ultimate(size_t len, ...); +char *ft_strgen(char c, size_t len); +int ft_is_in(char *str, char c); +void *ft_realloc(void *tab, size_t size, size_t new_size, int bytes); +int ft_contain_only_str(char *str, char *to_find); +int ft_contain_only(char *str, char c); +char *ft_strfjoin(char *s1, char *s2); +char *ft_strmerger(size_t arg_len, ...); +int ft_strcmp(char *s1, char *s2); +ssize_t ft_strchri(char *str, char c); +char *ft_strndup(char *src, size_t n); + +void *ft_cancel(char **tab, size_t len); +int ft_atoi(const char *nptr); +void ft_bzero(void *s, size_t n); +void *ft_calloc(size_t nmemb, size_t size); +int ft_isalnum(int c); +int ft_isalpha(int c); +int ft_isascii(int c); +int ft_isdigit(int c); +int ft_isprint(int c); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memset(void *s, int c, size_t n); +char *ft_strchr(const char *s, int c); +char *ft_strdup(const char *s); +size_t ft_strlcat(char *dst, const char *src, size_t size); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlen(const char *s); +int ft_strncmp(const char *s1, const char *s2, size_t n); +char *ft_strnstr(const char *big, const char *little, size_t len); +char *ft_strrchr(const char *s, int c); +int ft_tolower(int c); +int ft_toupper(int c); + +char *ft_substr(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +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(int fd, char c); +void ft_putstr_fd(int fd, char *s); +void ft_putendl_fd(int fd, char *s); +void ft_putnbr_fd(int fd, int n); + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **lst, t_list *nouveau); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **lst, t_list *nouveau); +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 *)); + +#endif diff --git a/libftx/printf/Makefile b/libftx/printf/Makefile new file mode 100644 index 0000000..7be75df --- /dev/null +++ b/libftx/printf/Makefile @@ -0,0 +1,39 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: cchauvet =AG%c8&78* zi1#ZJW^O-8ef>C_%TG)m`~3KclV{JJzc76fjA7$&ax`WpQy+{ahmDaqK*U0DBtCV( zOrA=7kvMYj^5~g^0A>s#3|$@th#mqnc{-6u;MvQ#qLc*sgSz(yvc7$WKtw=NjO(Ns zLyNeZk)OWVp>?`il~{0gEE=%BD9jgq*Yne*y6slet4^z3Yr5%N-pX3p@d-aL=Dy9N zHfbG$idQJFv}&%mV3i=_R@#}RX2WS`N~I;+Uv<39WIofVxi!zOFK6ntV#VuZ0{==c zwBWC-IIRxgDNrec3%=W~Rb8i?CglIsgYE32o{)^2UxCp{8Do3<`tRb!eS{b-BDxIX@V$paZH`a7Ez|?uKFfn;axY_l?Ww6-#{vv}gOW%^@Q;Ht=WcllYghfrVJ) zMI?@~U9XV+9%4~=vlU_jv-b&im`xsl9Uv+uC_}3lO`wi;lL>>nK&o^^$s61aVlJ-K zE^mMXj8UAa*gs{N=7_RyZgmM~KA-{IgBfF8#+Y!mixIX9KF<1n1(!1k`cT2?oKviS z%$(}n{#GbUe>#4W{Uz@b>z6cqjrDmAUuWIc@Efeld2;@DjHj7XjcT1a#`QY;d&4L% z$0|ETzgn=1#g?-QR?Df|mgjUluu9EF!@*a?9&NA1=59pItu(=Mo1SA`x;j7J_UzI! zSoQj9qhOcI`1Gs2WPZI+wA;>(_6+pywxn*o=tGh zk`B4i_hi3doH~bc%pW{#&jesj_o>ohR0vaNitJOgA<4XSwcT$bjRtkD#cz&_$}&K2 ziN3GAOnFBS5u^NhTq-TIGOU6qOZ~#>y@;&320!=+Osims?}ZSILLSkE)aZhC-)VE6^ui5d07BBq^d>4hV`@7Ge%n99J0++-K{yk!PO$fnJF6bI53hBPL&=!{e yw~+kw@1f^kM9iGsqA^*=wN1}CUh+}>M51>!fL~G2?~ZI82LED5itEFr=YI$2nc)Ng literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintarg.c b/libftx/printf/ft_dprintarg.c new file mode 100644 index 0000000..18db1d5 --- /dev/null +++ b/libftx/printf/ft_dprintarg.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintarg.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 6R_q?ggR1f*S(5iDCA_MNk5ZS{W)Byj1(3)NVWN7P@WIPL~z4 zT(>|oA%VnActRg|Ktq%m5{YrqAWEN<7-M+w5fj$T%*nfcHE zo$tS#|I9fvb2PZ;#TH2-yh&s`sc9S~WS_6rAEw=5(h1D4R{2#s{(CRjR3_&trH5K2 zeE;O+!?b^@4QS9y_{(|dnZdbA@F&d--q$L@yC$gw@130M^Pld4G0oh2*9_m&;x{#U zXUEB#o=PW>s(JFT|7||-&4OY!b^i|d31KJnBqU}E3E5S#zw`CeR;xFrf z(8$+V3>Won6UaKFVfSHsW zI><0*tQcjg5dVz_c0PCDA%q9+HGg@E=d+Re!Dp_#1&v9i`~pZZABs;S>d2=LAf6AB z8uLMhIb+2rqoN7R^qiGVQOITqrO<2wXbRb^1u14j@o7XI*?0ir*&wMg8)TR>R*W(# zVm8;HB2b%k{_R9kKhiQ_mOt|79KBee={&Rv|;0>%};OHN~BI{ov&MweI3hI z`Z}d9Hz6%5fL-q4fb4t5`>glL<-5CgEGI-(NDG5@cN5}TOJv`6uh&b6;wOl>yCvC& zdTToj?e5+JU5_7Qe*%{aJH!L=30aJ{hL!;eYy_*JBE5lq$)AP0+;V=RPBZGXQA;bK zppg`pav1tB9YO+F2J#W!?4FDEt^(w-dmWZ(tII>eBc-fS>Wyb&*;MbiUMQw>+1|k+ zbwC|hzoA422agPawo%qh^^q5iRS zHf_W*2m3SWk)$!vPc4#l#sqwjWP*Snyow~1kLHreqHd5fOfw}^y2Y|ZN01=XxhCryGIjGBky3&149`&4%0~bLUa=-u)kpor5 z8xp-P2kI)ICOuc=6;%+1yuttx0gZY+VJBcs>ztebYEKn}A@>*{BB0S})p8Ah*B~@y*aLX-%>k+&(u+c*vbj0yQhXRg=J?DQV;G&0t+c zgz0eyeuC*a2Y!g@+#ioyW%zLi|1{H02Y!+1_<@3r`?+kXbYF-#{~7q0jdT8aruQ<5 zH52Q$f#J@2E^2LG?DP8DYG?mMts5=n^Lk-|s0n?f1TV6Yk%B%>)PkOgsfIpb5H+3~ z8`I(K$QVVVP_xd1VsS0=bT*l*jg~S*&E^bU-Su*KebI=;57x%;MXP2q<73fSA^|V? zRBb2|9f=k7I=`88mIL}|G+Bs^>B!HQ3`i#m?`=zgcRts|&jR}^0mw#dgs8TBcZ}+V zTq0(~5FS(qSrz}kSOg2ewqTu;K6Zrm;Q|TGp^^a@LrmO5NFT-&czkx6we^B@%*{O-!a}7d7m?TT?CtO-)e%P zNe?@OK0`%l&RB24ShM*Lv&6451AJFtjh*w~0T@zn9mMuMi~q9-LZ8Ryax=r6_Lta# zs{dk--`CuiNd3|IK(Ik4_gl+8FP;rZz02&kFgq^z{JH)$beh%g0sDF2&k5EKOUmsz zj{j-SoB$#n_;Q5yrDM>cl23utEWU^BA07weBjk*a=cK%69*^^5aM`Vw*>gVHV{^vu W1i)E4MoD%oP^ZEy-%BMO2 literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintflag.c b/libftx/printf/ft_dprintflag.c new file mode 100644 index 0000000..7f2c9f8 --- /dev/null +++ b/libftx/printf/ft_dprintflag.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintflag.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 7%Q6oB7)y&F4eY$vH`N)WO{p$C+88iEvl8iJ7NCaO3f8C8|gYHhEbRo3gs zyEbW2Xw=Y3#vmv{;=+LgAWp!sG!g`gR4)9S5m%&CaBy#x8Y#TDJL9Y;&H;%h&A#`( zd2eQRcIMev^5LkEE~dZ(}( z1h?~ho&27@^;7os+tQfycxpnCQ<)P}sWE9>1&C<~$JND2IrZ$wb0eouE={~}5QTQsfCe|5db9(MARn&H8df~DZ+_Sj98kOM>CnmrNQ^u;$%P~*d%(n!*Uf- zjAL@7*T|F7ENU&Dl}amSvt{|Yx!GLJc5UBuR&$PBtoZA>Fr_~ma1^MNfkpz% zZ9vO}>Y7onR6NUvrt8^N*D7a&upX}C3M)?i4a00yu~{ZGtg7LeEi3d4qh%V7?fHg} z!~VCIqg{jJ!4p5u^|iy!^?yv^=vGObA>|=cz%s64)^v4bb)+uD*L+S@O1Psa^&!k4d92* z{Y8w*9Et>>V?7?3H`q&Lj~x-ebp)S8PC|Dgi7hB7SRC>MQHaxV=e$7>g*aA(9w(b* z7@Hhe;e)>s@!;OEzHz2GpJx6;5w0+s)WZ=@m3BNpFDy;!#JOJmHFoc zzQO#0z&DxC4qx!Tw4QeuuQScZzr_4afnQ_(y8{1}`5y}WJ?4KR@Xwh4g}}dJ{x<^O zVg9zjKW2WGY1+%^e$Fv2?sGDsf>ySQO)MkDV#8{I*03B?^R0Csv{JoRv#37#hV7N@ zs*NlR_WTBm41L?J)IoFWzNMXer7-RJW@+`{zGIaF&2d^a!z`Dvv{nzgg1U#}d#maAM%`VDs955|b9;%~^arB*opET6G9?;z4nh?Q{^gwY!)q9Gu3)mwv z3f36B-OCIOF_!M>p!Ihd{Fx=t`l(Kc>(`J`$PBiq++%rvMj_gKey*wB49fq7HVcKu zj|$J@dKo*p9gTay@}rDwG4}J2tsM$yhiYCJfWJS-pQ15n|8BAa#lJJ{AJrR7n5; literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintl_base.c b/libftx/printf/ft_dprintl_base.c new file mode 100644 index 0000000..4411d58 --- /dev/null +++ b/libftx/printf/ft_dprintl_base.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintl_base.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet -P`8cyGtT9wM7p9Afnkz(kN1En|KuD?S;GD z5QWrAv>4A~tA0?BY6%qt{U`{9Qc(1p;J17gBBUTvzZDF`nYZ(j&CB^g9N3+i-~8si zxwmiT-YT4VLDw{pqQME+@gxc`o7}OdggFISWX`xNzq`wSjIAu)b63K*vDe7Rnu8*z1&s(Yuhj{1BSsx7{ZSm{M5lE#12{ipT~rjKca#Vf~JcrrX<& zyS;GD?age&D9cOhTIO$g+fC%t4J_&pPY;kT> z&R)5WkZwqvJndETv`i1*3H|EgE^j{aK8j*gj-XP_nH!HlM8>HyhgPDkw zoxCO?OA}DihM98c2Vt(#Ecx}^g4gLb+J0_)!WnbMMvsOfIDTOQy-DXOs0GF9e5c_D z&0@LK^_&Xi{aQCa*KT>;e5Ep13KzT}KRJykpk__S3q0LYKQkH?JM|!jv!7C z34I1QmCjz$pFd#fpCbd{3xpEzIKDMa`#XJr6sA#6XzDM*6A`jck2GGYjAo_=>R47 zFj4|H*(UWs3@83c_8(+TUn731PyP#jjB!~{i+xwY-)3J-2ec*s9mcB){}cA*`A9yU zFUdvm-dX2M_CHYYCH6m7@JsAdUy#W4X&8}w6{&4}mHixRI-B_UJk7XzZgvu!s#gx{ z#ZtN4@fN`8c+HX%c#8ozm3FJ;;Ur*2H|TIU%4qntHaLDe@SGQ4o*C^1rOJ75n$3k) zu~e<%kgM->ZWs--9f194yJ)>;!}oXtZ?0JDlv*C~=fi-;R1s&`-qGk_Q9-E;PWO!# z>HjOYaDn)Jmg~LG7ycIsu%`2j3(Y^mWPixm6dTtiz*_A^`irFduF4e#$2dSd`o7ew zBqNa$d#g23=r@kP&RQy!dlUmIM%+^jek&7Mt6T^1e)ZpG@Ka8p`l;X5`X5G&DDror zDdbPi`%VI^<^EFB+~}9T%FRIa#YN^xO>;)tao(@-W{L$=F3knR=2iL{1JA^A$&|le z!XKj1@BC)@Ldow;=SMR^=1Y7TF|{UyAj_9}m7JKU+zS}%xBq;f{b|;#`=3S3IJ4D8 kbrGL!d5`nuxlsKi>i$0=COLw@ukX43HTEfwmQ?ru2MTpW2><{9 literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintptr.c b/libftx/printf/ft_dprintptr.c new file mode 100644 index 0000000..4a9a735 --- /dev/null +++ b/libftx/printf/ft_dprintptr.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintptr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet 0?4B!YFe&yE}W9NBkK zN-4Euim(h)BJl>|ng0N(4=oZ%<&h^Icuu7t@etmSh!kedv&s5;d4Q32XXdxRncbb+ zUHfKc>2+06K!^et;Mfx=z|_F8o%YQ%j3aX;+qs`@|C#9A_&eM2_OtC9`!IUzQDk%x zxg&!1$mnDa{B|$Zod(c#P#L;B0btDcx$p%hiO{NG(67`f-wt*y1XPXC zfx#Xd%@#K0J?uak{S13u-P!8%HhSK3s0?*y&G*Ki?|DVvi&GrT9&2vz4bH$BD#c?;>hFO55Q)(vH>NUHWEELu( zZ_{>@^RvlX#i_Vfbv;?F|z3w^rZtIC<0~%t5|H<%_daf zzb%jU1rPZ>*5~6ZplppPXHE?aZey9xB2JB@Mcu{N*yrk{5ktL>41k*mMc`@d6-D_c zHbRQN4mPE4rMPilhUn<|qKzv0@bI2)81L(oMp=&(zoXf1ui8b*YP26`BbhXM-`A{vZ5 zfSQQJrFmP-xQcp=ZCQPD0{%FYX!ri1WPge^?O+Jo!C_Cbj0-;AN?+b(9prz+xZqPR zl5$V^6{1~>{372lVsiDwB_&+0UYzp?e471-C0yhrh+Z}l!C&mT@EB`ar~EZvU|jI8 zvOjkM|6+ju3H$E^@UPfk4dC1CuLtn2*}oRRzh(bc0PnD$U`>0H_jS_xhX%nc+Ig>> zv-0_dy$NQ+u3DyRZ@FL=>b07UF9$Q4_*lqq5_5au6{l1O)2X|*`NrET(@obZtbZ< zNihCAj)m?2R|c0kfc8%{4(|U6#E6o@Cd*xp`%VVY7V`^D^$Ck#=oD-@a{DNxIU(Ej@V%pMS9aRh4kt}n(s0*#1Bsl+F#01ADaJS5tdY^rY Kqrb|*`Tqsvs48Rt literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintstrtab.c b/libftx/printf/ft_dprintstrtab.c new file mode 100644 index 0000000..7055512 --- /dev/null +++ b/libftx/printf/ft_dprintstrtab.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintstrtab.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet @7^_OE|*KKja50+Vjs+Il17j=v?+3W4OKyi2B98zw|lvzcYEP( zH=M=RN`iO>e-shK7b~cQB0dNT3QAF-rGJ5sK17J%Lw&XoXLjeCZoZxmf&+UqpU=#E zzq8-{&fIIovrp-o22wOQ33riX0gk5c+Vhb)4>^onEcJgYt^HBxU%XT5hqrGOx5!z# zQQVI7M)7uO380T+nqi?QZ_Xbwvd4!{3_m(?X8hCy zKuUnl)R}PrF}nwvkARUqIXpZJkRAmJ$Q(o!FM*4Gicbn3v5X@~cxGwf{^W?M zuV4hgw@9U+jK7+u{goXdMV}EL%?`UAdM~@#Ty0HG&qQ`~es+9rw&&NHq2q%3zIa|J z-N13&y48pqW}i+Ri7~2))X=ubgks;C7%>;bfd!#2iF?e3m@wzW0}EneL1Y%hktHGK z#F)7(45TyW$3p)`481ILb51w0(s;RnzaJu-fR^0A8IiJxSAFu@D9N!^#=DgG4W2U*j%NS^9r|H2<lLkgGEhRt~d@3 zw&gwHP0x3ka2w@%r_yq%UspmJZe^TGF`&7`NEv;~Fa#?eil|>{(M0<{d2i*K zFY(2`B?;Dao=KtkN1W^f>6>Rm_Mzm}o}<4ZQun~7L5)mRI;LG^Dkd6^Tae(Gzr{)c%@`JMc@uRz;418Cf&x5G?a2#)xB%nmxm4bISAO(&ZtI5+;^VN(O9b7?!HO>-qVbW4g_J&+2sTwwo`Oj9FuLX3h_c#q|8f?DX zwVSS0&y(%HRfSC*qRx=C2j79VmeZyW4h=uS>-z*TT10e9@MSjlIPukJx`7U;F5*hU zN!&F}`!_pEjBXv5rdEvI26Ui*=lYnInjU$VI-b6g8u>bv_%o5l;LvMue}PaE{@ES0 z;Mdywko(L!kHJ0=6&;kJRg5}NM}wrp=m2;PkqISla5sqAxN-yD07n_426e^$8OtNhQNI3Zcjo=;*bEwNO6RvhK5t>2p8P*RgxSUDQF$Je{F0=kAbE>odsZf^wqWDGj zm%P+J(an(c>$%VRQUnj48DeGx_gP<#;OngCnNy8woh8Pjbq<43x2k@#Vpgjis|QBM za!kXs);ut3?N-aeN5dXnufygr!gd>Nb(Fzy+n#0I{B~)k>zTC`FdV1Xs+jdUzWt`^ zS*e;`Yu{Op?FwKmR~j9&WvK!9N(@ZznN{TXTLJI1>!xQCTr`T@-T!AVF;tyDIq7#E zvNr-Sr+ZY1ekTZ1XNl|!v?0lygxcU+7(;_P&*FERi<)JC-Vl9Pd6DvdUL!{NYwg7+W!f} z$VKi6#emLm+%o}~OMc<>?&IQrVF#*DC5aRM4H`vO{ococF}_biY*l@;bj}XPUm!&x z>0h926yomhM+Rk1=>BLHBwp|h#NtXl%>~^?yGl{t2WX7T|2if={cA+?-$hJc+@&$u j#MP&_954B(ej?FB4d4|D(Yqtt8iRkZBgGBjist_ae)Zoj literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintul_base.c b/libftx/printf/ft_dprintul_base.c new file mode 100644 index 0000000..6fe6a02 --- /dev/null +++ b/libftx/printf/ft_dprintul_base.c @@ -0,0 +1,81 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintul_base.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet base_size - 1) + { + ft_dprintul_base(fd, n / base_size, base); + ft_putchar_fd(fd, base[n % base_size]); + } + else + ft_putchar_fd(fd, base[n]); + return (str_size - 1); +} diff --git a/libftx/printf/ft_dprintul_base.o b/libftx/printf/ft_dprintul_base.o new file mode 100644 index 0000000000000000000000000000000000000000..7b5bd621daaf0fe751f1e553c14d806c8ea6d198 GIT binary patch literal 4624 zcmb_fU2I!d9Y6Qp9LKR++eymkms*bvO-S@Q4VlnJ37){Qc=!5A7S`1;i5{8}LGrS}iIB(G_0$zypE-mH^2S6AKS$6{}Q!|8xJxc22Sf zB>vXD|MUO-KhMWK=lJE+v!AssOK7shtQbfd6(SZHw3Dit6fs!NrQ3f`x89y=Z`@C} zn>*?DTrb_)=!xhz4#4V8>cKNzH{oWR?lju9&}O<(yd=jEo?i)&k?G042vD5o4yj%B0^vXdr(sxq# z!Nm3{5=c!F(yKwRqpe*=L1hG8J4HRXk0kMht)d$}d4=3W^kmY{N4eU~9-?RO2>s}B9J`nM4k?RBK*XWvy-1XBE*OkHbZA8g^)A5 z#K2xBAx0k;PGmM54hs={M4X-U0}3$~g@8;oR6auWh#>Vr&^q2r&tn#BN8^7&!}b()H^Y-yP%HAjS#qnV#`EQDWjVg?)#{~cC4PF^opPs6eXOaJr@uZ8X~un06dQ|$ zwOR=d<;7gK?zwr9s1)momFlWjPvr9}+2*>}NX$$pR!fyqBU`?ZD3@}@#>Is4D((p& z5Q{(xwpcH{bu=sW(sIQs#7Rx?qOz(tYQ7OXO7%i>O%w~F;=AniqnH9E)x;or zKSJ57sK5e<$cqv_$p2*^grLog$a?7oVO@+_#}14JuVGw|1EYtCR;PF-61!@D`e4BR zJuH0P8Nxxdx(51%zFsXwsAwGx^u@mZYlMSnjSTc1rQbpgBVq{(%d*~!93)2T0FRYu z)@w8&iE?>;_0;KU)mAf~@Mkrt|Hsc$Vc1R?YTwVpv8EAjx8=IL2JUsugeOxw$OGNzs(`lngK?e3E8V118ud|z=<5-`;o)@ zv#E3Z-Nb|uXYU@~hSkJSeD#e0yNM^ZCj!pa_rYIfTRJhu@TmI^&a@v7;h`b?&imjo z9v6y(lc^s^9|06Yw<(0~5#eeNB@i^>Gof+1m=HbUGlk>x@6*vCoZ=)|KEa&IlH4Zt zQEr>~(~Rr96_#n-h%~_Ab#__)Hgg@n z#q#$JT<5)E;P0~hOXfPhUcdJY`ya6UX9L&$ecQlwzy4$3@3D-dQjyN9zo$ct>wf)= z?LTDT{+21kl!1@1JZs=OU&g>+=J<04{yoNDG;saB=M8*|?W+d<7slhvX(t$7he-qP zvb<#AdR{IWxE{Av#wq=9{4skZ8g< z3p&61*8$(ocP&+lRnowK4tuv!ZFuhIo|`*WZ)EcqgiB}OVzyAgjc1wd`j?Brg#iI} z-FUbZKSjAz@fh${7K^p)sz;I5nhm;kEaGxvy5ksiQBWhB1OMtO@&6P35pkS-Vx6FW zFQ9+;tpDa|@5^+bA#8ZBBW03aAi8%Clet&Ze+Ak@O-j<{3|dle{MQ1fPpp>)&E_tUk@(TPwUmJ|1n?`a|+Key~08L z|1<-Q&ae4VsP^-}#vccr9X~!Wm)MZTkM>IKujl_ez|5M+Wu6!09Ybk|g3g!y@(W)7IuGTilFa-$V9v7- kt6-P#^yx7B>+gd6iOl?e1!j&N*~K|goE?bKk}~uE7arG?@&Et; literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_dprintx.c b/libftx/printf/ft_dprintx.c new file mode 100644 index 0000000..6d6de6e --- /dev/null +++ b/libftx/printf/ft_dprintx.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dprintx.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet DvwThVHdGeV0G(#;QBtv{$ej%qwbL8yozag*$(p~*&)O^tGT zf*?d6)Hm-RxX0t34!pPHRJ^}H{{TfFeDO`NP-k{$ns2xJq66RW%zS3%`<67kIWr4OXZ4XgEpc~CC6fVGPQdmIiiim0U`#1qw$4tJ$Wo~JaJ&p znX!|50Q49{7&_QMv>My}Y-3a&S9{Ktw=Nv`eIEJFelbN1pt; zN$dJrm6&&SEb6g=C@hsaj@wC>>!wppuUf5kt?8t5c_V9Nrw?^JWA08KwHad;Y`0js z-l{on*C<2AvD=yDX2WV{%H?IVvue4SnS7>Eb84^nT9C9`7eVW$w2AElgO9OcKOjbni24FQB~$k!KM%)kbU^hit|(06 zu4&qr5t> z|8$$oI)C_0ASya2!>Sl{po+GV4#Qi(Wkgb2P_J$nRr2wAhJNGhOBL!$+#L2TS*hS-ulBF$ z)QcsvZEcFL*Bk+?<)Ym(8&*Gnegq7>(KSoRZ#F#MYF13wBsgbCZCv7au|F_Moj*C` ze;%?I0x+jOs-Ji#$ z(h4ghDu}Y=FPz?w$f~Q%)uIZ9_|Au56!I@^NKKz@?7_R}y@b`@<@(bcK=o6PgY_GT zk&E;RMUS!^*Asxb+%J3z@v!)3>_F$MByqxjL8Hj3-}^8y#P^YpU02^Mo%4a?=SWdV z>KEt%3Ss?w%Am{%^)G=-;sw8hSXioQPUr&KRSNpvL}S?fe}&vn{~E#juOOzMTccq8BzXT<&=uSm literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_isarg.c b/libftx/printf/ft_isarg.c new file mode 100644 index 0000000..cf38e79 --- /dev/null +++ b/libftx/printf/ft_isarg.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isarg.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet l5TCvCUEH{_^QWRIMPLCH4=Cp(4N^<1)(DxVsG<@ms1ky3w$IKf=X1C_ zr{+%~QlV0m7s4Ble1r0WkU*#s674tO6I7ya;VlxC%*@@6v);N7Fw*YK{AOlncW!p? ztJ<}<3?YC?z$G}+7zKD>9m&;HtilX>uC4Aq+`V;p`_>_pzB!JD`?bdu|L8hSt3Rin zB<Li_1<{`tr;ktMzr~V0hd2!)stmkQoW5hcIb|CGdH{3~%E5~`3nBg~P7$L@ z;}F9=;^9&{HY~DP5>|flre)i2Tc+K%^1oP8c2XX7n{MI~yyPs&Q~ZCnkD+Qm@k;ZuY3?#0 zIn_%gdItzodxq>)nvl4EGYw#x1<6au)xKr(UAZaxFAz~2eLucQjQ@ZbG2NQ#-0CxJbzgR(D|vx`uSf%j9eCR zsI({Jc2p2$&d;3g_qh0iyezaol{k+1Wi+y^`khxVn_|#?zsTaZboZ(R_`TsJ`24Kj zL}6V0{*oZ~3Du8!f#Vt9L`>fkLeQ7__5Rg;=^Y!FpC4V$L;2~o*Yn>%%)B= '0') + return (1); + return (0); +} diff --git a/libftx/printf/ft_isdigit.o b/libftx/printf/ft_isdigit.o new file mode 100644 index 0000000000000000000000000000000000000000..f2a638ee14a3185c5789ab9bffeabb0c14f401a1 GIT binary patch literal 2176 zcmbtV&ubG=5T3W2jcL&>G_{{+QL!GnK^2XFOOuux~R?=_osMZ|&kX6Ad}%)FhQOUMHwR!eK? z>A6<-aOU|edh^;nnS+vTQqZyF0OU+cJUNf61!>H)3w&|qiXHzxHwj8~>o~l}f zlG90TG%VXGc|rkwFyP-R)6G%FTm|ge8n8~BO%9!k>|saFBTkEi9vp6}@mJEV;joPa zbaS{uFoio~?58?RiW-TFd9H>})s=yhF3K^cL1j6UXY zMc~uir_m=NT7I6c$51{ zuBoQC?hMEMbwMkdg;qJQ7YYrt4Vq(i9MFthFR5loMo5lpxJfD z)Ryn%rkjp#tbtdag-*~0|h z_b&1!`AdH<0IvP>9YdTjF-L-);f9zqfyafxHO2aK(vf&ySJkgW`4yc?*za1pwu7b;`DQBAdLM3>iO#yH%>I;1u@u2u!PSE}mPyG?O zywp!YU;vlyhtv)4w?KLJdHgkUJR+W7Kn@x~{X5`8CHh4D8^9&v1y0{_&{YpP_z2Iv z;^!K87*s#PK~ab5)32hxKK&2KtH*UzFL9kn(wCItN&NNSA?EKL@g8#U134%ZN8gCQ F{x7IWv}phU literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_printf.a b/libftx/printf/ft_printf.a new file mode 100644 index 0000000000000000000000000000000000000000..3c1080893ba1bc458003e756b984b0e0f680564f GIT binary patch literal 52442 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 literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_printf.c b/libftx/printf/ft_printf.c new file mode 100644 index 0000000..80cedbe --- /dev/null +++ b/libftx/printf/ft_printf.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_printf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet +# include + +size_t ft_strlen(const char *s); +char *ft_strchr(const char *s, int c); +int ft_isdigit(int c); +int ft_skipflag(const char *str); +int ft_isarg(int c); + +int ft_dprintptr(int fd, void *ptr); +int ft_dprintl_base(int fd, long long n, char *base); +int ft_dprintul_base(int fd, unsigned long long n, char *base); +int ft_dprintul(int fd, unsigned long long n); +int ft_dprintx(int fd, unsigned int n); +int ft_dprint_upperx(int fd, unsigned int n); +int ft_dprintflag(int fd, const char *flag, va_list va); +int ft_dprintarg(int fd, int c, va_list va); +int ft_dprintstrtab(int fd, char **tab); + +int ft_printf(const char *format, ...); + +int ft_vdprintf(int fd, const char *format, va_list va); + +int ft_putchar_fd(int fd, char c); +int ft_putstr_fd(int fd, char *str); + +#endif diff --git a/libftx/printf/ft_printf.o b/libftx/printf/ft_printf.o new file mode 100644 index 0000000000000000000000000000000000000000..efe5c4f4a624999acb9e25f02ab80ff1671a17ab GIT binary patch literal 3344 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 literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_putstr_fd.c b/libftx/printf/ft_putstr_fd.c new file mode 100644 index 0000000..c3c6f3c --- /dev/null +++ b/libftx/printf/ft_putstr_fd.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet ->%?Tej_kE@ zp=lB3A(I2`4e<|fL4q5ILl1y>{R439r2-@$!VQT^W@bH;tT*O>80q_F<~K7t^UZ#< z_Km`YXH`W3AqCFDz9uNZsu7X{aTT)Yxn}k6TD?K8zkSc@w|A}H_AaE~OQDDLl|)$m z!tM`+0jbtbVb>~O9Hei@61~45{q7usI~a@j&c#9h=iWC;e{Eoue@fq8PW(1Y30l14ZGcO{QUA#zFzZczU^-2 z-CC*Yck^4#n&(%?f&mezRsbIb7}i! zjdeZti+-rBXN<3Pbw$r2aKu>APdu+5`ApYVbk+DspL!M9ifUjIc}SFhj6e+j97b`{ zHQ38NX4d%XjDdl_9)$v313dTy(qQ@k`XM5j11P{YVl$z7g5Dw~y`}^1-Bgrc!$m}w zJdW!g4jGY*`4rob1tbGNc=!}EY!`f<_4`A(Jd>akA)KDG!uo^Esm^d$pZFL24C9jb zb=Iv2P7_5G%q4R1zaF3f73P9}z`FEL@HZI07V&?F^&E4mJzW1O#-rzogIRG(?e(Hv zDm9%Bm`%sEP2cJIV3r&8x`SiL9yE$0^C+U`RU2S>4c{@Jdtq(9<=f>=FkQD(FWQv~ zekaz)+})bzFyL$yt4+J^j13YiH0=2C7&GCFnV8+TOUSR*1Kw;@Y~Ln$(Ol%i{SWpj z#)j{uJnAZ6vhM|89vxKr&JY&9W8}I@8Fq}b7?^P!C z7~@|er~FH-3;TivnyoNN{b4S0*pHq|bS2pLx2P}OuP8>|M;YwxhXzvA*F<#E`7;cj z<^VcB^*DO|ImF0C`h;RYpKx4X0OpckIDHQ$#n15&QGH>OIN|5eD00~ErSK4j3{l_K zD1IyIeu;t8p;!{-`~rI@OzNM-_gC%-^$-7F?8OUSLM&PnLU5DwcS#9R)b}#lCgr~} zAwT_^Nd1!kMZ~lVL;4r;Hm*JDa=hfD`iVpzX#k(25bYh=56v zjI9Z2t;1i@X*e|-qi*L<4(T|2OFQ|KLjQj5?H`p1<#J||Hm<;7jvJ~SEzBP4sEwbvU66$Uvv?h9_Solil9_r*f0??IIpC(XL zGo&O_uu|^&K{r?NY`>mcciJ7d<>%%X%sF#z_StSYIse`QT8rj$Pzy?(Rd=oC*>$r5 zmS5{wjaJj?Sd~h{?yft5wYXq4UEd9CZ`JbLaxLgtYi-vLYH?pc06IY%(5nqDcrA?G z^*e6ecdEH?(%o=M0sOb!MMr~au9b~9KpEvxrS*hJ44hs7W~J3^I@les)3}|gTXzwQ$kZ<)W@Nj5tp%pv3LNwLYb&#zz^<%D zZg#s4CKYPQu2!+3)#Eieu!iUQ4hNh@sn)iePMnMNYhu{IE~CENB>g|g*SJPJ@5GWD zJTdnKz_nbt)ZYjbc`WG5d?4yV;BqY)I1$fp!TX7Wa~vQZeNSwSq0DeivE@C{)EEa_ zoF|mbUBU?&BksE#+!2mk%Ur69Vf#Pk;OpFh_D^*w@83j>DB_$r3`OV3OZ_k|BEHa6 z-^2XB;{LRLT!f#{MVu7lIPVwkAIE4cb3co)HJSc^16QO4#Q6nGf5V2|Ux6o-_|9~H z)B}XSz&8<-_k<8+c~bvQMoeTb^_OAs?+l4gJz0)lK}@@ON@?~1K4;S7{^DL}|0Ht! WZx9olkicI@eE$!)O@6eb9RDBHxJldq literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_strlen.c b/libftx/printf/ft_strlen.c new file mode 100644 index 0000000..bf3de9b --- /dev/null +++ b/libftx/printf/ft_strlen.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet jXnq&b6)@Z(#PS>D}p4YtnzrFpPLvMHI5XyT~X!3qvKO&C@7cyl) zig$1Q(7X5c;O@(LD1SDSF#~V+SLW@n4<7tE91hWCfXWf#(Feb=8FsETXPKqxC(f2; z*sKj;lrhY7&@yYU&6}l*#g~fb&uq-Sat0u0fgz}kIRI3JV4>u6yOtFKZhS0(i)sf=lXC13B!~uY3zN{SlP!hXB=#1T8v;B2klgwAsg5s zjVOjQK`@ceZzB|TXikKU6|ME7q+h9re$=XL@m?Hsqsr20tvD}0 zGpWW&FXWL^2RCZQZoAvzv0JaV{r(nD+?8dw6GTDchqv4?s5O&qce58nNplnlVHXqi zqc~_qyiq|T#KCP|MF3o;2Lb%IJ<&Pfv2?_u+_B1k?;%jrC=lbhAY4WfG3Z*Ul$ z4(oyvCyfSgI_<2r3kGo{W|>*}$vw-quUn?wvT}b|gGJdfpZ(0Tt z%zn$TaW`4uBgaqCl7oMS;~Y#lPJF^_!f`igJU0CpF#%gwlZ&X&D(k1UMNY0TiE}lJ zY;EGRmd6RoYz83t1)-l-c;zX8Cl#L7c~R(33#59fr+)qsJnf%E=51vvcmgH=h0xO* zr}!TTzNz`|3caK89}4}B#(ydFia^@Cx_`O8elBntyw-13{aUTZx4=pGb^=bl+v#w; zP{N2;6`URqeW3?YvpZ^4aH4L)oj2dPwh$+N{T4XX=T*Paz&D_EA}|ahE(qSPHhX@D zkJiDKcQ8}p*APGI5dMGp3YSp(N3Q6JX81u80`+@BPd9P0AEo=6n8<#W{Ir}1q*#4T zGJPlPi9iXuuY(4iBi|`O?#V!by6w;KSVreSRFKPNS z99O@2(Lb_IRKJ1}FL`3r*>2;O+m-(+EXI>e05$@u5 gEVBP4LHj4s^M8w+UOVzz75(!wDJT?2cSO(s5cK}+P5=M^ literal 0 HcmV?d00001 diff --git a/libftx/printf/ft_vdprintf.c b/libftx/printf/ft_vdprintf.c new file mode 100644 index 0000000..1f33105 --- /dev/null +++ b/libftx/printf/ft_vdprintf.c @@ -0,0 +1,54 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_vdprintf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet $HsBz&d=ysqlYD?ke$Gx-L_8FhUre2G-=knrg_rq3?TqXCgK8VGerRWC2izXozm zZ`2PrFvf^~V@O{cHGQeBHx&IwO~0}52iWt`tteGyWzNf`0Ni{VQh{@s_Wf05VqTjA52_$WqPUo@nv z%~`#58O(3!w=PKGGZcIl?t@o-cG)Qdvkd#0b6sDoUY2V5;=+5Zl0~NmsY}`s>Y+*~ zvav7JC3UNW$YDsKXkh79M|+jf-r&CA&P`)I2cQNYB{GM`dI+JzYgBc85Fu^bi4xi$ z3l$mk&t3#j-YY&s89jhb?#dOY2YH>1fGY|lz5EQ3W+GBwN1J~R7PucUe2^OWdMp$T$?KiQ8i24QXJw4Q*#O$R5H%p8@K z4I{Km{g&Q?W1gZu^*oi&(e@*lLsnttVrnh;CBS^-_KMeZ1OOTS8r;Cvn9B;_tw`bB zz-v>S&%p~5g{oC@jL{5Y@yKv02 zkLz1F$FiDD803fUg74+H7&pyz!-JpYI&0-13;!C&6CVG!xegtIk?_CC^^=?ne1Yq4 zaxUs`aQ$7*h5vD`U-00f&d)sfA6&oU!9_jSJb0Pwzj^REu8Vx4o?kfrr^o*tuK(k~ z#W`!^=SSrEocnco@b5S-&Y|%Cfa6il@k@2@`=|$RaD9k#vCdp20U5fjmawMEa1BgN z6|D-f{h{+7`=iZ3Ai_2edRuM30G-A{z? zJWt4eTmguFcowiHA@w?pjqMqNSw7^TIN#iz`3o8O9(Y>C5944!+dM{(O7Mq%tNM>( z69y{qJXk;WHE;df0K=Sv@VMzYzA3leAjo2T!Le_)iZ^&sSf86joZtt*C}g)^rPZWb z_i8z9ozkuHdq18~=@KOR2>w@ctM^eO#{l~uCs{U&{X{X2NQ3;-p zR^vNAm{-pkj*oYpcl@UTQx2`Nxl605xFrQ$vgg!fbk>3?Bdnnm#Oogi4%uM H$~*qQ3atb< literal 0 HcmV?d00001 diff --git a/libftx/printf/libftprintf.a b/libftx/printf/libftprintf.a new file mode 100644 index 0000000000000000000000000000000000000000..968fe3a2432cabafa799960d16ca6ec968bcc127 GIT binary patch literal 30760 zcmeHQZ)_aLbzf4F#Yj|0ISESFcD-&wn?x*%q$!bd6yqf2?6oY%N@}JI5P|`bRY;Q4FdQ>3g|;o7)e{G=pPV4>#|i)$sf`RDd4hgfDkQO&>%mshyW9X z5cU0L-rJp<+u_|(q%FyQz~0QhnKy6#?fcE!o!xu%VE1V6;L|(y`uWsooa(sw>-){E z&77lahv#|Ko>w;Oc{{)5dAn;oujaF!_eh23J=WrRdjikf_m`e`aL)6N{Eg>5f6?>4 zM)^7@>?Qswl6~d;K&G>AWOV3ECOh2O(>>Pj5o2hqZ|LMu22n|i;^R?tV7U7v&c;p+ zjY$04T4Er|6_u-#I@Dx`Za&?anm%GA`N@c6QeeqphkR8qV&Gc)AH-?bsX2=n~CSbENjSw5SZtEsbqD zXV;E5(#M`DFDs*A(^Td??L}w8^}M?KqIgP0Q{FDG()(4_Z~b3;ko)f-cWyDrWfy|0 z=~c)Fljjz_?8CF=6kmEYm`*SL1X95VlqHv53??a?&huZCxO(D>SYnkJWhRc+E0 zqk}xn

x%PR=I`3t7 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 literal 0 HcmV?d00001 diff --git a/server b/server new file mode 100755 index 0000000000000000000000000000000000000000..ae6b60a2ab7f661682233c4c78db3ee94cf07149 GIT binary patch literal 34360 zcmeHweRNdix$nDY&z=lP$Ry#z2q;0JLaiYnDpsTuWORt2R3SHh4k4L*)R5#RGc?+! zA|aM>#Nt`Hmc2b~>0Np+_gq`;S*@jdz$h$1>sh5;Jx7+cr)i7rq~&PZYD-&d?(g@0 z?AbG!6hFG|A7^F5?Du^>-sgGV=Y8JKy(e>bWc}4X%M#}DiPeJ8j`FZXsk;!T2PCL* zD@BP2iv^-u1c3456P6UFDreGmpCXtvsQGN9EVp0N_xr+t2#1-7dGel3jfG5EE_;P_ zR;5*r0!=E)70hyyq+y}!XVS-JDL#{W%SnB;iY{uyDx=d8t42 zqDxoQ^mW%Pm-U_rLl{%nT(?;S76vYU>EMg67yY*Dhjac=ap$?~{<@lW(+0{T4=?f? z_Y-eEq`lW`B^WCUFfX43Pu@cO)sx^$Cc&=*o@Mf{vwfDGy9}V9Epkl|AtL(7At( z4xS1|)6VE8goq9eCw$|_qk~6+hh??LFZnsp9-1FUj&M6^qa)+E7QITCOY_m= z68<4!F3CrSCHxX$F2zTml<@O}xg8tb2blVo{pY&W4{nd9ejXh>Iks`rx}(E;7llRi z=yTOFIXXN8dS|UcxwrO`|8Q$fX#Orp5Mu9vjaa}(ujD;3;{Z{t!n9|J7$0ffd$={r zO#2T>{(Ih#Nop+m+#8>WK6l!VS}#O@@NS~Ql~AN5)Z9aqkREh0H%b2RmO<}TFY z1;+-)y6x};edPbmeOVh=1pcm$rUp(&Q^~PtdH_beX-5Z-T8HSx%zf}(G!@B2k48oS zi)cDB61^fa78(pIC=*R@7>PbNYKIQ_gU^jv08dBLn@4Q_gS(#xw@cqW6U~akgTodC zj*R{@ES2=ZBh|MZZVk;}D}=Ns1shVyOmuJ{6AbO_HEIS&MD)24n08u(hHfSHXygPE zngr%dkW!_FDL7h0jGhEtJuM!E4i z8hMAJ(~);zTDE<)zsges??lt97B#Z9(<>Hjk?Bm84nA*vmjRXeKJL+!UvUj8ZkW#f z-sr#L76pzafvW_V-T;}3I~5#VOiTorQd#~AOIvu{@Q}jNshPWpk|s#k>bx;;@TlK4 zaqtZ*^Tl_^$LYdd^)z8Ju3!8Wj!8w}Jp{$G{#sax>q(KBgQ$Sx#|TD`DqS)^c%=Nc z!^S__ea{w?>(IW+Fj+)q;GOaDXG@Xu;5vZIY{D(|LiE{SR?#=XHu@K|PuBgddp+@L zVq^?ep|jAgW6{tPk<79eQ!hpT2(uXmyQY(LG;$h=7)6AE58)MhVjzw9JL z*glzj`AL~PJS>wv$7M1!f@FPa&zMYxP9uq?_6Wvk>fxYFzFjVpgH=d&4Tp9$!Oqa) zp&piByhmzU{P120eOYQ+{MeHc`nuG#_}j-NbdZ{0;YNsog4aKNkv{uM_!BGbA-OV z?Qm%R4j|Qdf$_@>U#ZO;HV_g+j50(aw2Y5_UFJ`+0HY*yNXQPbSHc5hnUA1p<)~5v zOd2C0f`76%L1!Fk=rK&+k%q(!QgSV@P19z0dgA!9 z;ppW**c~|<8srJ1YQl$M_tE}XF`!qSFq6j#gOz*`-mU7Q+`YY7eYNZF@TksqNl8R$QeMiZVKJiR#dc|Lfe zy7cCg(dOr)c3t`4^TAXFn2wE}rD@UhC$aWHpL-q&vyo%z0m?cSZLWCwcOw_zTJwRFe)3ur7SVvJ^qf*!J zQTLEm_XyQJ>Q(nhdh?@s>UJA-k4#jzJ3T;IyPOcTu^NBW@BA*bQA2pt;BM6t}FJ;xD*aLkRN zp{$$yv4>0(?IB0{pwcl!Ac|(4Qp#1ZeE{VFisvpnLWwSQ2q~;gU#=@7T}Pn(0ifhcbENY?l2 zoH_iU{#>(UrvGVtTrYOis?4QhiF88FHy?*?#WFZ>(hBYIPH22`=3UU#dI!hsdfBsn zQ)@RazB#QOnrDWt6@FFqt3ZL*X(d;Th$Y2%o?$Ejqnr`3e|&n8!Lt37kzRAK>&(v2 zdVQswk~gzqqjn6tj4PxzwQjxnb8*FQlfmJOK<7qX~2_Rw<2;`KGh81P`xkQ~Xp4FC&f=_xK?2S=^w<;Ozzt_5Ct zCo-mYNh48gySRAmrG;`SfzbeKCOFw;!5RvS#PZC$e?Z*w(Y9esZ@{_(tH;+t!0LQ3 zgVm#6yrQl1*9%iBBHMFrd2jrenx1yyM1Hm2%nm`a zYS*)B2d>e@w7bW4tb}J&Fi3x15jmafkt*Xg)h=VBFXTDEyWGvz5Bo#eztzTKs7xxq z!J~Y_#)?Z>*m6EN^;Rjp;Z*7+ob9AGpTcHPhW#7AM}Ig53$SxiUE7TZHIU`R@5R)b zH?r(l6@-=v3)`Qlc6LME-S6`JuI|6B-*e?J77J0=urBrQb(`0v-mcqJmwIP&bk9XU z0{X`FOa96;)XWpVMq5AkS35C(*^l*pd41}4>r-#6P5r8FeCAK1gNHFJ{3Q8n*dDy) zwz^yEZmYY!F6KRBl;@kUo2fjPbx&e}oVunwFy( z-P}ce#bV>SwI8ou)KV;Jmo2||#U+vi3J; z=`Vx68}yxCx^KXhe+u-|pmRU!*1s!Tz7%mOd--`DBte;M>3#*dyH`W-I)6zGkh-;_h&B2)qDJrvc>m1Ys+fy4MfXU4i;Tg7VaurSyxtDSGIUfS@oK- zsx@WhYs!Lh+}H#;!;oXf2#TA!raUm^fhiA6d0@%|Qy!S|z?nR-r6Md@YITaGtGrBF zs$uiJX+Ch_^~j>IO!-b6FY`U;xe656YRHREnt4@S7nUj4r@RdP?RUq!C2WV8sPAke z&1jfUxOpwsFrWVNYE%inm#!{8x8gNRCGH(dF?DSW%M?pfdG+hm?92GbpBG>G;kC~n zmZ`z_XxP}z{TVO34<#?7AFmb2`fSwv;~F;p#5PmX!f_amH*ZaLC6d+4YHKd8sl8}fQi97qx4gEdcEu8n7MiKKv#G1C zdV9RLucN!GdfDP&ih+pI57iG|BEFk9dXy88}9o81` z$iU|XtcHa^Ss`{R8(y!G&~^%gf=dWhd|pAfN)v%*ZpE_|#8zG!QOwEWLX`36!wBSiU- z(J3WXNExP!{1~KZBe?0f3Z6o~Sh}o)E}M&wD51lc^Ow+F42EC{oyAsABLQ*Q$0R@ACpyLtLuj z%WoI%NZgh8x`|~>T0aFa8z3aI*~8p36-PV5gbHb zg@mI+fZd_5k(YWSu!#~(py2Ik%Hr_+FxZ9o8a_VT3t0_sNJHpHcN`CCNOyJZ)%HJ0PEP6WI9@?cK#iq{ zV5{;mKxRe@ybE?GSo9U5`gya=5V0GOU;LBD*bs_8Qml*})5h)qm(NV?UZmA1(L=g9D`~5g@ojQ2}sR7mE;t*9v&Y>-Y;x)3*)$pQDkn3vZbdwOlHA$ z^4VUs55o*B}myX_hg|QQGPkzw>zg0GPfyU3aVV!=MXsAwIsa2e2AmplP8kAYgRT z!J#4Dt2m^ZuJ2c>rEC1+G7O9+7=H*kZ)$Zt9t}P(U^VayACsu-SH8_rr&l(rcAxdA z`!(dOE>pGJ=T+wgtcE{+Aay;guz1d+F6b9xk5+eFtK(GS^8!}G46wPi({tSx3PZfj zBdtQ#&O0ON$w* z#H0y11?PlvkgBI~h%td|RalG4W;k|P`B`(zDy&LGw66xp%0RfvF8g@N6(tv({Ry0* z*eirxwr&OyzAET-giq7g&4A(+Iba|ph%H)(GOJ5UO5o(#z$kez096#l`C8V^pq`Q% zk*i#x(UcSI^vbley8IOH6c!)IwYw zDJ#TL4htw>7a3m%v%Z!+>F=WJLkP(W{jB|F7*O`V|8^_vpFDMJNKe}pdD}Fo9QYyX zmaU9w4ATll*;as>zZLfR;i#&0hHjWutjCUmm5|*$%jz$z3VV9*U>(Ty;N*e}OMAbD zpSj&-Ek2O4iG^|pD{nBMuW)=VSlx+o3XK_ANB@@)k{bq2wsyMT7Odn4Z>y~QGe&gb z<~T#(dE45%@=(pLCoFNu;-ZU-BFnP=f~ge=P&hahR$sgqr~a|N-e$2h+1Jaz@Vd0K zbNjZ7mMxcg`CwqFdLXd0qpP_y*%BA{d!-#+HO&;zmuSJeh&AnagAvy>pE-QDD=nw8 z_z%wPK)rKey%Vf=0$*|bfoq*zItatpxs%7>;=fyJ6F~_SFLicsdwrCu5#=e zr>NeUR`1NON3km%-*=qi+Z-R*Mc|NATztqmH_+%TXmu9VJ1gp)m5^WW6b0Iqbf?}a zhOScJ?0V>HcS6XPNIRUspksf>3Ek${fn$)k%dwJeSTRh5$sJ z7=Y$E1gqdH_I<-Q8;$WGEIj7;Y13-hw8}RP_Dn+wzdY=n=v2CAdy7{OWt&5Pd!FS? zFAgqu>+OHWnU-{B1QL#K6_R$eXuUJH(J5NxoCRnu<3;+b46#uHXjYgD4tUA1X11rZO$_YF+^^{E#V8;y{%5MUD3#jI2M?Nee+(&U;HcDP#$>NsoLpW z(8^vnH{sMa+MRnHpFMLG8uKL?tM*Rxs0SV29@V2(`2uhTk4OCCX51$_<9$RJ+}0cS zgq1hq=t1)wfUQ$m9Q+h&t_FwPIP$;9abh}XGwYp7*>mThTejNmkE1SCt1zs*1h3XR zr3lDX94X*BJxmm-VIn{JcE}1g{v9f~^{#ktw;OzF^wYs-9vZ0r^LwWfCSs(s0!iuQ z4bp}S3fjPk>q#b>+nai0tu4A!(qmO&@MC8Kj|Gc^GjyxJA_a15?H7{^)Dhg-)Rq-! zPXBciEJYmFJ5}h)DjEaNI5QE=4CO|IA>!n_&RI9h5MG#|n}J5q$sV*>s$Yov#Gqk) zI{I2V+ByY&!bTJ_ZbPd#kcjvwS)63XC5CYXJ=$P=gz>T7@KTVBd7nUY1W6oB5oa! zBjiV5ZQ=G+;l<%s%^?U^^9X=Si;IKTV$?x&$tIo)U(64*+Fij$yE1{K-ma`iQUk~- zfwND-&zx`TF)Fk<)nM%e>&yg_dV6L)k{UoxNsVK3xKOOKIZA@{Q(&E)KvHkdu18V> zD3A3lu+9zawcCR`?W(UJN!V2hB#m~}F)j`~QqKnKIbdxKK5oxBh9qInNg!ziB&F_j z4N%qEYqx-P-Z3NzdtL%bBOqC=tgTg$IuBB}g7w^END}tB2_%hx@>ppACkm`8OifMc z+fn+wWA^PReO>}dBOqN`$5<)a>#H)xmYkvOI%8X#`r_HoUb6X+nnIdvgN9Pi_@p-)@~t<|QS8-ukug^-QA!)J_Q#RzK8-p)=v1h+HJHFr48#m@V1cF9JX@c3LL9O= z%rdwtUqq}ydhSZ1_(h1~416t?Nt=QRrwC<&96HpB)%PO08J1EQ1Yy%OusS=Dz1Fkg zkY%61Xm+opmq{Dg3%JO0YFM{Hxk|(2SRvOVBy#V8%3|??sUTRx)!Z|V{ge|x``O!{ zw&5>5*{zo`xTs(=au!vQmF&#+0`quk4FlN+a|3$Z_?U!^ySVc=ZC>+mOr0nbIaBaVp4uZHf=EQ53(iD zE?92+5ecCAp1R$*mk;gzV)9W2i!SuqoHdtu_`w?i1wzgmd<#uJXjEY$!($w9~5=BsAtf|vx?S4 zze=(NMHd!GTM4^cx%VhY@n=hl*6!YIO$o8RNwoFEx?5YZ>=LbRt{aCat)1PUjv;vQ zi8qPfcw4NmX?t8jvDo$|{J2XWozaG$Z>hWChPs<#H?F%m65Djs#z-s%+}31AXQHFa za8kEt3+jPL(bG-5O(c6dh{$fc-eV2p{fXWtPf5`g|8$IvCbr(0i1!gB)$DdmmbjdK zN)Ak_GEFbKb6`@ldx9)Lyl0{Afk<)JxNbhHMU538D5U@eK7CmRcS>`46h?G*E`Fvc^xnFSxBboUOXc#<#t)qp z(tDN&7sOWy{(boT%NBTIUf{CDoB~)Z9K_s7@bf0YpECiEbvBj|za7sflmg)s)5UOk zIEREcDkOd^55GX;Yb$d3F9Y5Z+4@o+udDE}#6_C!T(gtH^HI-PFTX5gdXuzK;x&^e>DK(_41^C$ zcD~6Tnw{5juYe_zK@yBAPc3evf#Oo%j8k|5Yh} zy5LW?@WPW?dGSrgLV6d;cB~TZdGg;Szi+yDvOFxyn|OXm%ip2#OO<#r8wSw-=5%g{ z#-Fe8J=I}}NoxGX8oy7sS2YI!Tvq^J?wJP_7QYp$`G;qOCCaqpdW|=S&hl?>fa4~O zH>a6j(}FrQ-W+(Cev~lsXDa!8Z^7_#*IZul#=TnBhMw zEIAKre*SHnN?(EXVRJ9eB$D{moMzDy$4(L(M?9oYY>PEx$AZ0CEY{K;YwPUZ+SD0q zNp$!2#hQ}+qPcrpPiH(4Z>gy*%pv#N*pT)%-5HB_C3^3~FN-#9i^p1$+qT__A|41E z_KrjjtKRnOoq7#c{$|%+gAG3S1MX&>8wK--7Wv#=YA0 z-K|wDcJ&Q)8zQmDb!+7zK~A%@h}hbjuB+Ry?kY5%ha!JK7AXA2ZY&bj5~6Ew5V334 zU%#eqeeC+Huf8#|DYmI@&H4zB9^}u?HuoiEfE3sv;`e96Veb#nqFSo8v&_j(^=q}c zjOqt&b8)7rvwKJpi?=i-L(($?s}AL!Ld%V59eGSSF^ov z-o+pO%@fzsiGBfeQv#<0iKawHbF8N$p0$c660V6VSWQ=if~|dh+E)1s!Y(7vMqEH2 zg1E3e1@N4CnKMzA$o54@-?ZT>9gCpo-YY~+-<{hy2-Ik6YWmtu4ks4z-X2lY)t!jf zv~?wGc+Ayu5q|Voq3YJGyNG9ElGfhT*Dh*W?(Bj*m7=PWqQ9D)1H?dsqncPi=XyF5 zqDFeQCV>MkQNt5P(7I)K)x_KN7}wr{vIbHm)L^Gdm^=hGZR==;)^5nctwt(P!r*98 zgE4m-hEf>7@XMhivaA(V@3e&i}_WQy*m5Kbj zODd=CdRlW)=Ob5yk12n|7Y2mClco_1C6v8k8q2vZ1>`NC@r5Ow>qcJH@}9lrmtPAK z{)Rf2&+;eyvz>WtUt^?R8fVv4jIgzuKkPcup}+k<%cDNcV&^X?xsB7ROi)z z4_S@=j4q$i<@vUV_o58%bvpq5Edf*BoFj#GMawm_vET5S^bXMZw+Rev&YSoxa$eQ) zKGA-S7Iz^-R#V=bOZDjTwVKiB&#(V3U4D(`+vg9<+&*2tU*lOGyPgUDdjL54g#MM6 zUKe5!C$IdI7cEv1apzaPyydHP`D$H$i_57p#-ApAD6hO(m+sIEvu5QAFy##Pf8>=n ze?Q}qMT!GEikvIo{(Yd*e&c`l9IjRsGy5e4skSnCru*^nmN(~hx9alqNc3F!`kw;L zTi%@O^)FL} +#include +#include +#include "../libftx/libftx.h" + +char *ft_tab_int_to_str(int *tab, size_t len) +{ + char *str; + size_t i; + + str = ft_calloc(len / (sizeof(char) * 8) + 1, sizeof(char)); + i = 0; + while (i < len) + { + str[i / (sizeof(char) * 8)] = str[i / (sizeof(char) * 8)] * 2 + tab[i]; + i++; + } + return (str); +} + +int ft_is_finished(int *tab, size_t len) +{ + size_t i; + unsigned long sum; + + if (len >= sizeof(char) * 8 && len % sizeof(char) * 8 == 0) + { + sum = 0; + i = len - sizeof(char) * 8; + while (i < len) + { + sum += tab[i]; + i++; + } + return (sum == 0); + } + return (0); +} + +void handler(int num) +{ + static int *tab = NULL; + static size_t len = 0; + char *str; + + tab = ft_realloc(tab, len, len + 1, sizeof(int)); + if (tab == NULL) + return ; + if (len == 0) + tab[0] = num; + else + tab[len] = num == tab[0]; + len++; + if (ft_is_finished(tab + 1, len - 1)) + { + str = ft_tab_int_to_str(tab + 1, len - 1); + ft_printf("%s\n", str); + str = NULL; + len = 0; + } +} + +int main(void) +{ + signal(SIGUSR1, handler); + signal(SIGUSR2, handler); + ft_printf("PID: %d\n", getpid()); + while (1) + ; +} diff --git a/server_src/main.o b/server_src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..adc7aeee9093806a853b09368d623821db473561 GIT binary patch literal 5656 zcmbtYZ){sv6~E8V_r-Bs+jY{?5@?;SQ7cV-ZbE?3rftS%>bfmV6GZ_nIF9`sTlJsF zf1*+r7v`FEc`_6S< zZ)_yQkzVdOzw`H=d*6N6`FixyXIz@bBx&p{+mR&7*zLVL{Fq?JSO_ey#G3EM8t;W; z&AH83v$hdinA?ag|3i;8R^|DOUSY@&0RVZzf1zvsu(Us^U80;b%YaWa$GMtXC1sa342Brk%rQGu| zJ^BbN9z9mW+gL+m?hy;Ta{s6n_|^SpbZfl}JXfMy7rX;uoU!jn$${k1LfF? zolEeIH-i&z$o^3K?s?H_3H3-K_dOqQ3MLfIKkQ1h{sF8HdJa~+?70iio(d19y-eGy z4f=bz?hk&b-@jK28H~A107J&u0o{M9=XB4pgXa!1rjIb)f1wuv*8#@doViGUp_ef} z@|b7@7@}QA!RKsGPY+|B{eal<80!u|6<#&VgK)O8LxI%)y34bYd2pu8lHB@LJtN|oDXb6)-imcG}p(RL@LfVHq){6LD z5GdjR7SW0^KoRX20~B!*OqlirN#jB~Dhh_hu<7$KP{fNE(U^wxVkQQhWmC0cwH8k0 zlf~)qtW~b$O2zQduzAuvdE#R=p&a_!Fi0cj$63WHgGr)NPDKjIT+vLiNHJ51WJ?9B z5=o`9$=a+{jf@OO3b|sgn#^Bi)#Mb*6{{?76dS;K|dKoNi-6-NfxJ*0x#g_gB#DQ>6w)A?xh6Wh> zMN|UeqO|nL1L3#B%@V+An)ZQz4-Oax9&M-fEK;kKBl+A^B%hxxoERDwyjZ}9y>O9S zF_o{SEhc&es{{cm)pXj*m|6R+>2AF{dPw6T@4xweBhH_Ub5EQbcevZQ$h#Z72QXKh z4;WcK2<$OnJkGt4%LkYqhkRKc0JcZe!Hovj@AAL|*NwLz;tj6VID4P> zdVj$W7=NQPIMI*LRLT;UoX(4tt5=s5AV6?k1hV zhoBAVth)`0as0dRzXB56g);Vgz(P>xBI(3C1NqbdKWT3G3|Yc?Fm2^|=oC1mPHe zk0ZXN*n>(?p#%O61($ihqu?^mk2>IYJK*;eT*m)n2mCJ`@OKnk*7G+7m+}8aIQ9p7 zE&K1L^;7#FRB##RAmJDXcdv|djBrfjd<%vh_IUk}_Mh$$KjVnw+>a$koRA~V^$zxp z4)*g79B)*zo<&C-tRLrx^s2+&S-+ek?q%`)7uJl)D;DCiXQ;xOktBY?7TJCp5qF*v zA9mmv=N!q0Xv99t8WDO@!R7nso38j`GJDVK0H)#Ip22_ zT-N`dg8zo(O&VoAizLH!QIPDFUPF$I_Nom6mH_e%;c>&X)?>m-r+y*NT$f^z*=kdhsWKS@}ueI*sgaiar0B!B$360-8#fuGre zo*+z}!y5Ui`J_L&GanR>^$$ycM(K}t3@6F?J4eYo?cS&SKXHP6b{}cI}PG_=3 zNczt@c*G@bJ1>b6gi-oQ2+w=KW~ki~Zf(fhJBZ-q{3ZM|VA}Q%Hzv@e_{$jf4_hkz zW&eHvm|7FM+@=@efudAIhTpe#`NwJF$~>4K?_p~Gn}F$;wo5R)1W$`*$e&&#Q9mlx Z{F{L7>K$N{l;|yTz(Ia{fMv3-{{Z$0so4Mk literal 0 HcmV?d00001