From 60eef6cebe320737d8e95b49fdd2d98c243ef49f Mon Sep 17 00:00:00 2001 From: HexPloR Date: Sun, 23 Jun 2024 23:59:58 +0200 Subject: [PATCH] ew --- Makefile | 29 +++ client | Bin 0 -> 18552 bytes includes/minitalk.h | 19 ++ lib/ft_printf/Makefile | 30 +++ lib/ft_printf/header/ft_printf.h | 31 +++ lib/ft_printf/libftprintf.a | Bin 0 -> 26990 bytes lib/ft_printf/source/ft_printf.c | 78 ++++++ lib/ft_printf/source/ft_printf.o | Bin 0 -> 6632 bytes lib/ft_printf/source/ft_put_unsigned_nbr_fd.c | 29 +++ lib/ft_printf/source/ft_put_unsigned_nbr_fd.o | Bin 0 -> 2736 bytes lib/ft_printf/source/ft_putchar_fd.c | 18 ++ lib/ft_printf/source/ft_putchar_fd.o | Bin 0 -> 2432 bytes lib/ft_printf/source/ft_puthex_lower_fd.c | 29 +++ lib/ft_printf/source/ft_puthex_lower_fd.o | Bin 0 -> 2952 bytes lib/ft_printf/source/ft_puthex_upper_fd.c | 29 +++ lib/ft_printf/source/ft_puthex_upper_fd.o | Bin 0 -> 2952 bytes lib/ft_printf/source/ft_putnbr_fd.c | 29 +++ lib/ft_printf/source/ft_putnbr_fd.o | Bin 0 -> 2744 bytes lib/ft_printf/source/ft_putptr_fd.c | 32 +++ lib/ft_printf/source/ft_putptr_fd.o | Bin 0 -> 2800 bytes lib/ft_printf/source/ft_putstr_fd.c | 33 +++ lib/ft_printf/source/ft_putstr_fd.o | Bin 0 -> 2904 bytes lib/libft/Makefile | 31 +++ lib/libft/ft_atoi.c | 106 ++++++++ lib/libft/ft_atoi.o | Bin 0 -> 1648 bytes lib/libft/ft_bzero.c | 29 +++ lib/libft/ft_bzero.o | Bin 0 -> 1144 bytes lib/libft/ft_calloc.c | 42 ++++ lib/libft/ft_calloc.o | Bin 0 -> 1376 bytes lib/libft/ft_isalnum.c | 20 ++ lib/libft/ft_isalnum.o | Bin 0 -> 1224 bytes lib/libft/ft_isalpha.c | 21 ++ lib/libft/ft_isalpha.o | Bin 0 -> 1032 bytes lib/libft/ft_isascii.c | 20 ++ lib/libft/ft_isascii.o | Bin 0 -> 1016 bytes lib/libft/ft_isdigit.c | 20 ++ lib/libft/ft_isdigit.o | Bin 0 -> 1016 bytes lib/libft/ft_isprint.c | 19 ++ lib/libft/ft_isprint.o | Bin 0 -> 1016 bytes lib/libft/ft_itoa.c | 104 ++++++++ lib/libft/ft_itoa.o | Bin 0 -> 2160 bytes lib/libft/ft_memchr.c | 29 +++ lib/libft/ft_memchr.o | Bin 0 -> 1120 bytes lib/libft/ft_memcmp.c | 37 +++ lib/libft/ft_memcmp.o | Bin 0 -> 1112 bytes lib/libft/ft_memcpy.c | 26 ++ lib/libft/ft_memcpy.o | Bin 0 -> 1048 bytes lib/libft/ft_memmove.c | 40 +++ lib/libft/ft_memmove.o | Bin 0 -> 1128 bytes lib/libft/ft_memset.c | 27 ++ lib/libft/ft_memset.o | Bin 0 -> 1040 bytes lib/libft/ft_putchar_fd.c | 18 ++ lib/libft/ft_putchar_fd.o | Bin 0 -> 1128 bytes lib/libft/ft_putendl_fd.c | 19 ++ lib/libft/ft_putendl_fd.o | Bin 0 -> 1208 bytes lib/libft/ft_putnbr_fd.c | 87 +++++++ lib/libft/ft_putnbr_fd.o | Bin 0 -> 1992 bytes lib/libft/ft_putstr_fd.c | 25 ++ lib/libft/ft_putstr_fd.o | Bin 0 -> 1176 bytes lib/libft/ft_split.c | 108 ++++++++ lib/libft/ft_split.o | Bin 0 -> 2568 bytes lib/libft/ft_strchr.c | 29 +++ lib/libft/ft_strchr.o | Bin 0 -> 1080 bytes lib/libft/ft_strdup.c | 41 ++++ lib/libft/ft_strdup.o | Bin 0 -> 1304 bytes lib/libft/ft_striteri.c | 26 ++ lib/libft/ft_striteri.o | Bin 0 -> 1040 bytes lib/libft/ft_strjoin.c | 28 +++ lib/libft/ft_strjoin.o | Bin 0 -> 1544 bytes lib/libft/ft_strlcat.c | 40 +++ lib/libft/ft_strlcat.o | Bin 0 -> 1376 bytes lib/libft/ft_strlcpy.c | 43 ++++ lib/libft/ft_strlcpy.o | Bin 0 -> 1168 bytes lib/libft/ft_strlen.c | 22 ++ lib/libft/ft_strlen.o | Bin 0 -> 1016 bytes lib/libft/ft_strmapi.c | 31 +++ lib/libft/ft_strmapi.o | Bin 0 -> 1320 bytes lib/libft/ft_strncmp.c | 28 +++ lib/libft/ft_strncmp.o | Bin 0 -> 1160 bytes lib/libft/ft_strnstr.c | 46 ++++ lib/libft/ft_strnstr.o | Bin 0 -> 1328 bytes lib/libft/ft_strrchr.c | 34 +++ lib/libft/ft_strrchr.o | Bin 0 -> 1144 bytes lib/libft/ft_strtrim.c | 27 ++ lib/libft/ft_strtrim.o | Bin 0 -> 1480 bytes lib/libft/ft_substr.c | 47 ++++ lib/libft/ft_substr.o | Bin 0 -> 1728 bytes lib/libft/ft_tolower.c | 20 ++ lib/libft/ft_tolower.o | Bin 0 -> 1016 bytes lib/libft/ft_toupper.c | 20 ++ lib/libft/ft_toupper.o | Bin 0 -> 1016 bytes lib/libft/libft.a | Bin 0 -> 46486 bytes lib/libft/libft.h | 89 +++++++ src/client/client.c | 52 ++++ src/server/server.c | 127 ++++++++++ tester/bigTest.txt | 1 + tester/minitalk_tester.sh | 231 ++++++++++++++++++ tester/preview.png | Bin 0 -> 510624 bytes 98 files changed, 2196 insertions(+) create mode 100644 Makefile create mode 100755 client create mode 100644 includes/minitalk.h create mode 100755 lib/ft_printf/Makefile create mode 100755 lib/ft_printf/header/ft_printf.h create mode 100644 lib/ft_printf/libftprintf.a create mode 100755 lib/ft_printf/source/ft_printf.c create mode 100644 lib/ft_printf/source/ft_printf.o create mode 100755 lib/ft_printf/source/ft_put_unsigned_nbr_fd.c create mode 100644 lib/ft_printf/source/ft_put_unsigned_nbr_fd.o create mode 100755 lib/ft_printf/source/ft_putchar_fd.c create mode 100644 lib/ft_printf/source/ft_putchar_fd.o create mode 100755 lib/ft_printf/source/ft_puthex_lower_fd.c create mode 100644 lib/ft_printf/source/ft_puthex_lower_fd.o create mode 100755 lib/ft_printf/source/ft_puthex_upper_fd.c create mode 100644 lib/ft_printf/source/ft_puthex_upper_fd.o create mode 100755 lib/ft_printf/source/ft_putnbr_fd.c create mode 100644 lib/ft_printf/source/ft_putnbr_fd.o create mode 100755 lib/ft_printf/source/ft_putptr_fd.c create mode 100644 lib/ft_printf/source/ft_putptr_fd.o create mode 100755 lib/ft_printf/source/ft_putstr_fd.c create mode 100644 lib/ft_printf/source/ft_putstr_fd.o create mode 100755 lib/libft/Makefile create mode 100755 lib/libft/ft_atoi.c create mode 100644 lib/libft/ft_atoi.o create mode 100755 lib/libft/ft_bzero.c create mode 100644 lib/libft/ft_bzero.o create mode 100755 lib/libft/ft_calloc.c create mode 100644 lib/libft/ft_calloc.o create mode 100755 lib/libft/ft_isalnum.c create mode 100644 lib/libft/ft_isalnum.o create mode 100755 lib/libft/ft_isalpha.c create mode 100644 lib/libft/ft_isalpha.o create mode 100755 lib/libft/ft_isascii.c create mode 100644 lib/libft/ft_isascii.o create mode 100755 lib/libft/ft_isdigit.c create mode 100644 lib/libft/ft_isdigit.o create mode 100755 lib/libft/ft_isprint.c create mode 100644 lib/libft/ft_isprint.o create mode 100755 lib/libft/ft_itoa.c create mode 100644 lib/libft/ft_itoa.o create mode 100755 lib/libft/ft_memchr.c create mode 100644 lib/libft/ft_memchr.o create mode 100755 lib/libft/ft_memcmp.c create mode 100644 lib/libft/ft_memcmp.o create mode 100755 lib/libft/ft_memcpy.c create mode 100644 lib/libft/ft_memcpy.o create mode 100755 lib/libft/ft_memmove.c create mode 100644 lib/libft/ft_memmove.o create mode 100755 lib/libft/ft_memset.c create mode 100644 lib/libft/ft_memset.o create mode 100755 lib/libft/ft_putchar_fd.c create mode 100644 lib/libft/ft_putchar_fd.o create mode 100755 lib/libft/ft_putendl_fd.c create mode 100644 lib/libft/ft_putendl_fd.o create mode 100755 lib/libft/ft_putnbr_fd.c create mode 100644 lib/libft/ft_putnbr_fd.o create mode 100755 lib/libft/ft_putstr_fd.c create mode 100644 lib/libft/ft_putstr_fd.o create mode 100755 lib/libft/ft_split.c create mode 100644 lib/libft/ft_split.o create mode 100755 lib/libft/ft_strchr.c create mode 100644 lib/libft/ft_strchr.o create mode 100755 lib/libft/ft_strdup.c create mode 100644 lib/libft/ft_strdup.o create mode 100755 lib/libft/ft_striteri.c create mode 100644 lib/libft/ft_striteri.o create mode 100755 lib/libft/ft_strjoin.c create mode 100644 lib/libft/ft_strjoin.o create mode 100755 lib/libft/ft_strlcat.c create mode 100644 lib/libft/ft_strlcat.o create mode 100755 lib/libft/ft_strlcpy.c create mode 100644 lib/libft/ft_strlcpy.o create mode 100755 lib/libft/ft_strlen.c create mode 100644 lib/libft/ft_strlen.o create mode 100755 lib/libft/ft_strmapi.c create mode 100644 lib/libft/ft_strmapi.o create mode 100755 lib/libft/ft_strncmp.c create mode 100644 lib/libft/ft_strncmp.o create mode 100755 lib/libft/ft_strnstr.c create mode 100644 lib/libft/ft_strnstr.o create mode 100755 lib/libft/ft_strrchr.c create mode 100644 lib/libft/ft_strrchr.o create mode 100755 lib/libft/ft_strtrim.c create mode 100644 lib/libft/ft_strtrim.o create mode 100755 lib/libft/ft_substr.c create mode 100644 lib/libft/ft_substr.o create mode 100755 lib/libft/ft_tolower.c create mode 100644 lib/libft/ft_tolower.o create mode 100755 lib/libft/ft_toupper.c create mode 100644 lib/libft/ft_toupper.o create mode 100644 lib/libft/libft.a create mode 100755 lib/libft/libft.h create mode 100644 src/client/client.c create mode 100644 src/server/server.c create mode 100644 tester/bigTest.txt create mode 100755 tester/minitalk_tester.sh create mode 100644 tester/preview.png diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3123fa8 --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +CLIENT = client +SERVER = server + +SOURCE_CLIENT = src/client/client.c +SOURCE_SERVER = src/server/server.c + +LIBFT = lib/libft/libft.a +FT_PRINTF = lib/ft_printf/libftprintf.a + +$(CLIENT): $(SOURCE_CLIENT) + cc -Iincludes -Wall -Werror -Wextra -g -o client $(SOURCE_CLIENT) $(LIBFT) + +$(SERVER): $(SOURCE_SERVER) + cc -Iincludes -Wall -Werror -Wextra -g -o server $(SOURCE_SERVER) $(FT_PRINTF) $(LIBFT) + +all : $(CLIENT) $(SERVER) + +clean : + @rm client + @rm server + +fclean : + @rm client + @rm server + +re : fclean + make all + +.PHONY: all re fclean clean diff --git a/client b/client new file mode 100755 index 0000000000000000000000000000000000000000..466914a2c5a996ba16c84441bc915acd49b11e2a GIT binary patch literal 18552 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/03/26 23:04:05 by yantoine #+# #+# */ +/* Updated: 2024/04/16 05:50:54 by yantoine ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef MINITALK_H +# define MINITALK_H +# include +# include +# include "../lib/ft_printf/header/ft_printf.h" +# include "../lib/libft/libft.h" +#endif diff --git a/lib/ft_printf/Makefile b/lib/ft_printf/Makefile new file mode 100755 index 0000000..17a88e6 --- /dev/null +++ b/lib/ft_printf/Makefile @@ -0,0 +1,30 @@ +NAME = libftprintf.a +CC = cc +CFLAGS = -Wall -Wextra -Werror -c -I$(HEADER_DIR) -g3 +RM = rm -f +AR = ar rcs +SOURCES = ft_printf.c ft_putchar_fd.c ft_putnbr_fd.c ft_putptr_fd.c ft_put_unsigned_nbr_fd.c ft_puthex_upper_fd.c ft_puthex_lower_fd.c ft_putstr_fd.c +SOURCES_DIR = source/ +HEADER = ft_printf.h +HEADER_DIR = header/ +OBJECTS = $(addprefix $(SOURCES_DIR), $(SOURCES:.c=.o)) + +all: $(NAME) + +$(NAME): $(OBJECTS) + $(AR) $(NAME) $(OBJECTS) + +$(OBJECTS): $(SOURCES_DIR)%.o :$(SOURCES_DIR)%.c + $(CC) $(CFLAGS) $< -o $@ + +clean: + $(RM) $(OBJECTS) + +fclean: clean + $(RM) $(NAME) + +re: fclean + @make all + +.PHONY: all clean fclean re + diff --git a/lib/ft_printf/header/ft_printf.h b/lib/ft_printf/header/ft_printf.h new file mode 100755 index 0000000..19ef898 --- /dev/null +++ b/lib/ft_printf/header/ft_printf.h @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_printf.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: yantoine +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/22 10:18:58 by yantoine #+# #+# */ +/* Updated: 2023/12/26 16:09:17 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_PRINTF_H +# define FT_PRINTF_H + +# include +# include +# include +# include +# include + +int pf_puthex_lower_fd(unsigned int n, int fd); +int pf_puthex_upper_fd(unsigned int n, int fd); +int ft_printf(const char *format, ...); +int pf_putchar_fd(char c, int fd); +int pf_putstr_fd(char *s, int fd); +int pf_putnbr_fd(long int n, int fd); +int pf_put_unsigned_nbr_fd(unsigned int n, int fd); +int pf_putptr_fd(unsigned long long n, int fd); + +#endif diff --git a/lib/ft_printf/libftprintf.a b/lib/ft_printf/libftprintf.a new file mode 100644 index 0000000000000000000000000000000000000000..4cd38f07523d47f8ccc6a394a217eb03964e002b GIT binary patch literal 26990 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 literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_printf.c b/lib/ft_printf/source/ft_printf.c new file mode 100755 index 0000000..f4a7052 --- /dev/null +++ b/lib/ft_printf/source/ft_printf.c @@ -0,0 +1,78 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_printf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/29 19:11:52 by hexplor #+# #+# */ +/* Updated: 2023/12/26 16:06:47 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "../header/ft_printf.h" + +static int ft_ptr_format(va_list parameters_info) +{ + unsigned long long ptr_check; + int count; + + count = 0; + ptr_check = va_arg(parameters_info, unsigned long long); + if (ptr_check == 0) + count += pf_putstr_fd("(nil)", 1); + else + { + count += pf_putstr_fd("0x", 1); + count += pf_putptr_fd(ptr_check, 1); + } + return (count); +} + +static int ft_format_c(char s, va_list parameters_info) +{ + int count; + + count = 0; + if (s == 'c') + count += pf_putchar_fd(va_arg(parameters_info, int), 1); + else if (s == 'i' || s == 'd') + count += pf_putnbr_fd(va_arg(parameters_info, long), 1); + else if (s == 'u') + count += pf_put_unsigned_nbr_fd(va_arg(parameters_info, \ + unsigned int), 1); + else if (s == 's') + count += pf_putstr_fd(va_arg(parameters_info, char *), 1); + else if (s == 'x') + count += pf_puthex_lower_fd(va_arg(parameters_info, long), 1); + else if (s == 'X') + count += pf_puthex_upper_fd(va_arg(parameters_info, long), 1); + else if (s == 'p') + count += ft_ptr_format(parameters_info); + else if (s == '%') + count += pf_putchar_fd('%', 1); + return (count); +} + +int ft_printf(const char *s, ...) +{ + va_list parameters_info; + unsigned int index; + int count; + + index = 0; + count = 0; + va_start(parameters_info, s); + while (s[index]) + { + if (s[index] == '%') + { + index++; + count += ft_format_c(s[index], parameters_info); + } + else if (s[index] != '%' && s[index]) + count += pf_putchar_fd(s[index], 1); + index++; + } + va_end(parameters_info); + return (count); +} diff --git a/lib/ft_printf/source/ft_printf.o b/lib/ft_printf/source/ft_printf.o new file mode 100644 index 0000000000000000000000000000000000000000..728bfbcbb6e55fe568ebe438131f718cb113c3f4 GIT binary patch literal 6632 zcmb_ge{2)i9e?M`U7XnQIfS33UBW0$veixk0RoL!(C~VAWMh=90fvlYpA)N&?b&CV zA~C{(DXz(sXhlPtiqO_-{82ReN49DzDS}EwohGrV>-Ymrtm>ph${(3FP1#m0`+ncO zXJ4L^Y0~zh^Y?u}-yfgvd-vYmyPOLg`ieu62yYVEN6H#U3AwSZ-0z{?9#RjUeR|<`+;D@;Z7J zZud|z)kVdXb}GhOs0b|H4?Mz2yB~OnLLU!2*2l-2s8RRoYj#LOdV&1P+IrZ_}V{LkIHVbAs@UReg zIHy-eUuY9CVA)*8rg05u)7{QlkUS4|ON?_Tp!#Cqp?>}Yy!j{Z#k9r)gs+F|;M#L( z@lpV0Cbw`uFpsg?bYN+0F{0%ML4k@F^g`fqkrV>6V~Z`?t4~t2_i?drR*&4(<^A5V zyUs#AI6a)(z-)T)8&19OKnIInz%CR3MHC4uc#+jRUkJ?4{l>vL)fdjjJP&UmYm z@dhy7Sb^~OxC!YTXO|7}DiXeFC%jthds85s;DlEz2`7LMuF4^vDlv{|`E+@RqsVxf zGB#4QceL1dc{yW#1QyWT6UUs2s-?G7OIpjXrK!#?%!Z&N2k2UCE;+!~#b@dJ zSXITC03&n%@uwJ=hb?yR3q;G) zoB2N0hpnP|KY;qGX1#cJK@7psjD664@?J|ao@gcQBSfl~ws{&9+2h@?*;6mAQ3-MQ z0bHZ@Y?M8FUC+6iHyv#F(k7T$g*X^=uz`@O&Sk2y5sFbOBMGT~n#i7gE|-fCr$#We z<{2t#*MqP)2ys~oA#O=RpSmqz+zm0F21)i{uvQ0o4mMy(U7&h3AgssSF4sQL$q!(2 zRDlE<=s_a?3f&}G&d%5OrE0J-lr_>TU2}QoTc?stsCPM z0$Hs#ESFL?vXtkjW8->o1OnW)L~8t=l_Wv6E$CU!F@qjfS)OHOd03Q{!~1=Ej(VD- z8uKYt&U!G_AR`4-skQ|fpvj%JJ6PAzkg7lgyP9qiVUVhsaPy)m?W3X#s`x| zw29^^!6_JaERlLS6wVC7WrRt_7z|~@rwvOBg-(Y@+mq;Q7b5DPkRrp`t z8+^uMlg=C=(uh~u?5=j=IRp<8cwxicMD}~U7ad=&Q)R^gF4Wddt%Ts#DBFi*Zl~J{ zOt|bzcE>$5lXoCz6~Rp@Nzy+(btr%q&&-mwUPxOmo1r%|kvKi<>)1~Fbg8vjOAHoE zB$106mM2%rcO2Fkq|2I7xHbMEd^$iso`NnGOlojgw8>qP;;eQ2)UhF_IC4sjA-_DK)XHw?son5Ikze=}*qptJngf@h0^k$spemnm_RHH$5J7oc z5QHCu;`S>wGm0EjTC=G zVOLZ_y$?IzmfL6K!{FU+g6IdaqBl&A;)ape^a}%WgP}(KR6Z0_YE^lsW2?kx`1mhj zhNl%zPL&goc&!N{D6b8I@Poi1c-5~es@e~kF^RJqbGy|ORv#wTqPzx~hcK%{g%!%z z%L=jqj8){%OQNY7a0mQ(*h28p9?tW#r=Yf^YZ7!0}C$A=WV9rM;taj4?O?8 z1()zMY+U~kaL%hTJI`~I`E3yJUo-sk0v=ew=(_f0{#i(Jt5%u zJi<08;4;&*0=|yvqXN$7>ym(XF#UA_zrge+%5Hsv*w=H9fb;cpO2GO3%`+U++VePE zo?5TFPS%J&Y7FGys5vl@F-{YI#z=(yrZHj?ePV$50gVeIX1RU5IU<`#~cw8pwSSXz{fg%)(G6fH)C1uDM z3BeiJ5TIN-ZHJNrHhYMlW<$$hJfve@@gUDXEc{S}86F`1>?^}mW>V3x8AiCn-@zvL ze-MpuW7w-;S(Z3ENbh6ofg1&tpc`WLXD#~n;14wXjI}rM-HXp|`?}!1qx74N5Wc@K z4qtuzS&U!t*xG;``L|Q8{Bw!%)|4UIipBHwi}Bb*{$>D#5~<%T Ol0m!50#INsk^kQsmG*f6 literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_put_unsigned_nbr_fd.c b/lib/ft_printf/source/ft_put_unsigned_nbr_fd.c new file mode 100755 index 0000000..c808b54 --- /dev/null +++ b/lib/ft_printf/source/ft_put_unsigned_nbr_fd.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_put_unsigned_nbr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/02 23:56:02 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:23:28 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "../header/ft_printf.h" + +int pf_put_unsigned_nbr_fd(unsigned int n, int fd) +{ + int count; + + count = 0; + if (n >= 10) + { + count += pf_put_unsigned_nbr_fd(n / 10, fd); + count += pf_put_unsigned_nbr_fd(n % 10, fd); + } + else + { + count += pf_putchar_fd(n + '0', fd); + } + return (count); +} diff --git a/lib/ft_printf/source/ft_put_unsigned_nbr_fd.o b/lib/ft_printf/source/ft_put_unsigned_nbr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..fc0ce8346afb0f07fd3f27defad6d5e0f97de890 GIT binary patch literal 2736 zcmb_eU1%d!6h1SPnRc6Qnr+4XMFMr*hh-*7leUT0-HMytuB-}TMUW-TOeSeCnJLLk zZN;K&K?sZBg0O;bKKsyDQDk9-E{L$~izo=92nxO|6kM=S&zZTmom><2!3%fJ{l0U~ zJtz0xbI7}uYnNq70zM?T0EdXP0NdK(dNEusLK-cXmwLZ0ZT*q%ZSM7gM>~~W(rs<- zjZNHm7FRbbd!LV?%s=?^VQ=SV@aQ+vE0x_|Ww%fFUBB-4E>EtuXb0@D(T|9{aRgf8VbqXL+?1So) zprkG&lSz!Zfir;Z;tlqLjf z_(_CfBmv7-;QB$vZkcW)v*vWVP0!8bXN;VY*Yo8d)E1!Y1s&VT*8S>g;8z2;+ibW_ zt?F8xYQ1LIkX`ZGPIkj|eXr>{*-M@sv>n&)W}B|xG4&v5*7U+mIbSLja=KY4mGok< zP}Z&5TwTxQopNz@&Z!rRv-<4Z{LJipQRiFf`E09cg@HS`R~=UCgHiz0feSpb48eL0 zY!81N{Kwx2kI~8Cklua;r1i9PdVFN`L%fkQ$kC(`p7L|4^!xJjM>Y8^v;eq`d;;e2 zD@oE{siP$5B5_L5!2t|Cx$wr199*oDlGM?$?*moSUQnmC74@vPpq~Fs9bZt7ypBYp zpOBF_^@e%|jiwhuqZ{fNddb>?tYIFQ#qjYdsuJ*Ue~^W8_}2Q=3VW%2BmxCSL@LAz z{PQ($qGmF-e|V# zaxxOY`KK6uJjRD*#PF#YPy1YE_z5QIHV!Tt*XM`uWybTk+YDb3_-`0q7Wf|+wgvu2 zhCPAbVR%j8zhyYXB;_8@{}SWH-=&R!QFE-IQ8g{A$%SZJK!wPWZJLqP58^|#HBdPy|8+)| zm;>ccM=It&jU1WeaK^_6%tiEAF8ORDQZ{;RAQ&i#x3#n_&4)7$Z4iYa(pPIV)H z9*)!SG4n4SFwuhleolvf0yv1tZT9~7J=6J7&*A=@w~!NaqHXT8_@5An4bk>G>IU84 zy#ev57mM*{Aq~s?;^)-LId_$Wkq?1Ve+FI6XX94XktS< literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_putchar_fd.c b/lib/ft_printf/source/ft_putchar_fd.c new file mode 100755 index 0000000..f7aaf34 --- /dev/null +++ b/lib/ft_printf/source/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/23 14:08:31 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:23:41 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "../header/ft_printf.h" + +int pf_putchar_fd(char c, int fd) +{ + write(fd, &c, 1); + return (1); +} diff --git a/lib/ft_printf/source/ft_putchar_fd.o b/lib/ft_printf/source/ft_putchar_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..9533831d7a9398d1e7e401327af7780c75757c77 GIT binary patch literal 2432 zcmb_dPj3@f5TEthPKse`l8Ta2Ay*VQRJ)F2C)k97tCC_Q)JjO}p+pF&+WAt>v{9m zHy18_lTs8Aq`+C&l>`cKE3h|^}Mn1GGE`^-dq@Nh1+*-Y&Y(P!v_@P z1sVQDr^d#U{MEX?4hX&V+4 zJ6_)|uA6S)bzQr7-m}8K?FNHl*A0AA55sO-FVECU)oOWKH_O$kUa6F8daFI>=+h;; zR+*i%ol0d^pPf53GkdC{i%@#0*z2~Ud_Klt%}d$*%3(l}9;H^Z24^ds7byUJ%`A|v6^2(oU1xxi1bd?`s%~s2|SHbY@o@oU3S^$RS_370Ki$UPCI`-(gjt7S81-5bF+eLj4 znASBgdcDi#!7sygzZ=+loO<}48L&G|$2a@7^akZ=H!yEtw!j#y_ldtB`WeF{ z=SM{Shll5P0Whb&C5hfUVPYPIuFeNB-vXCs{6kbE=Tz7&aZ!gEAUnE8`c@DLoN~)G zk-kqG(n8F3cGW5;2pex#XisC`4WXt;hZ=vU#3?sxV|Oe!qYNJdEn!j|_@? zrvA}4MEDE5gP2?sLeSv+(Z4nUOtP(o_^AB9jmS^mRyqH7h^d!`G$yxj?a<%sFY;0S bL_&@wfM4+-_l|TwG5ClCB=Vy-Cg*<(ORC`q literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_puthex_lower_fd.c b/lib/ft_printf/source/ft_puthex_lower_fd.c new file mode 100755 index 0000000..674c37d --- /dev/null +++ b/lib/ft_printf/source/ft_puthex_lower_fd.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_puthex_lower_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/02 15:23:28 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:24:01 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "../header/ft_printf.h" + +int pf_puthex_lower_fd(unsigned int n, int fd) +{ + int i; + char *hex; + + i = 0; + hex = "0123456789abcdef"; + if (n >= 16) + { + i += pf_puthex_lower_fd(n / 16, fd); + i += pf_puthex_lower_fd(n % 16, fd); + } + else + i += pf_putchar_fd(hex[n], fd); + return (i); +} diff --git a/lib/ft_printf/source/ft_puthex_lower_fd.o b/lib/ft_printf/source/ft_puthex_lower_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..ac2e8318875c5d43dbe6e562c86d9ed1facb5b8c GIT binary patch literal 2952 zcmbuBU5Fc16vxlZWM<>0n@x75AFh@_)q*mU&Bt~VUE25&yVa^7tQ4ihNix}lCNt|~ zX3dJL(ulC#2U|qMm!j{!`639FQbpecL0a_17jXqagncL&SkIZccXu+Is^Ec{bN|14 z?%dCFlefxepArQDxCw9)_7tZ8i(`A`l2>0Hh#Zm- zUL+;N-@vydULl97@2j4#2u8#!j;9h#H9eKQL{9cz5zmc9l=nDNa09BY>A0y{TQ`?e ztA^ceS!ODe)n>Jfnkl+oZ4SDYYuAi)!>O#ePSfaB+SY4^U1`*{8l;<6$4IZ~ren2C zBmJaRb32CVbki-(s_?HDIL??jDeX39i{~Et^I?MY2(c7T_46*3@nIj}yF`RtQaa z{RI$u31Q~ISoAXP)4j;(A*1bp$Kr{1#U~~daSbB?K0p+K9KHoX_$xj^j(_1U_9O)AUnijX`T`*lbdH{$~5YIu;be^ci;ji=}UNrdCtFPn)a8B^PhYPDduUe!TFXL53fUX479pYb(br8wQ3uy zpxH)S*BqngfL60Qbo20tu4A)mzeUSzSfH7fV`!(JTT;7@Ub_HVyS>_}==D0@e9J@O zZM@AGFq)Nyt#^!3H;{iR(OrYr;pkk~a3qdi1+BZ*@w{!-bw?+h(K2kN|IdAf&4YQs zzh<*T$M>0YTGyb_{YNZ#Myb9;FEpNazS^IwlUNbV6CT%N@D&Cq$7!GW&2X4;I-k^k zmTB&;u|kpq=K1)8o|l86-!buW5MntT>)qg?7?KaMzz;)p;r1HVkDC822Aiw_&7amd zJpW_JC}b9&pj~I}ehxw`^ZvP~`(#x6PgqhN|Cjcs0^baVej7~6Kn3rYqpsh6B^=J% z7kD7^eEuApSQxc_C3YbBIidB#KUMqIuZk=@CPceQ@sTI?Ug6mDST(Bub0hkvUoSp> vKCb7HNoRK~bZ_IcYb&fhUl$rbS-Af%kntEVfW1CuNqviHYDd3Q;r{;y)M-jl literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_puthex_upper_fd.c b/lib/ft_printf/source/ft_puthex_upper_fd.c new file mode 100755 index 0000000..d6a6d05 --- /dev/null +++ b/lib/ft_printf/source/ft_puthex_upper_fd.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_puthex_upper_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/02 15:27:12 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:24:21 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "../header/ft_printf.h" + +int pf_puthex_upper_fd(unsigned int n, int fd) +{ + int i; + char *hex; + + i = 0; + hex = "0123456789ABCDEF"; + if (n >= 16) + { + i += pf_puthex_upper_fd(n / 16, fd); + i += pf_puthex_upper_fd(n % 16, fd); + } + else + i += pf_putchar_fd(hex[n], fd); + return (i); +} diff --git a/lib/ft_printf/source/ft_puthex_upper_fd.o b/lib/ft_printf/source/ft_puthex_upper_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..8de626306fee18761b632d0a90ee9db32d87d7fc GIT binary patch literal 2952 zcmbuBU5Fc16vxlZWM<=TH=Es+ez;l!RSU{YKDV3b(xxA2w^|j1m74J!j_L-N|gKf(K^K{r~Q{ zb3e~b-YQ%;D+&T|6W}=PDoz2G#&*kjx0r`%j9gyo|FYEkJ=R|z^qqU(6t<{t>2o)N zO8vrSZ+#G*x}u`mSRdT_Bedb%+oXD_u+=YYA?y7*HOzjSqox~$&5h>4~F<&d;7WguTlkGIV|xAe0%B@}nR{j!#TX04P&H0q{OPA$$PB?gH&|%fZ*12t*D^ z2rrQmB5&YZ60eg()$>%>Qv^feb=y@@rfRO5zDiDZUm@3xg_QR=Qg8!Gj%howazi&) zVylMLskh8nGNmQ7q?*h*ZfzPmEypSw@v2>HJ9f?J7M*t6u!_}+R)%=3)imO3x@ouS zrV&5WDmzWXv^(*-XY&xOp>1s3nRyjA zA~nB|QTeCTWV}%?xt&`0ttzyu!R`S$nBbV5`if~(VkD~-r~{4>$~E1B|2V-1X@$^) z*Ixvo8x`jEjfJn_K0S<#9x~bvI2nn)E1sTI#5Ifn_yAD|()bnx;jhRfIoe))1aHv* zMy{HB1|HbiYAGVfq46JO#gW5zWJP&Ko>OY_Bg&$DWKj+;%JM}7E5krUu>WQGuyVtV zxFU}u5S2wy!BOBC{>g4&WeEP<9u*_)p1`4MiJjjeh(hwtR}dq|1sY)zOzxrAkVN-T zfOTXuzVWzwfb0N^rFlxMOm2adDbuL;!M115-iKfIak`>-JSM(t`L=RbK8V$9QA{qxN;9$bg;7-$uvj8uGvP{2Cdv`(#^voI=02Cy%u$|+5*jN*@kxR`DL|Z>*dR!H5#kUqF$-s&9^cX z-oV?80i#x|T6)tMbpv^q65Ta;9gfa*4M$?@CD1x+P1jqkif-$KlUkC^^#8ffu(>}E z_}46U==eT!PV4G7y8npz&nVUB>4nDg&Qp7HbqXu|dBWqm48F<$8s%Va@6tKw}aul zeU=9@&*#sviG@+?muCl(pA%X?{8P1O{YuD!V?wl(6d$=__Z5u2gjJ*Zzc`|Q`t{=D v=i_<-nRH>hh3;*9cC5|X^L3%|lLh<#0vV5S1K8_hmehBdrgro@73}|SG6_kb literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_putnbr_fd.c b/lib/ft_printf/source/ft_putnbr_fd.c new file mode 100755 index 0000000..6a51f3e --- /dev/null +++ b/lib/ft_printf/source/ft_putnbr_fd.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/01 23:41:52 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:24:42 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../header/ft_printf.h" + +int pf_putnbr_fd(long int n, int fd) +{ + int count; + + count = 0; + if (n < 0) + { + n = -n; + count += pf_putchar_fd('-', fd); + } + if ((n / 10) > 0) + count += pf_putnbr_fd(n / 10, fd); + pf_putchar_fd((n % 10) + 48, fd); + return (count + 1); +} diff --git a/lib/ft_printf/source/ft_putnbr_fd.o b/lib/ft_printf/source/ft_putnbr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..da777c294c4a50b6b4961a421da7d364c35d6dc2 GIT binary patch literal 2744 zcmb_d-D@LN6u&c*JN-yENn6paRa^06AC{RUP1;S?vRl!(vmYpkm3>*lB$>2flbMpt zlvXSX0ohoT?wcZ%f}*~O?1S!$mUU$peDP1{i|B(76&8#iP|umUx1C(G>Vp^VJ@@xJ z=iGDVew=xuaOnkEk_c}SIYW*RX9@XIJ(@50(*=?M%SEH}gVFvuVRSaS9q-0RSwp=)#s-A(V_*BUTCp@mY|?-cfp%|iF)FhJvdX-Y zI~{!{dSc@I_}K}_h!UAm=f??&WP2cek|?n=(P$L1TZbNjPRO9YRU`gf9Cm<^If+1e z6_FITVN~SnYXR~CJO1X43fo?XS?2Xxo+A^)2mjqRdej=^o*X; z(^@+3`PvL=IbO4DC97_6#dGaavskU@Ws+QW8dh@Mv|XoWTgm60ve&R|x0S5fZqw8} zuU64AGx>Bbmq}@6CYRH)*-Tz5RpzQ%DsAPnvvXE8o1N8W=T6Pcp2})`DJ`9>*Ghi4 zCahH@E7haG1Q=qIx&sO0v|1r$2R?%Q$8W*!ClB}|Y~O1y6KO3WO^yrW&5WIGhB>fRPh5`=_x)f{@A;K>CXF7CvbV^*JgTp_1R8=q2 z0d<*DwMwVdi*!Vtr$gI5HKbmk@ofs@gt|m0K|X$$j)3|y9R*?>727m%flldEo~OfV znfKFdejQLojoJ~g$#(4j}`Lw8~iqC5`C;UfEx?N z-C;IaCh=Whsrd6CXjel#M(6xih!5NIGJ{1yVKyjuhR6qRFHnvJf^hz6h93;^{?lRj z;Si7O%rpELlXw`1M-TIp_u=!5=W#z~_?*Ch!SJHM-(t8d@ZU1*2>cC(R|Wni!_!P+ z?&17TGhY0z0hQ<#tK=;e%~GjptrERy)lJ>C)?A{Ood(tgZqag^OdWXC?5aa_+i@-Z z+>47^%QeeaiC(X-Hi~AY0u^bg$Gi@;h7s0svD!2nR&RX>ibZ+Z#4;tmMjfKNW{K#n z^#;oSseJ9kmL82+byuk4kwrt-%=d-@IB_{1|tndpdFqk zlrp~^XA)zJIiYF~2WYPZ;&2pgGoTSUG|n;--+8!+wmK;L<-f(q9CN_@aZAPgp8yU` zQqaTgbLRJ5n1nfx&n3R&e*Uks%YWiu{LhBg44Zx!emo%skISi6;J+f8f69m)H)N83 zKd1d4JqICqm)$>p&bWVAW4J%(OTdXa;WB$H{znKxO|-oNx_;-k*C#&KUNQblz$upw m91w3pKWts*&-VrM$0o-A3^;D%8?fOTdz8BjqaVI8G5%j!%sdJJ literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_putptr_fd.c b/lib/ft_printf/source/ft_putptr_fd.c new file mode 100755 index 0000000..09139bb --- /dev/null +++ b/lib/ft_printf/source/ft_putptr_fd.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putptr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/02 15:14:08 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:25:02 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "../header/ft_printf.h" + +int pf_putptr_fd(unsigned long long n, int fd) +{ + int len; + + len = 0; + if (n >= 16) + { + len += pf_putptr_fd(n / 16, fd); + len += pf_putptr_fd(n % 16, fd); + } + else + { + if (n < 10) + len += pf_putchar_fd(n + '0', fd); + else + len += pf_putchar_fd(n + 'a' - 10, fd); + } + return (len); +} diff --git a/lib/ft_printf/source/ft_putptr_fd.o b/lib/ft_printf/source/ft_putptr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..d3b93cdd25124dea4e2e77c5029c8aea644cd5f1 GIT binary patch literal 2800 zcmb`J&2Jk;6u@V9y=&KQZ8t$QAwbP%4rteQ?4(YJ+Mp8Zh6*G^Pz9>Y+TOJ->|M*= zjS{2?R7*%9QbliExd1l~2$fz?5lC=E;=o@3Z6zd()Pp6E!h5qb$$Dy34m@dR=KbEA zdCxO%Mt*Po(o3==5iSxrOO7;72^nff<25>5BWdv5EbskV9{ipz@9mEE{ChvF57Ag2 z?2gi@t9cym?~cmf{t?;t@7+O@vOe5fA5uEFof@ZiUuJXTslnrP?)s=axRnF1)HkEh z^t+E8S6zrTswC5==8`9+Dflt60dPuNn^BT0iRTmZ zvlpk&%|d!Akr}!;O-Q6Trm9a9C3!ZHNWkJd@I^2RiO~%^PRC;NDFB&6RHQdhlada! zihO-L(ELF20u5~u`FfXXY1D{Hn+WZqF|t|p9na6y+NRUUY+1d2%XKpO1tVwV_589= ztp(C|{a($=+FqsWdtI+rvFk>SWSefs%I=ts=e8Ux`=VR(JC@`1vn|K#nY!<{>Uv>e zIbSLja=KY4mGokOSYcNTg%18CCe@r7xl%ZGYgAniaK9P&u81MDh=0zwQSP0 zj{*}Q#35}L5~hvs^ji(bs%Ow(*Gb!gANt>Z7wpADxE~B9Fgy_&plJr;d1a^3Q@JYdT5hCmtJ>6r6ho~eaRg2$N zW4@|sm(^2RQ=Qc|)YBVkd{vDiXp93Hz_GW~C^*l;a1NZG+)xv%YV4{Sv4Oow*%KS; zJi|)OR^ys-`m!o(tFi_;LWYy&W55ye=fNbaa#VR^W`))57z9NjQ4vvHA@|qzhhRxh z@ZJSB6^cvG02uB#3f>ru^7la?=MjR4yd7Z5H5haMYyZO02PF=lLPtTvGe;iW)__kj zAI_g;`okekFB{Vz32|I!mFf6Qq2LJ}mI#cWLkJ@BaUH%t7X*HT>6-%oiRm?g z|IBn(;8^b{TS0di_a@UbtjFBL`L8f8<{#CFQMamoqheO8J!^{?J*#aRp0(`}qvm$- zCE*@@ugA>6jFw}&#Bf~CGA_KbsrNmz_6{-H?X6D5tk>ZUYmB+K;dNrbYF6x?*|El7 zl;C-(HBEfj#9M1XbkD33qrcO^{(q9sV4ZM%@nsiS0rGR>T)esXZXx6K%Kg^ZfY$@( z;vGwYAza7YugT!s44@yLCp>vnW>}B0#hlRe8?(R8dfth?1u%#VeODO7`yUq3*8tl!wp8|$1IrzeIgU$OT3}MXU^B(Wh}uxPKrOn z3Yy2k`1tmU@m~d|Tsm-}dmp|-$+7u-UvNH(nCln7xDRz;&FAb=-eNk=!zIP|{{T6v BOd0?H literal 0 HcmV?d00001 diff --git a/lib/ft_printf/source/ft_putstr_fd.c b/lib/ft_printf/source/ft_putstr_fd.c new file mode 100755 index 0000000..12f4fb9 --- /dev/null +++ b/lib/ft_printf/source/ft_putstr_fd.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/23 14:24:20 by hexplor #+# #+# */ +/* Updated: 2023/12/26 15:25:19 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../header/ft_printf.h" + +int pf_putstr_fd(char *s, int fd) +{ + unsigned int i; + int count; + + if (!s) + { + pf_putstr_fd("(null)", fd); + return (6); + } + i = 0; + count = 0; + while (*(s + i)) + { + count += pf_putchar_fd(*(s + i), fd); + i++; + } + return (count); +} diff --git a/lib/ft_printf/source/ft_putstr_fd.o b/lib/ft_printf/source/ft_putstr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..2924de9a5eb8eb40136b99ff45d8041754811ff8 GIT binary patch literal 2904 zcmbVO&2Jl35TD)k+ccy9wnDp(V<&ZrX@kJjMWvuhK}aZy*7iEKu-C!f zjao!RMF8PgKnn+YLY&~pfde3+0xFc=;Dq=CQYn>s2sb1mnVH@9;?2fFh>_l#_xsJv z`^E~4o|PpDgh+4(dPuMUlLNi+f;(J*G4x!_x9{dR?#J`(^_{kJKfkfQ1F?6G zqDKeO_abPU2EXKXRaEybx?@glktN^B?R1{szM2g~?Cq01Vlx!RX<|43a-EgjRy()V z$!%}^AhmPb_ilH)-41cPo!oAIqw5P z3zJIpbmWQ1@k8e)&K?3#7|5JDKLHR*?}O|ZDA6;KNCZHQ0Xe|O*h1I_onHM7~OHmrDZMxWM`T5{fTttn_VoMzEXlafJbUZ+*L6Kg+1k&YE>G1GC_!@qoBgj!Bp^U;)(b0G1r$?p_L3z1 z9UUP>-xZtWWeXsXF88w!?tNV)Cb5B`ZKkR(vnjR06g8{fWufm_*kKWeji}EtIm?cy zpRuDjoXWCeSvH(ygKx2ry29l5+0YV`)hv_LC*?t09vA-?xq-G2{Mqg2qV%rZKC{9v z>^>5K;$5g9jXWl%k0>y5fZar9^Z*O6j@-C!KW^@kdzkyuF%>>0b%Kwnv}pBRtZkBt zkEbU{@br+73}N%i(S;z&k$AT@JR0}niQpgO_(2~p<|Jy$$J0Dnj_GA1q5bb&0USS0 zBubE<_h@&YG|%T8p9}C`bG#VfZ*p7=@IP|=T7dtJW6D2?IPX^;gf`cL|CZxx0sa=p zajxmC{_~#ZeDJ*C0nkfk!C6^03WcV*271%18Mh!P(4}5^Q*^8)J +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/13 15:57:24 by hexplor #+# #+# */ +/* Updated: 2023/11/27 22:23:38 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int ft_isspace(char c) +{ + if (c == '\t' || c == '\n' || c == '\v' \ + || c == '\f' || c == '\r' || c == ' ') + return (1); + return (0); +} + +static int ft_fsign(char c) +{ + if (c == '-') + return (-1); + return (1); +} + +int ft_atoi(const char *text) +{ + long sign; + long number; + + number = 0; + sign = 1; + while (ft_isspace(*text) == 1) + text++; + if (*text == '-' || *text == '+') + { + sign = ft_fsign(*text); + text++; + } + while (ft_isdigit(*text) == 1) + { + number *= 10; + number += *text - '0'; + text++; + } + return (sign * number); +} +/* +#include +#include +int main(void) +{ + + char *texte1 = "12"; + char *texte2 = "+12"; + char *texte3 = "-12"; + + char *texte4 = " \t\n\v\f\r12"; + char *texte5 = " \t\n\v\f\r+12"; + char *texte6 = " \t\n\v\f\r-12"; + + char *texte7 = "--12"; + char *texte8 = "++12"; + char *texte9 = "abcd7"; + + char *texte10 = "12abs"; + char *texte11 = ""; + char *texte12 = "0"; + char *texte13 = "-2147483649"; + char *texte14 = "2147483649"; + + if (ft_atoi(texte1) != 12) + printf("1: NON\n"); + if(ft_atoi(texte2) != 12) + printf("2: NON\n"); + if(ft_atoi(texte3) != -12) + printf("3: NON\n"); + if(ft_atoi(texte4) != 12) + printf("4: NON\n"); + if(ft_atoi(texte5) != 12) + printf("5: NON\n"); + if(ft_atoi(texte6) != -12) + printf("6: NON\n"); + if(ft_atoi(texte7) != 0) + printf("7: NON\n"); + if(ft_atoi(texte8) != 0) + printf("8: NON\n"); + if(ft_atoi(texte9) != 0) + printf("9: NON\n"); + if(ft_atoi(texte10) != 12) + printf("10: NON\n"); + if(ft_atoi(texte11) != 0) + printf("11: NON\n"); + if(ft_atoi(texte12) != 0) + printf("12: NON\n"); + if(ft_atoi(texte13) != -2147483649L) + printf("13: NON\n"); + if(ft_atoi(texte14) != 2147483649L) + printf("14: NON\n"); + write(1, "\n", 1); + return (0); +}*/ diff --git a/lib/libft/ft_atoi.o b/lib/libft/ft_atoi.o new file mode 100644 index 0000000000000000000000000000000000000000..7636f667a796af34e1aa3135fcbc7a20b2ae37a0 GIT binary patch literal 1648 zcmbtU&1(}u6rW9Mzigc<3ZkNW6OpW~dT2o;MOODvRK(t_b(?O|HD4vWEme^U*-A?h zJo+bi^XkPaROsD{;He187CgjTpoRE*yED^e$<1GwdGGz+*Swh|tLD`0jHWROjooC2 zmSh=gWe@dyq~_TmBB!m5Usm&vZf(45TRUb*F31+uur|#$-x?1;LT|P;zII%YR`ZKy zZJ6!7ADvDojzU0=2O}yA_GP|yUfJW}PtxBZtwkBC1X$IG^r(?RWZ4V{5gy70;V9Cx zumz_|e2P!eviJvhn_u;r?IOPrP_<~j{Ca!c+~-^7ezQHmgGtb_G021K$~ek{i^>?{ z!5L)?^I%vRI$s-tv11<4747xKI(D{c9?WdheJ1QjYg|q3orJBE_7b8f*-WX4kClkeHsynYC=B7B7PT= z5S=AfSr&X66Ch3`_-Hn8r?BW-mc|=F^g#Av9nf_Hy5Ok;`6Ti}k^HW(pQLy>M>f;T zjD}OO4c}SunNg@$t4_^lMSs@y=G~GTsYTB%)tFJM`;Kwv?sU%c?LwJiY`^X@qf%L} z&f4?yc;%9)<}Az>8+O%+3weunAyO&cC@{nG8@@dU`K(Iv|KXuT;;%pzEDN%!m{<|d zs93sN;z%Zu7shHTA^le5PQHVz(J%U+7Q_G~y$!y?5hPE)J*qJp(`x@L`qEE033(hT zFTpAGWZds=WS7{7F}Fx(OCl8cD@hW%JinyxLFqQXF6OsHAk9yAEc503li;#bojSxT hEQJM;F9f4}LVBzh;L>NOxF>>qPX<7FN3hcU{{adr{44+f literal 0 HcmV?d00001 diff --git a/lib/libft/ft_bzero.c b/lib/libft/ft_bzero.c new file mode 100755 index 0000000..a02eb4c --- /dev/null +++ b/lib/libft/ft_bzero.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_bzero.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: yantoine +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/07 10:47:55 by yantoine #+# #+# */ +/* Updated: 2023/11/09 15:02:31 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include +#include +#include "libft.h" + +void ft_bzero(void *s, size_t n) +{ + if (n <= 0) + return ; + ft_memset(s, 0, n); +} + +/*int main() +{ + void mess[10] = "oui"; + + ft_bzero() + return (0); +}*/ diff --git a/lib/libft/ft_bzero.o b/lib/libft/ft_bzero.o new file mode 100644 index 0000000000000000000000000000000000000000..585bb4185d1ffeb63e9874c16a0ca5fb3b1ab432 GIT binary patch literal 1144 zcmb_aUrQT75T8p@{}fvfQ4kcGH-+M2ECqd$h%_E3r3m*Z@e(&lY3?pu_CgEjI7AA~q_*^SGYzV!z?e||HwvpdYihofA=FhIe8U3l^o3vjQI z*@(`4>Es$QC6_}WSNc3P8dbsQ9dk262NF3gV8jNmAUDeYkbQp@^lFAN$kBg zuM+#OrfQf#{y$(NpMpQbN#P_Up3!fRSj(mJxzQFB(Y_^hdx z<{QT+*=Sh?W>M3;)lMjW4mnEQ#G@mW&YDi5Ew3Hxb&b +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/14 15:24:33 by hexplor #+# #+# */ +/* Updated: 2023/11/30 08:53:17 by yantoine ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_calloc(size_t n, size_t size) +{ + char *tab; + size_t sizemax; + + sizemax = n * size; + if (size && sizemax / size < n) + return (NULL); + if (n == 0 || size == 0) + { + tab = malloc(1); + return (tab); + } + tab = malloc(n * size); + if (!tab) + return (NULL); + ft_bzero(tab, n * size); + return (tab); +} +/*#include +int main() +{ + void *p; + + p = ft_calloc(SIZE_MAX, SIZE_MAX); + free(p); + return (0); +}*/ diff --git a/lib/libft/ft_calloc.o b/lib/libft/ft_calloc.o new file mode 100644 index 0000000000000000000000000000000000000000..5add899033bb1f49696e9fc8eef8eabe121703ca GIT binary patch literal 1376 zcmb`H&ubG=5Xavp{h_rrK@`M_1Uz`^BdeDdMN)M2fyF~1HzjVi+f>{iVY6FeVNqBu zgkJie^y1xvirBxP$6SOhc!(!+5aLXBUb3#+n*(oW-eOdf}${K3cJsy zJ4qSq7p8G-9M;$ZDC?s4T|_^sq8AQCFNno~HV~yFEfziPL_}fCO7Cuh9{7p+t#>Sb zf#$9@C`C(1ziLBlb{gO&3J0LRkc3e9ei_1#I86+TLB~F{>4P7hK16T;_beTS@iZNU zeW?4Z^|eF^r2(n~Qd1*nI26(6>hn*m-V7W+s2G;+v?{x%*LmqW74kJ|mbGg)^sOy;{4FXqcN*KCZkx>3Ez32q z*vLfOV7%jdzTO1?+D89>YzNxlIkVQJLv}NX>~Cid^2pGqtwtO9eq=8DPO%o>%|Ax> z7nC>;9+CXSt`c7ak3Fiimu`Uuy(Iy8!ju1i8^9$?OVvD>qg_u}o5r2ASf%>a2}uGu zzr^<-$UDEFhVq +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/07 10:17:01 by yantoine #+# #+# */ +/* Updated: 2023/11/08 08:05:51 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "libft.h" + +int ft_isalnum(int c) +{ + if (ft_isalpha(c) == 1 || ft_isdigit(c) == 1) + return (1); + else + return (0); +} diff --git a/lib/libft/ft_isalnum.o b/lib/libft/ft_isalnum.o new file mode 100644 index 0000000000000000000000000000000000000000..e53392f208fd03acd4163649381c56cd176ae9ba GIT binary patch literal 1224 zcmbu8%}X0W6u{pm@uNlSwpb{%hrRV64n{961&L@h1@RyRyp%8|YYgsgLNY6{5DY{M z!Ha)}NB@LUh5jW43%z*DArRl&yotlIw?3GCZ+`D%-hAwNes?=%S)j#&b$Fg>3Q$Nr z+quZh!Ap!R7W#h*y?=JUGq~yu9>~)hSPK`g(J;Z~9D?8ZA=UmnGq&*ySNUO~cW-~Y zgW_QrsL&~UGN?MIZnIUZ2TpcXtcdJ#_H!6{*I<#7P^|C!V6|=Q{oKs#H5UDVj0VY9 z`fR+if220&r&C)PK_FQU5NF_Vl;ll=v1tx)P`@#Fv=*`uhm9jHZxJN%1rE%hrZF6i z#WDC)0;i75t};^~nyx2>a@z_-x$gUJpx{WAYOPAGT4PgsLFj`B>dF;6d&T9JlI0T+ zo_Fe(WTk?KUFACNap|ZjeRo_U$`fS}E!9-=5cQc)I;tnHV&IX!O*)p3lW&&Ed$SaaFQ zzqW*2Gc)wooEUaIc5j^DFy97+>-3!1v>5O&0=3kJdcSm(p iT^tkn$@#i3$|s5U?<3POQ2>7)SYNZIJbEYb^`8K~&wAVd literal 0 HcmV?d00001 diff --git a/lib/libft/ft_isalpha.c b/lib/libft/ft_isalpha.c new file mode 100755 index 0000000..b7095b0 --- /dev/null +++ b/lib/libft/ft_isalpha.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalpha.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: yantoine +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/07 10:02:38 by yantoine #+# #+# */ +/* Updated: 2023/11/08 08:06:13 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "libft.h" + +int ft_isalpha(int c) +{ + if ((c >= 65 && c <= 90) \ + || (c >= 97 && c <= 122)) + return (1); + else + return (0); +} diff --git a/lib/libft/ft_isalpha.o b/lib/libft/ft_isalpha.o new file mode 100644 index 0000000000000000000000000000000000000000..42a78f5bdedbe640945ba9d1ee8b6e57e2774de2 GIT binary patch literal 1032 zcmbu7&r1S96vy9cX@#XkL{Nvlb#lnM)S=MAl8_F8mmqY~^#|<_(N#={f}oJ1`b(n! zp+o&6K^?nw5b8ahv2F6!!0h|J&wJlDtFvdx^tMmaKrRh7;3tz5;Kc*uJsgK|?98M( zubtD+i__0U_+|nNs1CxnGkwLwH?w`!4&Q}PJtw;~=snoi_=M|Z_wWfaM-AI;=y{Xd zCB13X>J`V!Ry|&l>L +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/07 10:17:41 by yantoine #+# #+# */ +/* Updated: 2023/11/08 08:06:30 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "libft.h" + +int ft_isascii(int c) +{ + if (c >= 0 && c <= 127) + return (1); + else + return (0); +} diff --git a/lib/libft/ft_isascii.o b/lib/libft/ft_isascii.o new file mode 100644 index 0000000000000000000000000000000000000000..11cdcbfa601bcb81fb18440964f1b72b2ed789ea GIT binary patch literal 1016 zcmb_aK}!Nr5S~@j0!xXApbp+Tgb%GtUc?B?gG2-##nyE-$z5Z26$`{52&ACSo%$Kw zJMy}+_nz7`z zNQh)SnQD!@J0!Hc|reWwNCT7#o#ouC5ibqGe~1Fk@XwfYEZryzgA!`rgn^zghtBhBO7Eq!tquH36lPy82CZ-?Bo^z2Gx@cvUN zYy`OJ!d +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/07 10:06:07 by yantoine #+# #+# */ +/* Updated: 2023/11/08 08:06:49 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "libft.h" + +int ft_isdigit(int c) +{ + if ((c >= 48 && c <= 57)) + return (1); + else + return (0); +} diff --git a/lib/libft/ft_isdigit.o b/lib/libft/ft_isdigit.o new file mode 100644 index 0000000000000000000000000000000000000000..9473b5faa9dc877f2ae8dc509d87f549741921d6 GIT binary patch literal 1016 zcmb_aK}!Nb6n?9w1(p&KfgSeNAsnow$o(odFiS-q!kE2fN5b?On&ddcU3OG_g+jSw^NwC=8g^apnr)}ivi0N^ zOR!`-nd-RRZ6U{4nE+^)$DsA1S}Yuzf5c_ikrzXRtKD6S-um_ygEk5#^vpSjYyiH- zvzmVJ{h_1CEGs;nOP5OFm~t_0_BgOg%d$+HLyeajPPI{QAZNF@$qo(+afcg~GhoeT z*D4v+DqcVxSletG%segC+JW?e~1FE;h(Y2k$h*<(^H<`?TA{8 zphuUHHQf`n#XYJaK85fnR1$MX)*Bw4_9u*CpK?|Dq!vo<)ut!@^QpH(?pb +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/09 12:37:20 by yantoine #+# #+# */ +/* Updated: 2023/11/30 09:02:47 by yantoine ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "libft.h" + +int ft_isprint(int c) +{ + if (c >= 32 && c <= 126) + return (1); + return (0); +} diff --git a/lib/libft/ft_isprint.o b/lib/libft/ft_isprint.o new file mode 100644 index 0000000000000000000000000000000000000000..fa1d564d8dba2d838081049e5c6413d69a770bc9 GIT binary patch literal 1016 zcmb_aK}!Nb6n?9w1(qTafgSeNAsnJT zS)3(eiBxBz?ud4b)hU2-aSTc?tVDx>#YY^wfxK8ECcV2W;akt%vfsppDLwa_L)Hgh z<9VVNJb!3$_=tn2bE&dZIA&ao>pc!NUTWBFt6_3rm6l=XA~9QBX9tIcn9a4y8L(!v zYm~HV6)&I;%+i}0(@#q^OEYxG09FBJbBk+b#B)R7KSTj%c<0PHlJBg$G{^H#6j6)i zclBjtP4`4{m=cK*MB$IScw5$+E}r%$jG|7tv-QbYIC6Jydg^b_yd84S(vy@(;Qpsl zDELTpU{Y?hE;->_z(s!Iw~+JZ$1Q|wTt7kgPXzhg=PzP|`|QH=E{!J=g-^UQ&7u9j E0fTu}hyVZp literal 0 HcmV?d00001 diff --git a/lib/libft/ft_itoa.c b/lib/libft/ft_itoa.c new file mode 100755 index 0000000..e325b44 --- /dev/null +++ b/lib/libft/ft_itoa.c @@ -0,0 +1,104 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hexplor +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/22 15:16:11 by hexplor #+# #+# */ +/* Updated: 2023/11/30 07:44:52 by yantoine ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int ft_n_digit(int n) +{ + long index; + + if (n == 0) + return (1); + index = 0; + while (n != 0) + { + n /= 10; + index++; + } + return (index); +} + +static int ft_pow(int n) +{ + long index; + + index = 1; + while (n != 0) + { + index *= 10; + n--; + } + return (index / 10); +} + +static void ft_set_number(char *tab) +{ + long index; + + index = 0; + while (index != 11) + { + tab[index] = index + '0'; + index++; + } + tab[index] = '\0'; +} + +static void ft_set_digit(long nbr_digit, long index, char *nbr, long n) +{ + char digit[15]; + long pow; + + if (n == 0) + { + *nbr = '0'; + *(nbr + 1) = 0; + return ; + } + ft_set_number(digit); + pow = ft_pow(nbr_digit); + while (nbr_digit != 0) + { + *(nbr + index++) = digit[(n / pow) % 10]; + nbr_digit--; + pow /= 10; + } + *(nbr + index++) = '\0'; +} + +char *ft_itoa(int n) +{ + char *nbr; + long index; + long n2; + long nbr_digit; + + n2 = (long) n; + nbr_digit = ft_n_digit(n); + index = 0; + if (n2 < 0) + { + nbr = ft_calloc((nbr_digit + 2), 1); + if (!nbr) + return (NULL); + *(nbr + index++) = '-'; + n2 *= -1; + } + else + { + nbr = ft_calloc((nbr_digit + 1), 1); + if (!nbr) + return (NULL); + } + ft_set_digit(nbr_digit, index, nbr, n2); + return (nbr); +} diff --git a/lib/libft/ft_itoa.o b/lib/libft/ft_itoa.o new file mode 100644 index 0000000000000000000000000000000000000000..cde2cfa856d1bf3e9ead9b2513a926d80e648f19 GIT binary patch literal 2160 zcmbVNPiP!f7=N=#o0zt4Xe%iwWa+`;A;ZRcs30;%M<3E^TiuH^q?^qohU}lRnXRch z7@4$WxJXwicQ4?XtSUZgZ_Hsqk`LEJ;3+e2X&Jd6b$46Jlp2bJsW1?TrX}V4mweAO6FiWUKL0P`-3jSL5SqaMkyXzx6}C$kCu2e_wp%)u0@jMsoF@NQDA|tep}48stFw zQzG!>#yY(>&uLLO8oTSX(A)?`TQL108Z3s1sxj5ZV>#hYx04$zHC@Wvr9>v1&d((- zTE)frLOwD6x}Ma>$Hw0*2`yd}4Vp;%@+{MqhP9XX4-Bp&<14^u5j~;pofn6%#NIuy zH}(h?f$lBBL7&kU>QkZq9O0mC+Cu$R=R&zEx3R*~uXf^F#^ ze3Tknw9}adrf0Jkb5rS=8NAmy8Q1!JYPOipSrjsp&Snc4lIHC~TF)?j(JtEQY4A%q z;!-24{{PH{YhMrdl>B}8KBAM)Bt+@oJ7L{-LP~=+&@H-{E{eVpd}4UV|D>A|OiI-Y z;1r7NiH-z}9RjEP%1*+}mwAsVKyp>T;uFA?+-*A2YbZTztpHQcB@A&y`ri(bKv4B7 z_&kJO{Z}QpBn_#5nz8a%{htNacd|{N-!fK6r{(>rpLy~piuPIt7P%r}w +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/11 09:03:40 by yantoine #+# #+# */ +/* Updated: 2023/11/13 16:24:52 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memchr(const void *s, int c, size_t n) +{ + unsigned char *p; + size_t index; + + p = (unsigned char *)s; + index = 0; + while (p[index] && index < n) + { + if (*(p + index) == (unsigned char) c) + return ((void *)(p + index)); + index++; + } + return (NULL); +} diff --git a/lib/libft/ft_memchr.o b/lib/libft/ft_memchr.o new file mode 100644 index 0000000000000000000000000000000000000000..4074a636c4d05794fa41f2a556a18c875eadd32c GIT binary patch literal 1120 zcmb<-^>JfjWMqH=Mg}_u1P><4z@Wf{U^{@B4h)3hfPc~fpjemd`4x=( zt*k(amo_N+SU9?U-|%lcX?cRbRS+h_?0Nxc%a50mFoT*8FaiZGyzKe^|3A>~A3$-C z-9KUvGlV9U=9QExBKa;>f@O^vL_j)#fUzowfw4k> zQJROHV*)TBWPoBI3<3*5gd?9o8ECD4rU +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/11 10:08:42 by yantoine #+# #+# */ +/* Updated: 2023/11/13 16:23:41 by hexplor ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_memcmp(const void *s1, const void *s2, size_t n) +{ + unsigned char *p1; + unsigned char *p2; + size_t index; + + index = 0; + p1 = (unsigned char *)s1; + p2 = (unsigned char *)s2; + while (index < n) + { + if (*(p1 + index) != *(p2 + index)) + return ((*(p1 + index) - *(p2 + index))); + index++; + } + return (0); +} + +/*int main() +{ + ft_memcmp("001270", "coucou", 7); + return (0); +}*/ diff --git a/lib/libft/ft_memcmp.o b/lib/libft/ft_memcmp.o new file mode 100644 index 0000000000000000000000000000000000000000..99bfa7f9d9a174ee9bb72cc2ad2ea004f2b3097b GIT binary patch literal 1112 zcmb<-^>JfjWMqH=Mg}_u1P><4z#zedU^{@B4h);KpEc?{M%SKfHY7x6v*Zgv^>GzqJ&3Y z^F*iXpO+F46(>BJ4=@7FKJjw?|NsAwyZ!+RGjzNDi9O5^npB!sQmT-glbDyTP?lO$ zoSC1eU}&Ugpl7ISXjuxDH3lhX5CM}642)Gl42%^5jM6;p920;6AOjQ!VGx)KA{_Yy z+L)Yq*_b8(Re%Jr19zY>3&Y3%*kqX*kOC2^KmbS!A&G +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/07 11:03:13 by yantoine #+# #+# */ +/* Updated: 2023/11/09 12:15:15 by yantoine ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memcpy(void *dest, const void *src, size_t n) +{ + size_t index; + + index = 0; + while (index < n) + { + *(unsigned char *)(dest + index) = *(unsigned char *)(src + index); + index++; + } + return (dest); +} diff --git a/lib/libft/ft_memcpy.o b/lib/libft/ft_memcpy.o new file mode 100644 index 0000000000000000000000000000000000000000..ea831594164313a4c58270431df3a37042ce23d0 GIT binary patch literal 1048 zcmb<-^>JfjWMqH=Mg}_u1P><4z;FXe&;cy$z`zMq8S2sb)T6WZhev1W2anFs7aqr5 zAAqDix?LZ5Si8R9Z&ru!K6rHdKIjtR080D-F+0G_2OiA_7(F^&AG|#M|NnoGT`R!1w$h}13g1sL(5XItTD(EAP|9242)Gl42%^5jM6;p z920