From b8e4e6d879d8c78c535a016ddda68edb11fd0f9c Mon Sep 17 00:00:00 2001 From: kinou-p Date: Sun, 6 Feb 2022 09:42:26 +0100 Subject: [PATCH] test --- libft/Makefile | 68 +++++++++++ libft/ft_atoi.c | 39 ++++++ libft/ft_atoi.o | Bin 0 -> 1624 bytes libft/ft_bzero.c | 28 +++++ libft/ft_bzero.o | Bin 0 -> 1424 bytes libft/ft_calloc.c | 31 +++++ libft/ft_calloc.o | Bin 0 -> 1640 bytes libft/ft_isalnum.c | 23 ++++ libft/ft_isalnum.o | Bin 0 -> 1432 bytes libft/ft_isalpha.c | 21 ++++ libft/ft_isalpha.o | Bin 0 -> 1416 bytes libft/ft_isascii.c | 21 ++++ libft/ft_isascii.o | Bin 0 -> 1400 bytes libft/ft_isdigit.c | 21 ++++ libft/ft_isdigit.o | Bin 0 -> 1400 bytes libft/ft_isprint.c | 21 ++++ libft/ft_isprint.o | Bin 0 -> 1400 bytes libft/ft_itoa.c | 59 ++++++++++ libft/ft_itoa.o | Bin 0 -> 2032 bytes libft/ft_lstadd_back.c | 21 ++++ libft/ft_lstadd_front.c | 19 +++ libft/ft_lstbeforelast.c | 28 +++++ libft/ft_lstclear.c | 28 +++++ libft/ft_lstdelone.c | 21 ++++ libft/ft_lstiter.c | 22 ++++ libft/ft_lstlast.c | 22 ++++ libft/ft_lstmap.c | 33 ++++++ libft/ft_lstnew.c | 26 ++++ libft/ft_lstsize.c | 26 ++++ libft/ft_memccpy.c | 32 +++++ libft/ft_memccpy.o | Bin 0 -> 1504 bytes libft/ft_memchr.c | 28 +++++ libft/ft_memchr.o | Bin 0 -> 1432 bytes libft/ft_memcmp.c | 28 +++++ libft/ft_memcmp.o | Bin 0 -> 1488 bytes libft/ft_memcpy.c | 32 +++++ libft/ft_memcpy.o | Bin 0 -> 1472 bytes libft/ft_memmove.c | 39 ++++++ libft/ft_memmove.o | Bin 0 -> 1520 bytes libft/ft_memset.c | 29 +++++ libft/ft_memset.o | Bin 0 -> 1432 bytes libft/ft_putchar_fd.c | 18 +++ libft/ft_putchar_fd.o | Bin 0 -> 1584 bytes libft/ft_putendl_fd.c | 21 ++++ libft/ft_putendl_fd.o | Bin 0 -> 1744 bytes libft/ft_putnbr_fd.c | 28 +++++ libft/ft_putnbr_fd.o | Bin 0 -> 1784 bytes libft/ft_putstr_fd.c | 20 ++++ libft/ft_putstr_fd.o | Bin 0 -> 1664 bytes libft/ft_split.c | 80 +++++++++++++ libft/ft_split.o | Bin 0 -> 2544 bytes libft/ft_strchr.c | 28 +++++ libft/ft_strchr.o | Bin 0 -> 1656 bytes libft/ft_strdup.c | 34 ++++++ libft/ft_strdup.o | Bin 0 -> 1704 bytes libft/ft_strjoin.c | 41 +++++++ libft/ft_strjoin.o | Bin 0 -> 1896 bytes libft/ft_strlcat.c | 34 ++++++ libft/ft_strlcat.o | Bin 0 -> 1832 bytes libft/ft_strlcpy.c | 36 ++++++ libft/ft_strlcpy.o | Bin 0 -> 1552 bytes libft/ft_strlen.c | 25 ++++ libft/ft_strlen.o | Bin 0 -> 1424 bytes libft/ft_strmapi.c | 32 +++++ libft/ft_strmapi.o | Bin 0 -> 1784 bytes libft/ft_strncmp.c | 28 +++++ libft/ft_strncmp.o | Bin 0 -> 1544 bytes libft/ft_strnstr.c | 41 +++++++ libft/ft_strnstr.o | Bin 0 -> 1672 bytes libft/ft_strrchr.c | 35 ++++++ libft/ft_strrchr.o | Bin 0 -> 1472 bytes libft/ft_strtrim.c | 72 ++++++++++++ libft/ft_strtrim.o | Bin 0 -> 2264 bytes libft/ft_substr.c | 39 ++++++ libft/ft_substr.o | Bin 0 -> 1824 bytes libft/ft_tolower.c | 20 ++++ libft/ft_tolower.o | Bin 0 -> 1400 bytes libft/ft_toupper.c | 20 ++++ libft/ft_toupper.o | Bin 0 -> 1400 bytes libft/get_next_line.c | 100 ++++++++++++++++ libft/get_next_line.h | 19 +++ libft/get_next_line.o | Bin 0 -> 3704 bytes libft/get_next_line_utils.c | 41 +++++++ libft/get_next_line_utils.o | Bin 0 -> 1912 bytes libft/libft.a | Bin 0 -> 63878 bytes libft/libft.h | 76 ++++++++++++ main.c | 228 ++++++++++++++++++++++++++++++++++++ map.ber | 10 ++ sprite/back.xpm | 41 +++++++ sprite/back_bear.xpm | 77 ++++++++++++ sprite/exit.XPM | 42 +++++++ sprite/front_bear.xpm | 80 +++++++++++++ sprite/honey.xpm | 100 ++++++++++++++++ sprite/left_bear.xpm | 79 +++++++++++++ sprite/right_bear.xpm | 79 +++++++++++++ sprite/snow_tree.xpm | 176 ++++++++++++++++++++++++++++ 96 files changed, 2566 insertions(+) create mode 100644 libft/Makefile create mode 100644 libft/ft_atoi.c create mode 100644 libft/ft_atoi.o create mode 100644 libft/ft_bzero.c create mode 100644 libft/ft_bzero.o create mode 100644 libft/ft_calloc.c create mode 100644 libft/ft_calloc.o create mode 100644 libft/ft_isalnum.c create mode 100644 libft/ft_isalnum.o create mode 100644 libft/ft_isalpha.c create mode 100644 libft/ft_isalpha.o create mode 100644 libft/ft_isascii.c create mode 100644 libft/ft_isascii.o create mode 100644 libft/ft_isdigit.c create mode 100644 libft/ft_isdigit.o create mode 100644 libft/ft_isprint.c create mode 100644 libft/ft_isprint.o create mode 100644 libft/ft_itoa.c create mode 100644 libft/ft_itoa.o create mode 100644 libft/ft_lstadd_back.c create mode 100644 libft/ft_lstadd_front.c create mode 100644 libft/ft_lstbeforelast.c create mode 100644 libft/ft_lstclear.c create mode 100644 libft/ft_lstdelone.c create mode 100644 libft/ft_lstiter.c create mode 100644 libft/ft_lstlast.c create mode 100644 libft/ft_lstmap.c create mode 100644 libft/ft_lstnew.c create mode 100644 libft/ft_lstsize.c create mode 100644 libft/ft_memccpy.c create mode 100644 libft/ft_memccpy.o create mode 100644 libft/ft_memchr.c create mode 100644 libft/ft_memchr.o create mode 100644 libft/ft_memcmp.c create mode 100644 libft/ft_memcmp.o create mode 100644 libft/ft_memcpy.c create mode 100644 libft/ft_memcpy.o create mode 100644 libft/ft_memmove.c create mode 100644 libft/ft_memmove.o create mode 100644 libft/ft_memset.c create mode 100644 libft/ft_memset.o create mode 100644 libft/ft_putchar_fd.c create mode 100644 libft/ft_putchar_fd.o create mode 100644 libft/ft_putendl_fd.c create mode 100644 libft/ft_putendl_fd.o create mode 100644 libft/ft_putnbr_fd.c create mode 100644 libft/ft_putnbr_fd.o create mode 100644 libft/ft_putstr_fd.c create mode 100644 libft/ft_putstr_fd.o create mode 100644 libft/ft_split.c create mode 100644 libft/ft_split.o create mode 100644 libft/ft_strchr.c create mode 100644 libft/ft_strchr.o create mode 100644 libft/ft_strdup.c create mode 100644 libft/ft_strdup.o create mode 100644 libft/ft_strjoin.c create mode 100644 libft/ft_strjoin.o create mode 100644 libft/ft_strlcat.c create mode 100644 libft/ft_strlcat.o create mode 100644 libft/ft_strlcpy.c create mode 100644 libft/ft_strlcpy.o create mode 100644 libft/ft_strlen.c create mode 100644 libft/ft_strlen.o create mode 100644 libft/ft_strmapi.c create mode 100644 libft/ft_strmapi.o create mode 100644 libft/ft_strncmp.c create mode 100644 libft/ft_strncmp.o create mode 100644 libft/ft_strnstr.c create mode 100644 libft/ft_strnstr.o create mode 100644 libft/ft_strrchr.c create mode 100644 libft/ft_strrchr.o create mode 100644 libft/ft_strtrim.c create mode 100644 libft/ft_strtrim.o create mode 100644 libft/ft_substr.c create mode 100644 libft/ft_substr.o create mode 100644 libft/ft_tolower.c create mode 100644 libft/ft_tolower.o create mode 100644 libft/ft_toupper.c create mode 100644 libft/ft_toupper.o create mode 100644 libft/get_next_line.c create mode 100644 libft/get_next_line.h create mode 100644 libft/get_next_line.o create mode 100644 libft/get_next_line_utils.c create mode 100644 libft/get_next_line_utils.o create mode 100644 libft/libft.a create mode 100644 libft/libft.h create mode 100644 main.c create mode 100644 map.ber create mode 100644 sprite/back.xpm create mode 100644 sprite/back_bear.xpm create mode 100644 sprite/exit.XPM create mode 100644 sprite/front_bear.xpm create mode 100644 sprite/honey.xpm create mode 100644 sprite/left_bear.xpm create mode 100644 sprite/right_bear.xpm create mode 100644 sprite/snow_tree.xpm diff --git a/libft/Makefile b/libft/Makefile new file mode 100644 index 0000000..f402b07 --- /dev/null +++ b/libft/Makefile @@ -0,0 +1,68 @@ +NAME = libft.a +SRCS = ft_memset.c \ + ft_bzero.c \ + ft_memcpy.c \ + ft_memccpy.c \ + ft_memmove.c \ + ft_memchr.c \ + ft_memcmp.c \ + ft_strlen.c \ + ft_isalpha.c \ + ft_isdigit.c \ + ft_isalnum.c \ + ft_isascii.c \ + ft_isprint.c \ + ft_toupper.c \ + ft_tolower.c \ + ft_strchr.c \ + ft_strrchr.c \ + ft_strncmp.c \ + ft_strlcpy.c \ + ft_strlcat.c \ + ft_strnstr.c \ + ft_atoi.c \ + ft_calloc.c \ + ft_strdup.c \ + ft_substr.c \ + ft_strtrim.c \ + ft_split.c \ + ft_strjoin.c \ + ft_itoa.c \ + ft_strmapi.c \ + ft_putchar_fd.c \ + ft_putstr_fd.c \ + ft_putendl_fd.c \ + ft_putnbr_fd.c \ + get_next_line.c \ + get_next_line_utils.c +OBJS = ${SRCS:.c=.o} +BONUS_C = ft_lstnew.c ft_lstadd_front.c ft_lstsize.c ft_lstlast.c ft_lstadd_back.c \ + ft_lstdelone.c ft_lstclear.c ft_lstiter.c ft_lstmap.c ft_lstbeforelast.c +BONUS_O = ${BONUS_C:.c=.o} +CC = gcc +CFLAGS = -Wall -Wextra +RM = rm -rf + +.c.o: + ${CC} ${CFLAGS} -c $< -o ${<:.c=.o} + +${NAME}:${OBJS} + ar -rcs ${NAME} ${OBJS} + +all: ${NAME} + +bonus: all + ${CC} ${CFLAGS} -c ${BONUS_C} + ar -rcs ${NAME} ${BONUS_O} + +clean: + ${RM} ${OBJS} + ${RM} ${BONUS_O} + +fclean: clean + ${RM} ${NAME} + +re: fclean all + +.PHONY: all clean fclean re bonus + diff --git a/libft/ft_atoi.c b/libft/ft_atoi.c new file mode 100644 index 0000000..0073b7e --- /dev/null +++ b/libft/ft_atoi.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:09:17 by apommier #+# #+# */ +/* Updated: 2022/01/18 06:50:22 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +long ft_atoi(const char *nptr) +{ + int i; + long nbr; + long minus; + + minus = 1; + nbr = 0; + i = 0; + while ((nptr[i] >= 9 && nptr[i] <= 13) || nptr[i] == 32) + i++; + if (nptr[i] == '+') + i++; + else if (nptr[i] == '-') + { + i++; + minus = -1; + } + while (nptr[i] >= '0' && nptr[i] <= '9') + { + nbr = nbr * 10 + nptr[i] - '0'; + i++; + } + return (minus * nbr); +} diff --git a/libft/ft_atoi.o b/libft/ft_atoi.o new file mode 100644 index 0000000000000000000000000000000000000000..bd024462d1f141b0f16545e4ab89fda594189fa4 GIT binary patch literal 1624 zcmbtU&1+LZ5TDJ9X*I2h+JjJ$cv7iZQ$MH`kwAEMLGd62>Y>P0 zgj_s&^)K+|QBpkAV-6m2^dbn!A>yTYsWUIT>E`8m(Sga#{APYTvmY<7?FaWFjDZ#g zci||~D8Q<94(G+%YazI{Mkv;!*HxBFyz(OtXGT6SL)JECQG z1?wa}!ky{H+ypk;_&R~5WP1Wz@M5%P@9{(??b(!}Q4UdhOQMw@h-OFZeT!gY!P=s^ z7i5XVr?y~U#O{xbXxf9&aj%AqyWDt>8#)k)5B6Z~Gpyutw^Nt$1+Of<)H1)$GwH=8 z&kq+H*D^eFPa>~Gd2Ad5BD5mq$F`V zZ2M&LO(ZuPvmy*jd_3%jN~7@eFf3<<-Z;&IQ-z2%nsPj8`MVj%D6$|n3HtcdUvN5! zafxGi+L+VdJC$t6bw^g7@}l;JywuS6I~dyqukDniQvhC*)uG+eo^fof0%jX(wzlQ zF00lY?O(-IYsv)-2-ELL=k5m!RU!yqM4VpJzw)mjm)6XnnxgwJm>~MPzqU6G%q)GO z3rsMi)<%q8*Vx@-Tvz-Q`lbZGoHa~RX^{U;@o$-A^n?6W#OM`gQBCQp14D| literal 0 HcmV?d00001 diff --git a/libft/ft_bzero.c b/libft/ft_bzero.c new file mode 100644 index 0000000..5baa4fe --- /dev/null +++ b/libft/ft_bzero.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_bzero.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:09:48 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:26:30 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_bzero(void *s, size_t n) +{ + char *p; + int i; + + p = (char *)s; + i = 0; + while (n != 0) + { + p[i] = 0; + i++; + n--; + } +} diff --git a/libft/ft_bzero.o b/libft/ft_bzero.o new file mode 100644 index 0000000000000000000000000000000000000000..07a6af36b5072e6bf30c561d09ad94e745a90d4e GIT binary patch literal 1424 zcmbtT&ubGw6n>knZPlnz6qJg@lNIfd`U8I)BoNl_K|BZnFQshawgug!?9M`4tR9L& z=p}!Oe}W+BHGe`bg5X6lhu}rOx0%^a#`U5P-n{p|dEeXjW@cY|j~(qX^9`hiv&jr-NbW-IN;w0ck66t$)0J82d!zq(NqwOdywFwLN71$qR! z^0-N8>pf#Gl;!NikhA-Qob8IUP@bFbW1x$`Sy{YnIazsIYMhvTiG&O-Uid6#==-mt zUAOS0xEJHF45FKNX@GFuY?^6|BbR3X1T%c@FF2pXw3HE^G5XAA=ahB1*4ho@u4v~j z!&P1&Ji*iyBH4*#&?1q@cw#rTC&O(?;#nXA60Ia5(e6f3*a6n*%242%mJ%7XpR0JI zlZvglyA{TAheRB{2t>HKwjKvjn0@-cmIbi+&g_$`tE&0@D&|~ME+b$}zbC!-Mmv_Z z`B$*d@9AIp*TLnQHK-~2``1hmzW% +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:09:57 by apommier #+# #+# */ +/* Updated: 2022/01/17 21:18:04 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_calloc(size_t nmemb, size_t size) +{ + char *new; + int i; + + i = 0; + new = malloc(size * nmemb); + if (new) + { + while (size * nmemb - i) + { + new[i] = 0; + i++; + } + } + return ((void *)new); +} diff --git a/libft/ft_calloc.o b/libft/ft_calloc.o new file mode 100644 index 0000000000000000000000000000000000000000..e13f9d6532151e30f48349b8cd145e7de7ae223f GIT binary patch literal 1640 zcmbtTO=uHQ5S~qH>rZ2&6cj45CyCfR5-n(ZkhEcwMS>M=kFsvotrhcAlDE(b)k8oG zy?FHK)st6`Qo-V_2N93G2nD@}IRp{v%| zFo+}ykVy{wLg*GC1>^8@;{2~=yZhDdd^hdx=Dytx_I9iuW!PKRo;~r#LTqP01iDt= z?ripfPk)=-vU;|+i#dJU*!=*|v3iEW*rxX{?b+?%Gv$1I59MNU&de-Vg9Z=GS$2ix zviYk)80Mc`&avFg#Rv{hH-gVJ>JilP&1Facydz9rV-kH5!CO0VVDT*m!%4(z_mU0~IA8<^Lu z*Zl@!jVAXQeiPX?cfCgdEJpRSK7QDEj8mdfVKsEoBpGPj$%%Q3x z`(IK)^ksi(=M+p${iFtpFL@HWfe!s8L*Ed_Uqpf_tTb|dGOnUSHRJrgNVp~wg^ly? zBCgxtE6x6hEBSJNy57_(CoXCVOaIO>4WF?1?ht}oqW=s9iimQD$SL%6{I`N%JIsun GIR6hhUy;!O literal 0 HcmV?d00001 diff --git a/libft/ft_isalnum.c b/libft/ft_isalnum.c new file mode 100644 index 0000000..7f628b5 --- /dev/null +++ b/libft/ft_isalnum.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalnum.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:10:08 by apommier #+# #+# */ +/* Updated: 2020/12/12 09:26:43 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_isalnum(int c) +{ + if (c <= '9' && c >= '0') + return (1); + else if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) + return (1); + else + return (0); +} diff --git a/libft/ft_isalnum.o b/libft/ft_isalnum.o new file mode 100644 index 0000000000000000000000000000000000000000..3adcfbe1b7fe2623b5baa59b380494160be03ffa GIT binary patch literal 1432 zcmbVL&rcIk5T5Op7NtNn955JD6B9MSV^NIa!E9119*hT*CdP!|wk$sayCu7C6Tq-N zXiT_y^uK^3M-%=5{s~WBFkXxy(V6X=^7vVhHkXK;>~ z1^Ajf&)qC_p#($lYxLHi`pf;mqCd&;WTMJ}z!-e#BtqNxE^S5!hf z>Di5lcLM1(K*TcY#5K;Ozb!#5d(s2Zh+`1VRuK3ha$!sQ0pL(DJEoU85HB9K0_1rz;Lp7nIA_wyyTEqgaY3fgu z;0X&=H1%(h&!fAl&S6|FIIf5*7^zRzGvDvqBpFm2Jtcs46`j^F^~9NXhZOu)`Wpl^ VQ*@WPhFL$oqxxU%&g>+n{vRHXX`=uD literal 0 HcmV?d00001 diff --git a/libft/ft_isalpha.c b/libft/ft_isalpha.c new file mode 100644 index 0000000..51292d2 --- /dev/null +++ b/libft/ft_isalpha.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalpha.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:10:17 by apommier #+# #+# */ +/* Updated: 2020/12/12 09:28:12 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_isalpha(int c) +{ + if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) + return (1); + else + return (0); +} diff --git a/libft/ft_isalpha.o b/libft/ft_isalpha.o new file mode 100644 index 0000000000000000000000000000000000000000..974f39cffb30766205424e24ea8fbe48dd66e7d7 GIT binary patch literal 1416 zcmbVL%}X0W6n~r5#E)oW>7imN>!~emhD0s39?C*U?Ve z(W~94bRiAn@cY5jo6?8VAEyVmM+di`J4uZDois+bGl6mKFm*xe{TjX?)%tf>E)1dZBj2ZM{^yN<_z&0+4v(d>O#R;ta6|i4{oL@_#boQ+M!m68$!b@S)ac^zAfdQ*L|>y;`g4iHZhT?Wlsjr0;7)xL2268AK?9 zI9Iun{;mY^#giV0au|ZBH0yQ0fn1|0eSz1N4W(DvR(Pw?7OkM!@&maCBJgXT@T(h} zfmipri~Hvpl+xXqC+MmryXT-V&DCud0df4Ucx;CYBb)kXI8N{CzWP_Fr8RTty7B%m zbrNgdpYv;t)2E*4K&x5DR1ph$Wqo&#_#B +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:10:30 by apommier #+# #+# */ +/* Updated: 2020/12/11 18:11:18 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_isascii(int c) +{ + if (c >= 0 && c <= 127) + return (1); + else + return (0); +} diff --git a/libft/ft_isascii.o b/libft/ft_isascii.o new file mode 100644 index 0000000000000000000000000000000000000000..13e6e60e77d9e5738333d72a50b1e2e9d5a467b3 GIT binary patch literal 1400 zcmbVLJ4*vW5T47a@of|fMUhyDie^cC;G>X0h+2q+5U^0>5-%Dw5AHUQ2r-2qr1Pg( zS_=LN|9~LaC^jO3&fM+B&6zX~%+1WV^X<&e?p5PEn?6kgDH?3RZzNHGlJD1#I&Ktt zp$FavCO#9}wWnI;>#Fhvr9S*ttNuIM94`jf*dhyuA}d8F zj9e~+S$JvIg`o`z0n~QXt=$A**?YotRFYxWfOfG5S}CB7_4+$+u-G`_q$E@HiT4Mt zeX+id15BW}g;1Yu@b=woS#LTC>O~obLe%SBDj>SLbDBnsA{{#Zf)4I)fzu=!r60o~ zrBCPVl#=F08QZW^nG8!Qfn*1TLnmoC4YSKxZX|)(+;Z)y^tf5#z>W=W08837uv9*q zHFJpN^4w&2T_KwrsWTCuciss`#g_Fs zh?sI!nZ$rF`L5(ztJb{yX(Z6Q`Y(STxwK~(RTWu(P6g4I^`%`_Fg5i?4HRGUBos%7 zURlH4V=VbW^i}cxLx;FXdwTh|g0!lV(f9KA5u?`}MOEcPG&&-{F0|CA +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:10:39 by apommier #+# #+# */ +/* Updated: 2020/12/12 09:27:06 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_isdigit(int c) +{ + if (c <= '9' && c >= '0') + return (1); + else + return (0); +} diff --git a/libft/ft_isdigit.o b/libft/ft_isdigit.o new file mode 100644 index 0000000000000000000000000000000000000000..a403532d851908ccd4c0d93e83348ecd9eb0d37c GIT binary patch literal 1400 zcmbVLy-EW?5T46L63-YkiQH`<5u$}4*!d`y zDFt7`7Z3y+#YRNXnY-P%Ig`eLxtaNPzMa|Gz01Vbx=+(UiUw=&8%Y$P#Fh_wnTd%Uz%DRch;HsbNs@I*3I%=2P6$`)8;W^TFY zgmV}35f)jTbYbu#A&A<7y0M)EEPGFwj!H7%8qm&nKr02cP*i#d1^58_~6Jga;EI!|2BkFx;yU#V`9tN z97IgHs*GYln0!}qtyybc{x}loUHz9oja=F@f~tzFKc#}`%lgtTDVUmis|JcMc@j#X zL$9pv?lG49F#4)^|Dka-J3(4e$>@9eyNJ4Wm>8t6bvdwBVTdGC%WkD~q%1&Ro`hV-G=h#wRK$<#7k$IJf#THRb` literal 0 HcmV?d00001 diff --git a/libft/ft_isprint.c b/libft/ft_isprint.c new file mode 100644 index 0000000..1915c16 --- /dev/null +++ b/libft/ft_isprint.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isprint.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:10:55 by apommier #+# #+# */ +/* Updated: 2020/12/11 18:11:43 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_isprint(int c) +{ + if (c > 31 && c < 127) + return (1); + else + return (0); +} diff --git a/libft/ft_isprint.o b/libft/ft_isprint.o new file mode 100644 index 0000000000000000000000000000000000000000..625565ea763b4db9b90513100d1f2305d6fafe67 GIT binary patch literal 1400 zcmbVLJ4*vW5T46L+14rxYUW?QaN--d%QH=QRdzQtS1sH(eYHeVDUn9na#1-^vq(x z4QEQTF&3Mj@L&icA&lCDy1tbHEPGFwj!M$!8PG1aK`Vx}NJpsU28#_MPD(OLpJZ3~ zI*{mW-o*rp8wm9ogtzZ{%X-~OP%p|b6rx`3QUTG`-P6=!6zS0X7j*GZ1DqyND_t1& zDt)?Vr<6m!f8ylr6N|Hq5=eGbICPSl(=g{e%Z)TJhufY#mL4~Y9N2-u4Pa@<0hY;S zv!;cZmE$JE>za1BkvSFdkyT)MJC`?Yeh$nw&kSZB?;qMm)|6fR-$sy1cjupATx?mL zgNP|tl@SaGlkZBdHEPYzA43AYtN-$+kV|{UP*sujCsh!ASzp=(1yfUR)IjkiPeMs_ z=#|ynJ;stBMPC*FKeUI7w5OkcD@aQ!8GS#02Qhlhaa2`4M5FxzY(-0bO1{MF)h5a_ reNbLK18rz&4?mwU|J@PgQPdxxKoJ2~kskEw@xx*uN7YQv@$-KGGTB_y literal 0 HcmV?d00001 diff --git a/libft/ft_itoa.c b/libft/ft_itoa.c new file mode 100644 index 0000000..70f2fd0 --- /dev/null +++ b/libft/ft_itoa.c @@ -0,0 +1,59 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 18:20:19 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:28:01 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static char *fill(long n, int j, int minus) +{ + char *dest; + + j += minus; + dest = (char *)malloc(sizeof(char) * (j + 1)); + if (dest == 0) + return (0); + dest[j] = 0; + if (n == 0) + dest[j - 1] = '0'; + while (n) + { + dest[j - 1] = n % 10 + '0'; + j--; + n /= 10; + } + if (minus) + dest[j - 1] = '-'; + return (dest); +} + +char *ft_itoa(int n) +{ + long i; + long k; + int j; + int minus; + + k = n; + minus = 0; + j = 1; + if (k < 0) + { + minus = 1; + k = k * -1; + } + i = k; + while (k >= 10) + { + k /= 10; + j++; + } + return (fill(i, j, minus)); +} diff --git a/libft/ft_itoa.o b/libft/ft_itoa.o new file mode 100644 index 0000000000000000000000000000000000000000..2ba0bdfe177cb60b7c1cc54764ecb2b19ade37e0 GIT binary patch literal 2032 zcmbtT&1(};5PzH0)_%ms4@9U)PST=Twtk=%(X?gThon}t0WT$PV$v4#QIZX`mDt0g zbcux?d-gBzD4r4vtt}z}uRR2b5N!_;4-G|(Gn@C??XpGDfwwd7H}jh}Z|3d1>>qLn z0^uT%TV#L7Q9@of?b|-X^br^7AU`_K?FOj+g=*U#s%I;DrmP1_Ik_ar<(ypB@&a9^ z`dS4kRF`X1%hpJy?G5g~eu57K(QuLGz$Fw{AxO(sNayn<=31tU_v(9IY3nJ?ja2B{ ziD*Np{+{l9qlH}uT7}we+VhU;MOr91ARQI*w5LGz4ZXNXB|OQTPTyE?Yw@!1cNulL z!b+Q~*XvrgMAVbkjH|?prLM1-x+3Y>&78c6U68A5@-|+4O|D>%AzziuwgYJFcE+o~ zu40$AAkRqk&)0;M8sx%6t@9spfo*IKRG@#vo1n`N8jjfw>jLOPN_*n z43p?oEJlLE{?UPce{ghY=z%;I9P1zO%Rv%XVzDGdG-8p~jUN!4E%x9iJZcmV*eEb} zV;LLx_?W?QUI!7=vvE}kfmTxuJ;|+9B&LXJWJV?8V?|Yn7)qy!7*59Hkpy6gq#6<7 zjd|0m5`Mz=6N!vCok~teQtB)bjSP{=U^Jz~BfOOV(jH*ro3c*U2N=pLbehDnC0*dd zp7~5MXx7-1JHzlc(8%R4g5x+}#H}y%v-Kc|L9xOY0mGdC%I{@4CD3N!=U*^`VDt02 z?lWQLP!~Q78{s_ex&sFOJ=SnH13WyCY2H5$hrqy`R=&i5hdhvJD}NktyZN~h1mS(b z`5~9{`TXq8M&1HD|2n%c{!=^$`Z>Q9Z0qdMpJ(7z+?d4LzvJMu +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:30:14 by apommier #+# #+# */ +/* Updated: 2020/12/11 15:32:53 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstadd_back(t_list **alst, t_list *new) +{ + if (*alst == 0) + *alst = new; + else + ft_lstlast(*alst)->next = new; +} diff --git a/libft/ft_lstadd_front.c b/libft/ft_lstadd_front.c new file mode 100644 index 0000000..8dfa145 --- /dev/null +++ b/libft/ft_lstadd_front.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_front.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 01:31:45 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:34:24 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstadd_front(t_list **alst, t_list *new) +{ + new->next = *alst; + *alst = new; +} diff --git a/libft/ft_lstbeforelast.c b/libft/ft_lstbeforelast.c new file mode 100644 index 0000000..535dd53 --- /dev/null +++ b/libft/ft_lstbeforelast.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstbeforelast.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/12/09 19:16:55 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:28:22 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstbeforelast(t_list *lst) +{ + t_list *save; + + save = 0; + if (!lst) + return (0); + while (lst->next) + { + save = lst; + lst = lst->next; + } + return (save); +} diff --git a/libft/ft_lstclear.c b/libft/ft_lstclear.c new file mode 100644 index 0000000..152fb31 --- /dev/null +++ b/libft/ft_lstclear.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstclear.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:58:04 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:28:39 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstclear(t_list **lst, void (*del)(void*)) +{ + t_list *chr; + + chr = *lst; + while (*lst) + { + chr = (*lst)->next; + del((*lst)->nbr); + free(*lst); + *lst = chr; + } + lst = 0; +} diff --git a/libft/ft_lstdelone.c b/libft/ft_lstdelone.c new file mode 100644 index 0000000..f0dea04 --- /dev/null +++ b/libft/ft_lstdelone.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstdelone.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:54:40 by apommier #+# #+# */ +/* Updated: 2020/12/12 09:10:11 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstdelone(t_list *lst, void (*del)(void*)) +{ + if (!lst) + return ; + del(lst->nbr); + free(lst); +} diff --git a/libft/ft_lstiter.c b/libft/ft_lstiter.c new file mode 100644 index 0000000..0e9ea7a --- /dev/null +++ b/libft/ft_lstiter.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstiter.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 20:14:47 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:47:39 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstiter(t_list *lst, void (*f)(void *)) +{ + while (lst) + { + f(lst->nbr); + lst = lst->next; + } +} diff --git a/libft/ft_lstlast.c b/libft/ft_lstlast.c new file mode 100644 index 0000000..2bf317b --- /dev/null +++ b/libft/ft_lstlast.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstlast.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:16:55 by apommier #+# #+# */ +/* Updated: 2021/11/26 01:21:39 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstlast(t_list *lst) +{ + if (!lst) + return (0); + while (lst->next) + lst = lst->next; + return (lst); +} diff --git a/libft/ft_lstmap.c b/libft/ft_lstmap.c new file mode 100644 index 0000000..252c0c6 --- /dev/null +++ b/libft/ft_lstmap.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstmap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/11 00:10:12 by apommier #+# #+# */ +/* Updated: 2020/12/13 22:37:30 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) +{ + t_list *new; + t_list *begin; + + begin = 0; + while (lst) + { + new = ft_lstnew(f(lst->nbr)); + if (!new) + { + ft_lstclear(&begin, *del); + return (0); + } + ft_lstadd_back(&begin, new); + lst = lst->next; + } + return (begin); +} diff --git a/libft/ft_lstnew.c b/libft/ft_lstnew.c new file mode 100644 index 0000000..e108f42 --- /dev/null +++ b/libft/ft_lstnew.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstnew.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 01:06:20 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:29:09 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstnew(void *content) +{ + t_list *new; + + new = (t_list *)malloc(sizeof(t_list)); + if (!new) + return (0); + new->swap = 0; + new->nbr = content; + new->next = 0; + return (new); +} diff --git a/libft/ft_lstsize.c b/libft/ft_lstsize.c new file mode 100644 index 0000000..2f6aebe --- /dev/null +++ b/libft/ft_lstsize.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstsize.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 03:24:50 by apommier #+# #+# */ +/* Updated: 2020/12/11 15:33:49 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_lstsize(t_list *lst) +{ + int i; + + i = 0; + while (lst) + { + lst = lst->next; + i++; + } + return (i); +} diff --git a/libft/ft_memccpy.c b/libft/ft_memccpy.c new file mode 100644 index 0000000..0b1644c --- /dev/null +++ b/libft/ft_memccpy.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memccpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:11:04 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:29:38 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memccpy(void *dest, const void *src, int c, size_t n) +{ + char *p; + const char *p1; + size_t i; + + i = 0; + p = (char *)dest; + p1 = (const char *)src; + while (i < n) + { + p[i] = p1[i]; + if ((unsigned char)p[i] == (unsigned char)c) + return (dest + i + 1); + i++; + } + return (0); +} diff --git a/libft/ft_memccpy.o b/libft/ft_memccpy.o new file mode 100644 index 0000000000000000000000000000000000000000..02b82f6ab05962341074fd2e5af53a233c2937c0 GIT binary patch literal 1504 zcmbVL&ubGw6n?u~TYuCxl^!Y;i6<59khY3dK^DTcbFfl`1uvy;)@=*AN!TBd2-<@n zU4r1B;z>LPJSfsbjy-x20=-mv310NQ%}hF3x0gP6dGGt?ee-7CY<8^2%etn4Gz}iX zF_J96PyIMI)6|4+sepF4&mrLh=K&p!(p_>fd zhJ{T(aw@>WDCoy+nMGbB0`|g*9AK3&1m@O!->V{5twkQg=b8&6$9*aARyAhzpjP*S zs0l3aUOCL$-q;Kr-;<{}eVj!py%MhR1$O9U&gx%r +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:11:39 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:29:51 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memchr(const void *s, int c, size_t n) +{ + unsigned char *str; + + str = (unsigned char *)s; + while (n) + { + if ((unsigned char)c == *str) + return (str); + n--; + str++; + } + return (0); +} diff --git a/libft/ft_memchr.o b/libft/ft_memchr.o new file mode 100644 index 0000000000000000000000000000000000000000..d96b5e1e076f5216be4f1e3c510b4d229bd338bc GIT binary patch literal 1432 zcmbtT&ui2`6n@#%tv_13ifExC@uZ?1Qh#9eAd5?EK=B|fcqt{jrd`nNmSh60P(2ic zuosX1CB>uEe`38?DDkGIZ~M-{^$Wd=Qlr?5^lbc%k=UHaK{ldo>FbC|>jZqgjMedo|koZ*qxcMg($gu}T#THcSV43Eyc zyTQP4cby@codLyPK61X*&$QBL+_$baTX9#$);)1c*o#Yd<1}1)bJG^~?Q0_%)2HAy z_%Zm((vD-SV)iE`sJ znWFE%%0|u76XU&Tho%Y5e3u#tXr|RnavYgd{gX`j>A&!N5|cKI@T|7aw054dF4qD- zXm>)<9%CYl$6#E+L=__14y4y25y^1WcNCKTmL&1QlOBmy6p?86g23;B>-MBCa7~Mm z^x7}8c%vJO&9JxWhjN=l=)dxW-&tD^y}(bG{;y^MYQD4L$?E9X i6!pv%?+#R6(1kP@H(A=8I0ICsx3m3k +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:11:51 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:30:32 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_memcmp(const void *s1, const void *s2, size_t n) +{ + int i; + + i = 0; + while (n) + { + if (((unsigned char *)s1)[i] != ((unsigned char *)s2)[i]) + return (((unsigned char *)s1)[i] - ((unsigned char *)s2)[i]); + n--; + i++; + } + return (0); +} diff --git a/libft/ft_memcmp.o b/libft/ft_memcmp.o new file mode 100644 index 0000000000000000000000000000000000000000..a02b8ae79a29d93a5036fbebaa72668807b8b0be GIT binary patch literal 1488 zcmbtT&1(}u6n~q<){oX*MNz0oJZZ5VQa>}&V_y^Ljn5)1Ca z*i$G#FEh4FiCKafH~~NGi$5#8^M!Y|4tOWt=bcLbvpb-O!zbJBfY*9_+dbe`&+a;j zzlZ)lxAyEV6nDjf5d(I&XNK9`o%!8P@9->d2YsvU4lLf@>O=hg1C?3%2+QU2o&1$b zHExJFf16!rg~g>?apEq$x>jI?8}maLAcqVG*AZOH4=R9d?GTp5MRI1Sz*C2_3@Jds2I!lwoL-e;N1bIsGet0lAd3fJ+xu z|Edn6t?Da%Q^WMouezhzil-nK4SHP@caQ!z8IYG+Df8D^!41l3@*P>IsEAUV{Ktsr zaFyh~QV(Uq^Ab3Qn$D^C3Qwy|6fWzlK8_!hROd8+~bJO literal 0 HcmV?d00001 diff --git a/libft/ft_memcpy.c b/libft/ft_memcpy.c new file mode 100644 index 0000000..92c0480 --- /dev/null +++ b/libft/ft_memcpy.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:12:03 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:30:43 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memcpy(void *dest, const void *src, size_t n) +{ + size_t i; + char *p; + const char *p1; + + if (!dest && !src) + return (dest); + p = (char *)dest; + p1 = (const char *)src; + i = 0; + while (i < n) + { + p[i] = p1[i]; + i++; + } + return (dest); +} diff --git a/libft/ft_memcpy.o b/libft/ft_memcpy.o new file mode 100644 index 0000000000000000000000000000000000000000..01d853b41100e305a6637fda52ff561768706807 GIT binary patch literal 1472 zcmbtT&1=+95T7J<>qpnFA}CZOo~&peTR*TWNMMP52lXHXdMPElrmbjpm*fSyLiJD( zm%aG6c<@~CVDYpk*^A&sSm>qVrFhYqw|SelFf71Kv&gyzA}po$Uc6Wi)+AO1$R|_BpM*>mH!R z8uyTYbcfVt-{w8<5YZtw`n>lL3p{i`&Ax{>Cf{*~hRoe{_oC0#WAy_p*J^j{d9R){ zMPlD(*I9L8@m3&#`Rd};>7VUC1qBTCH2BK@pX(lm> zEGYd6N__e+INijglrcQ5om0+ECF^1>48lgc!y1_nU{el-CYYFl#hp<2bzrfGMs`zq zBG?kZp7_ECR*z#~jaC>2O~jfl5ioqFg;@BFXKB3AOjtW=wS!1>fJMP`p9Pz1>yaM@ za_j$E=8#QqmcKbC?K+-6jj2|bix?25z9*G?r<|P4^DkkZKBs@>UqvqUtfK0o_P?To z=&Svey{Tb(=@&iFe8p3ciw=EV6K{|4S5y*PuGy0RbyhJ&J@b5Z(4~wjy*z&fQTmD< znavg_ZFnw)j-jP +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:12:14 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:31:05 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memmove(void *dest, const void *src, size_t n) +{ + size_t i; + + i = 0; + if (!dest && !src) + return (dest); + if (dest > src) + { + while (n) + { + ((unsigned char *)dest)[n - 1] = ((unsigned char *)src)[n - 1]; + n--; + } + } + else + { + while (i < n) + { + ((unsigned char *)dest)[i] = ((unsigned char *)src)[i]; + i++; + } + } + return (dest); +} diff --git a/libft/ft_memmove.o b/libft/ft_memmove.o new file mode 100644 index 0000000000000000000000000000000000000000..deae8a1917d7fd439a74bb428bc098db83754793 GIT binary patch literal 1520 zcmbVLOKTHR6h1Rk)2e->;zFrNTp1s|q(1ObkU$uF5tX6@+>|1d(!B?mR%5PxnfL%ZI^T9e4JQa8_}00MBM}yNlj27) zrU+%B+0~M zcAVzA&FV@b)dc})Cj+}--lpSQHDI3a_Tq{}zP;fCdtvz&u$t!qt2Z6TZXnla`ZmMs zn)ZCFzAEzNM!;Hbvt_&fCNS4tvzWcIxa3-nEmv{$IE7NWyYvZ`#gzSX5PAAvx_~@! z@?D8C_#r_mru7$boSxND^;c0#bC%Fmll`x#Bx2cL#+wSKmX62*mCUF$k)u~OaQB!? zeF3p*>0f982dPzBUljdst761y{WIj~HJ8y +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:12:24 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:31:28 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memset(void *s, int c, size_t n) +{ + int i; + unsigned char *p; + + i = 0; + p = (unsigned char *)s; + while (n > 0) + { + p[i] = (unsigned char)c; + i++; + n--; + } + return (s); +} diff --git a/libft/ft_memset.o b/libft/ft_memset.o new file mode 100644 index 0000000000000000000000000000000000000000..cc220101f6f3f1c5872f1cdb2b8a66c5a30c1f39 GIT binary patch literal 1432 zcmbtTziSjh6n=Xf6MrPS5g~ySIV%;DVPg~%3pqH}Y!NJk1)C7|&Pf8gcVTxH5+Pay zB+FS?`k!biSlFh#$|^#@M)8VZqwnp_+|G?_qYvJ`_rCYOnfGR9UwW$#DwYLGEVvIv zq)>pjmBO#*ZXG7!9Q?R&giV#>cNr1IFQN-JbwL5|{ zyr%g?gsrDC-fX9AJML`rSnL9e`LmGmt@VvKjCj8Fe|@URraLoFt}a&{&M#xC)#WM% zgsJzWa<7$RSd)JZ^Yonll|P4ETGK_s%e*qPa=}>%oIy){D!#(Y_9luW2mM9? l%2`xe!{ifY-W@{2foAfc_?YK6jj1xeEBoIpsJUnIe*>o{Z}$KI literal 0 HcmV?d00001 diff --git a/libft/ft_putchar_fd.c b/libft/ft_putchar_fd.c new file mode 100644 index 0000000..96abcb5 --- /dev/null +++ b/libft/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:11:29 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:02:13 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putchar_fd(char c, int fd) +{ + write(fd, &c, 1); +} diff --git a/libft/ft_putchar_fd.o b/libft/ft_putchar_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..7b5993d41344990cab005c30ffbc556151b738f5 GIT binary patch literal 1584 zcmbVML2DCH5T4D}wrZ&7`1yNXhd85Dzi&tY9CXivEofI%B-em1ig0m_YFnLcLDFpZ%=Idger^7uijcrAOT-F^Y7U zJPbzo)Dd`g$9goCB;_22b4s7lyCZf9mFAe1B?Pi?=x}=w@K)FH?M|Duk}=rT`r7JB z-CnCyo>=Sl`pRnEvf;VE!QHsRWl@Ok>NM(jKNeHqv_{G*0kGkY$DJlx?#H$(J>T7O z7Ln08gQ%I&uRfPV*%^y?GvDSwgw0 zT*rXUJTAY8TspIWs*0?CO$E`H^`%`_Fg5j~8YsTxN$5U0^tB{*2xG}N(N{&zPhw4U z=*%?#lSsHN6NOFlpCX=hf8C7xBd+Ani}SK-)1y7{+!QZN-_A+YG@r2a-4WFg_3u)k UNP2$sKas_ME%;jsm)tb}KZCz`)&Kwi literal 0 HcmV?d00001 diff --git a/libft/ft_putendl_fd.c b/libft/ft_putendl_fd.c new file mode 100644 index 0000000..a663173 --- /dev/null +++ b/libft/ft_putendl_fd.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putendl_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:22:10 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:14:52 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putendl_fd(char *s, int fd) +{ + if (s == 0) + return ; + write(fd, s, ft_strlen(s)); + ft_putchar_fd('\n', fd); +} diff --git a/libft/ft_putendl_fd.o b/libft/ft_putendl_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..e299d4d0c8c6df31baf96d71d6c8d27eec167107 GIT binary patch literal 1744 zcmbu9PiqrV5Wr`X+E#5eiibi)7Z0M?E{Xr`LDPm!7KyFc<|xZ1*%&d|gw0!Qh3cUo zECI>a@nld?y!aWs2!dY39)bvUX7|1HW!+qKU@|kmoq2C|-rKy;ONE4@fDi?4!$Bk{ zKtFll=K?neDVT$w$ItvK8~zt#_j}s#cZR;VXYB3_fn|-JJ~aFfUn$w}-x|Gp!=Aop z_@6k#z<>Yd2tEx`zA62W@1U5^FRK^I70+RwdP}>aWtOrxydcazznsxBS1*P*XaRqw zP}8V~P>XA2NB|6oiFQw+Pog|~0LoTcS(uxd?c)ocMn+1qMnC$o^vgs(HJ#8ggFw8{ zY^LDHe%#Y!?Bu8y(am^OGU$GsQIv$~zhS^TQtC5!cVuT#X^v63 zh9HjLnZWf49O}&Mc+7TcO|xFps^c-3#nSrfO37R=6gKotb8}_2q??q}Wp2}U;HmqV z*}SIOuv}at?DSk{f=M1l|Mz|<*CjqDaq5qR?nnw%z);d52M$D}1sGs5F}#sw@K<42lsNpzoIU5jSt1^YffX zZ~QC%JZfkSSr##%HUG6fi?y_722~cZ|0NlsFZLI9Sz>bPYdMg7Q76z{bm%MP;}RGK z+*3y+bj17wuAoC}M(aQGgqz$76Rm%U58}>mmJd{%6P+K`ih9B0_NKk&`HSA?mcF&a iG4;fvXNL$H{Dn3skc2NcBJ}?hSFdu|9A$=1wEhnwjG%!4 literal 0 HcmV?d00001 diff --git a/libft/ft_putnbr_fd.c b/libft/ft_putnbr_fd.c new file mode 100644 index 0000000..eb6aebd --- /dev/null +++ b/libft/ft_putnbr_fd.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:25:57 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:31:56 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putnbr_fd(int n, int fd) +{ + long nbr; + + nbr = n; + if (nbr < 0) + { + ft_putchar_fd('-', fd); + nbr *= -1; + } + if (nbr >= 10) + ft_putnbr_fd(nbr / 10, fd); + ft_putchar_fd(nbr % 10 + '0', fd); +} diff --git a/libft/ft_putnbr_fd.o b/libft/ft_putnbr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..a1b9ade40c5d8725a82d58def9113bb66761b121 GIT binary patch literal 1784 zcmbtT&1(};5T8wIYqhoY;~-Qer_!QXQX{B6XwtClL!t$3j%C@Tn+Do^kZhn4T7`n} z$fZY*{temu}V-M1L@uncth=doMF@A85(hfTDne z0yp3=lPtjV;9(rI!x#+15d0Xqu$N-|E8A>`_eaYpv~P$K>(mZoNUV(j0wv9yP&L%Dq}+fN4Kz%=a3^KyrduP#OR|y zVz@u>6f21E2hE@lzVG|327M<)cagX0RR!(a_i~g4q5pT%<_G@3`(HR{ccoWCy*lN( zr~TiNJC8lL0^c^BsE=>WO4>c z>I2sE?fXutLytPqJHeh^La&xk~L>q9mRG=JMf3ZPbMdCN$nx5|#s$*63u8meWk zS)eW%mH}$IQUNtn%;(Jla)qL0s`#eD70bx1h +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:15:25 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:15:10 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putstr_fd(char *s, int fd) +{ + if (s == 0) + return ; + write(fd, s, ft_strlen(s)); +} diff --git a/libft/ft_putstr_fd.o b/libft/ft_putstr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..d95d8d6f7f7c9f2cf4c5e4d35462d96ddb724970 GIT binary patch literal 1664 zcmbVL&ubG=5S~qHTQ$`v9)zld9z@YT5-VB@YTB^LBGH02$FgkFjTQ5Y&0B4S+CxEH za_QgU$)iWngLskt6M~=@v4Nl=S{ZtaxtN4phSavFz^%# zkWYqe-^{}lq~Oo#OMfed_ubg}l{UPszUS^6J6nB_Ge%GE8{U^66l{2(jNZe3Pv1AZ zZ;buacE5gxQlYSrxl*aRE$L?Nh&hp+&E0l=H~0ERR%CBp4PY)mhB}Ss7@pFj3M2qN z5~kWahc=1!>M>{=X>B?+F}aH$bOA9sB=_k@Kb3xyC`^sNzyR_`2+d*)ejmhLCu1i? zy{K-6SxL+kCrKEOgE7m*2t2;yq(7Bm3eDKpcK|1P*m+c3jz& zj#*z5wILVGQh9l4v1~3Ei%;|wb7gUkz zh42jH`2Ms50}^Vp1)|#Rf~d8dO}m9yt1WGTJ2l&t zR_!_aPg}0&IPH$@$W0J_27BGCJ64k$A5=b)l|dHmSabvOh>@uG3cMgz*`%lO(9H69 z!t$1fl4bA&YO13)=RD(=8INx4Hs41T +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/07 00:54:12 by apommier #+# #+# */ +/* Updated: 2022/01/21 08:09:38 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int fill_tab(char *s, char c, char **dest, size_t index) +{ + int i; + + i = 0; + while (s[i] != c && s[i]) + i++; + dest[index] = (char *)ft_calloc(i + 1, sizeof(char)); + if (dest[index] == 0) + return (0); + i = 0; + while (s[i] != c && s[i]) + { + dest[index][i] = s[i]; + i++; + } + return (1); +} + +static void call(char *s, char c, char **dest, int j) +{ + int index; + int k; + + k = 0; + index = 0; + while (j > index) + { + while (s[k] == c && s[k]) + k++; + if (!s[k]) + return ; + fill_tab(s + k, c, dest, index); + index++; + while (s[k] != c && s[k]) + k++; + } +} + +char **ft_split(char const *s, char c) +{ + int i; + int j; + char **dest; + + j = 0; + i = 0; + if (!s) + return (0); + while (s[i] == c && s[i]) + i++; + while (s[i]) + { + while (s[i] != c && s[i]) + i++; + j++; + while (s[i] == c && s[i]) + i++; + } + dest = (char **)ft_calloc(sizeof(char *), (i + j)); + if (!dest) + return (0); + dest[j] = 0; + call((char *)s, c, dest, j); + return (dest); +} diff --git a/libft/ft_split.o b/libft/ft_split.o new file mode 100644 index 0000000000000000000000000000000000000000..d99b9406744f9235ecf8eab9945db6eee89cadb6 GIT binary patch literal 2544 zcmbtU-D@0G6hE^Qo3^IiR8kRJWFJHn?YPleV-?vp-sB=lE4B-TQns7T#uhgp?9NCd zL<^&mVF=BeKKmE+N&1v7w05_BkkD4mV;>@H$v&(aaFFPF&YgSN*_$b}c;L>x_jf+- zIlpsuzhq-03Bv#-2D}fQn?eDu?&zE|;+TOw&iYUg*C6my=wq9dflvj-fv_1S5KQ7xsa<)Qp z8j75C2g&IMLvnP?p7dG33-#m*Tlcf5{R4|@@TK>j#eL1Y)j0ESyX~^Tpf<$5L~YQc zQX3w;%Yx*Ue7oJ=FqUse%Swf1iF!7vkQ!^z#@&SmIC};44--g<%UW1lYg=uf=^)j% zasCnJlwfxZGI!ags44!1SeKYE%YL@yW299aIPcc=omhn&E@ahR2tZBJ5wt>^&aeeE zY&9wyk}J--KfZ~C2RM-p8qmM~X}9ql+`a*$!^1~YFJ~v58QV#{W4&pm4-LNUi0j}N zZ=|jC;a5T!pa+BX<9Z6$=!q;O0IGzUxJU-V4UEq}2IEq{aiFhv=Q8q~Lj0iA?Wa*> zd;7mh4DZ>&T+{3|&??ktq|L9iE1SemLZ3qDJT8)V zRFkTz+shOzbYp#ZO+?~|8WGzsadj7UNmmmhe_9fw&4k{_t#dSin!jC4(T#5WdAw4e zbV(x+haW}!8O*;)M4D=jK$H!QX%t)n)nqFzTbCbG;9hasC-O(50v| Io^}8K0No?lDF6Tf literal 0 HcmV?d00001 diff --git a/libft/ft_strchr.c b/libft/ft_strchr.c new file mode 100644 index 0000000..d3699c2 --- /dev/null +++ b/libft/ft_strchr.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/12 13:57:59 by apommier #+# #+# */ +/* Updated: 2022/01/17 21:18:59 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strchr(const char *s, int c) +{ + char *str; + + if (!s) + return ("no s"); + str = (char *)s; + while ((*str != c) && (*str != 0)) + str++; + if (*str == c) + return ((char *)str); + else + return (0); +} diff --git a/libft/ft_strchr.o b/libft/ft_strchr.o new file mode 100644 index 0000000000000000000000000000000000000000..42dd88fa3c9300370e93d29c9593fb96b92b16e1 GIT binary patch literal 1656 zcmbtTL2DCH5T4C8X=|G%il9=FJ&B@yY*euEAi=P94$PvY|_VC zs=g{T%ca77^dKT%sAn_q<1lYm&+RDHBCDB>(v#|^IYN4Jn>>E@D4F=@7p%klU;Il) z_%bplGW91tA+IgI5%QqZ4OnMl1Dp{V=($kue;=k|WcbWe0$|~8k2`JDJV3toLe??jxc zC`VQ!>V)?T8*bym^c5fNGRt_^QXU6#!Ei$Y&yym q7o8J&5xHYI@sv}YJyNhL&Ob#UBO=|HIgVCd{0kA!$DXO7#{U7Dy@(_L literal 0 HcmV?d00001 diff --git a/libft/ft_strdup.c b/libft/ft_strdup.c new file mode 100644 index 0000000..58ead0f --- /dev/null +++ b/libft/ft_strdup.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strdup.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:12:43 by apommier #+# #+# */ +/* Updated: 2020/12/11 18:35:10 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strdup(const char *s) +{ + int i; + char *sdup; + + i = 0; + while (s[i]) + i++; + sdup = malloc(sizeof(char) * (i + 1)); + if (sdup == 0) + return (0); + i = 0; + while (s[i]) + { + sdup[i] = s[i]; + i++; + } + sdup[i] = 0; + return (sdup); +} diff --git a/libft/ft_strdup.o b/libft/ft_strdup.o new file mode 100644 index 0000000000000000000000000000000000000000..0c96dc8a428bbd0c29b9521a220e824eb4cf3f83 GIT binary patch literal 1704 zcmbtTO=}Zj5S~q9<40qo6f9I^K@i2}CDDSlprj3(yhyO1$x)U~x;0?FNOqwWs)vXe za_P~dSO0)`3<%ctl%L>5i0DPkA&5|CHt(Bk*6l?HCNuNwJTsG--RD|19Z(dIqQG64 zL=puk1t)&eagz{%S@=13=~te&zwp*~mA7~M``Un>ehamj z3c#@2$d;tnFv|wB%xw$UrePVt3e6_4Vy#j!tB6%=mdWs)h&3&v_(a5yt2V1QYIU<= z?ErHsm?eFyVN}dX&;RgL^O%l~DpTtrY1b7-P^^upC z_!WVB-?*=W=QUKrElU_s&41-5kV`e=sBV${ue(9?Wq)Z`U6?y{UM9FfpWJ(h(N{9{ z4q?0?_$vBtk^7Ta0Ub*9@>c|ZMJ5XC +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/01/20 21:44:01 by apommier #+# #+# */ +/* Updated: 2022/01/21 08:07:04 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin(char *save, char *s2) +{ + char *dest; + int i; + int j; + + i = 0; + j = 0; + if (!save && !s2) + return (0); + dest = malloc(ft_strlen(save) + ft_strlen(s2) + 1); + while (save && save[i]) + { + dest[j] = save[i]; + j++; + i++; + } + i = 0; + while (s2 && s2[i]) + { + dest[j] = s2[i]; + j++; + i++; + } + dest[j] = 0; + return (dest); +} diff --git a/libft/ft_strjoin.o b/libft/ft_strjoin.o new file mode 100644 index 0000000000000000000000000000000000000000..e3b3fdab2267c0203449ffa443e9f20aaf433a1a GIT binary patch literal 1896 zcmbu8&ubG=5XWb;{h_r#wTDVYauAJZ*Hi^<50W-)`;cIvZ9tF`HgRj!{3yvTv_h+} zB8FW26Z%(3Pg1B@=xM$6m_vn#Uc{RSIFpM2-d+xI5V_0(KMQ9zgi zcc7IC3J~jR#R)G=zyS2a_o4GY(yaPvi8)_mth#l?s>y1|sgp||il z;^@bUqt_L$oi*B~M#0NH`yD@*w3W;LvXu+cR;1=z)pYDnhr#~t2k&DV%y}Psu(A*H z$>el2md@Hm%Z^TIH?;V~ z*&-+#!^(Jn?}<0~Ko^joOgSWhz$r zN$GJ>%Sj1j=2Hu^GpWqN+}x7BoLQckP3ajf$eTqd82NlD2T6VaddpL|e*W@pu>&_G z-Y@B+oa0>3Y_v?PY!)md3mTr%_iG|5n|VXC%nb{)hlXW1$jHR|`I)a3G5K*^ zbe9QSvfbw+$vEsoPkqEBjd6aF^WX$8kvPPH_$q2>&ws6-#9G=jj!QPt|B4JT7X5{v zmY6Kv76KWDXzwDUe_h)QVg7>GM=_R7+@D}s3`iQR-{JKMA>=+-zk)pM{dV|;ig%*- yqgqifcvx?0RpLoPPUt@X literal 0 HcmV?d00001 diff --git a/libft/ft_strlcat.c b/libft/ft_strlcat.c new file mode 100644 index 0000000..374d9d1 --- /dev/null +++ b/libft/ft_strlcat.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:12:57 by apommier #+# #+# */ +/* Updated: 2020/12/12 15:40:58 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlcat(char *dst, const char *src, size_t size) +{ + size_t i; + size_t k; + + if (!size) + return (ft_strlen(src)); + i = 0; + k = ft_strlen(dst); + if (k >= size) + return (ft_strlen(src) + size); + while (size - k - 1 && src[i]) + { + dst[k + i] = src[i]; + i++; + size--; + } + dst[k + i] = 0; + return (k + ft_strlen(src)); +} diff --git a/libft/ft_strlcat.o b/libft/ft_strlcat.o new file mode 100644 index 0000000000000000000000000000000000000000..5e01a5a893df214eb7d3d57d1305658a29b25f3c GIT binary patch literal 1832 zcmbu8&ubG=5XWbeYW>mQcu=a6lRv0^rYdMFNZPXPL!t$3E`p?+xV2!DmSh)Np?Zjj zp%?!I?_R}oQLyMKf`?p$UWAAqDqe~R^*g)oHJf#F(Sf&b=CkwT?VH)hW_l`S7^KCZ zYt*zfC2GW*ddgE%)J14=0MrPi)|Qk{RX@EX9u4j%sx{wsfOJ{vd9r&g`tbJJ1H!~C?+F+)y?Fe)hTVTe9%Z`5x8{0}XGSf07?M5Mr2bpL$I_tiS@gIIjWDXbPzBRQwwA?#d7PtsAvPbnUr z;1lc|Az^$DKAiJk<3|w7Ig?mH(e;Od5W23f_ptyAx=QU3gb}{i!T7IhnIYIZJ^?)_ z`u;S_LE%#2_ytw}igr|cIQ}kpRR8AGh3YsG$>GnuJw5a$M1sC@`eI*?K2hq&ikpKVy literal 0 HcmV?d00001 diff --git a/libft/ft_strlcpy.c b/libft/ft_strlcpy.c new file mode 100644 index 0000000..05af28a --- /dev/null +++ b/libft/ft_strlcpy.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:13:07 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:38:48 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlcpy(char *dst, const char *src, size_t size) +{ + int i; + int j; + + j = 0; + i = 0; + if (!src || !dst) + return (0); + while (src[i]) + i++; + if (!size) + return (i); + while (size - 1 && src[j] != 0) + { + dst[j] = src[j]; + j++; + size--; + } + dst[j] = 0; + return (i); +} diff --git a/libft/ft_strlcpy.o b/libft/ft_strlcpy.o new file mode 100644 index 0000000000000000000000000000000000000000..b690afd4ee51661d388bb550d96b0c21a1618206 GIT binary patch literal 1552 zcmbVL&1+LZ5T8wIqqeqDdQd77y;#w%sUP@pkU)5L58^?1&`T*V@wEk;50ZV*2&qCu z47v2^pWw-(dJzhOg`RTEF&81wi{il`0iAi-P4+#Xmk!LEncvQDc6Mjq3+vIt7-OJ? z!2=ja8U;wk$9~3lGcXNP@N@RUZ(B6KiDtbgnqF5l?asb6pp1R1PewHAU62VhJ@BSJ z5p=lIu==cJ^+modT2@!E_Us3EwdeIPs{`J3T6%l9(y|8QjFyeTfoR!1!45F}O{`%J zm}nF__^Ef8oC~B63w|D9$ZCHD@GGx=f#q!Wermzac}3}^?(v&Ey|{G8^TVZ`8)=@t zb!7-szbF%^Nz`Mg%a3h{0qhZ`uVoH>688KFuGz()o7$7^wgmpvkq+=&wF*36Diquz zV#ShlIgV?wDxLf@6>k(hUapkNZbjCBSKKX!yPIq46{q0pE{<;JkxH`*-(W_S9NmM8 z!~fbv#0k^yN~OUs?SyQYe;L>5Ssj&s4Y^b^jcSVC|EdY1ulLvXwt<@jqD~Qo+&Y+sIs|ub~;0d(Ur{-%sYHy;v sRQrFY0Oceq)d=$m3(pQAD69R?QDBHFJ3>yQ7sY?4_#30lp%do+1@&E^S^xk5 literal 0 HcmV?d00001 diff --git a/libft/ft_strlen.c b/libft/ft_strlen.c new file mode 100644 index 0000000..5ac9d2b --- /dev/null +++ b/libft/ft_strlen.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:13:19 by apommier #+# #+# */ +/* Updated: 2022/01/17 21:12:05 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +size_t ft_strlen(const char *s) +{ + size_t i; + + i = 0; + if (!s) + return (0); + while (s[i] != 0) + i++; + return (i); +} diff --git a/libft/ft_strlen.o b/libft/ft_strlen.o new file mode 100644 index 0000000000000000000000000000000000000000..b58b4b1ece7e3189824ec223ca0a0a028812d7b4 GIT binary patch literal 1424 zcmbtT%}X0W6n~qwezdX1A}B;kJk?Si;z#l0pnQH5XNsQ|CzMUtcGD%a&^06HEg3c zbOYzr@Q%>tH(1MNms69ueCY8owZ!IFdU|FdjNr`I*)&VfzirYq8Cnl|0{t2K+IkLf zTUFvrbh43V0OQLB7)J>s8Sm@A#D>O^CnsB_kM%Nf5z7wt9^wGPPZ*s=5B&bqt!#EZ zDcXy2Sc=eW?NT8zHKT4iIYK7%{!K=F-xEBYM5hfRe5LF&>Yavc^R0mU`>w|d?HnLQ zH8kp=qYD-s7rB!MhN@=Vl^J)BIIzzScYx)C09c_^EV>?YUWvO5uW35qPGL{r9WP`D ze(AvV`7tox-FKL~yS42*MK@adzdlJ+)1B!jml3nJ`WKkSsy2auIQgDr?NlaO)b($$ zPVebo^;4*&In(H>$@Sl3rh%)H^&L$RU zPF-IUf<-A5QP+P$o?dZA)MZGB3C9F6fRXko^^)(lHc9$LqrV8CJx8ZGbUktU-5~`H ap&uonn4nwCFlOEKlVblnt&z<{*FOSWN@pnm literal 0 HcmV?d00001 diff --git a/libft/ft_strmapi.c b/libft/ft_strmapi.c new file mode 100644 index 0000000..a983137 --- /dev/null +++ b/libft/ft_strmapi.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strmapi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 19:03:09 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:39:05 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) +{ + char *dest; + int i; + + if (!s) + return (0); + i = 0; + dest = (char *)ft_calloc(ft_strlen(s) + 1, sizeof(char)); + if (!dest) + return (0); + while (s[i]) + { + dest[i] = f(i, s[i]); + i++; + } + return (dest); +} diff --git a/libft/ft_strmapi.o b/libft/ft_strmapi.o new file mode 100644 index 0000000000000000000000000000000000000000..7952445665806c4e52e3ff00edcfff941b07138e GIT binary patch literal 1784 zcmbu8-)j>=5Xa|owbj}tQG8HaBo87H?V9)lZ3RgiE;%H%V4Ei?;S#S_%rBBVXoad6 z5knCC7yJu+lRTAzLSEyG^bd#-QIO)B2yy0aH@Tdb7aiEl%xCAjJGZ-es-zM=NdjRK z+=4+SC_qyl#4#(3!8A<4&%l{qX|?`kRjqvwtM#3IwQjc6+Ri?hlTE7o`W$~+N{3># zq2PS0YsIxaX_t2DgSyg1VHeDsmhfAup>)(-+Y(9bzwUWa*hNt$<)fyVk)zeNUSPrnYG2Gl#<~E zdA&$cPRr*@IlF^vyb-$7qd0!|Y)d%!l!J#j$9F()VPLGfT`;sPFzm|qn{d5szR zmI3U(W@x~&)he)DsZh|1$ciOHXZW_}s)m+(#PbJ5la(u_vR*N^fmti)o0*M@R?r7~ z{znu-Exj@K3y2{j6Zd6jcCCoX&)}dli{ThD{sbc&PNJuM#LGF!`8m$rFZKtYcRO0c zX%{h}HUCu~MJ=r<`oz#OvHt}DxEK2izkpoC&eGFf(4+P?GWwSdy&=p)Tpz;NY2y3@ z%VI#KZhegFW1^6Iw|*VD*ZoEKfr@*g`y;K;3+}ZyZS{=re}jAaPaW~l6La4kB53jt Yic{h+zFeOi!^lgoa+vQ|+JRgD2cTiPFaQ7m literal 0 HcmV?d00001 diff --git a/libft/ft_strncmp.c b/libft/ft_strncmp.c new file mode 100644 index 0000000..6de7048 --- /dev/null +++ b/libft/ft_strncmp.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strncmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:13:31 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:39:13 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_strncmp(const char *s1, const char *s2, size_t n) +{ + int i; + + i = 0; + while (n && (s1[i] || s2[i])) + { + if (s1[i] != s2[i]) + return ((unsigned char)s1[i] - (unsigned char)s2[i]); + n--; + i++; + } + return (0); +} diff --git a/libft/ft_strncmp.o b/libft/ft_strncmp.o new file mode 100644 index 0000000000000000000000000000000000000000..2bda45417be2a37270f882e631f3372c99a1df1d GIT binary patch literal 1544 zcmbVL&ubG=5T4D}wrcH0@t{OxJ!!Fhr2fF_K_X%89>jwX&_gMkblZULCM0hm6{?3+ zG1P;9f;X?8g2zw~_LyUiy$FR~6mJrUGn@C)m)G^uf!R0nz4>P5&3pUSdGa`A7$C)f zhj8Rc6kyssvU9PSgBdsrf2^y23vTPD+uAyCThYGTD)fFheTq1IvE%gJQrF#a4qT&a zwbQY`hyK26>{)GC+U4_F3|Q^19%i*WbGxnX;Ul*h^o*v{H{9k{4~}!UJJH8cKCFQ? zVY_3!~a&fE~Dcz_AiH0mkT z<);Nm0dxqH%@%nVFjYgaf>S7%9nD`Z%-c_o@83$T-P3j88L;k!Ql>aWKZG{)5vb#$^`W3re5y*(qe5uhw}jECp3o zQXI*)g+V77I}NLE2HYzGL-uejON;vr4s6Zi9TBYjO_$IKL|H@;2d3C+!1-|U!F=jQ}}NhPDL^PeL|uQ`XR$_J6~k^oQRN_|Sc#FJ_hr6KCeIi5j`a_D@*^t(d{ b%A)>daugA1N62}!lK7tme`6FmG<5zyXltJ{ literal 0 HcmV?d00001 diff --git a/libft/ft_strnstr.c b/libft/ft_strnstr.c new file mode 100644 index 0000000..e993e0d --- /dev/null +++ b/libft/ft_strnstr.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strnstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:13:42 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:39:28 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strnstr(const char *big, const char *little, size_t len) +{ + int i; + int j; + + i = 0; + if (!little[i]) + return ((char *)big); + if (!little[i]) + return ((char *)big); + while (big[i] && len - i) + { + j = 0; + if (little[j] != big[i]) + i++; + else + { + while (little[j] == big[i + j] && little[j] && len - i - j) + j++; + if (little[j] == 0) + return ((char *)&big[i]); + else + i++; + } + } + return (0); +} diff --git a/libft/ft_strnstr.o b/libft/ft_strnstr.o new file mode 100644 index 0000000000000000000000000000000000000000..710f7d2f05bec90e3fd5ba90131c899a889d0315 GIT binary patch literal 1672 zcmbVL&ubGw6rRb}{<1bvM3joelSbPit%|J&352zCP!B@DODUUl+kz%3n^|ZD>!DT* zxp?eF@ajJx9z#4d$K1@Z7a`J%;$@LQd~Y+8&TiIAAH2+a-}}BdZ+0ec%*T&nloDl> zJR~QXLJ4_qoWvPF%#bN^mi&od`jHQujbl^riYB0>G48~*UTeMTk$XC zZQY%Ktn(AA!^QaiSHOM3cL)y6F8l(ot2asbx+bzXZ9>zotRL{DhWmM#>Ba}c!w{|GS=>JW`G*xg4Vswk_&)3P zdU!mt@{KHKvk#Itb9uKU+~g9w!_sr}_gz1o-(5(v^xae+M*awR0{jg4^3xoN5mHA? zUB^X;(desZgl;G3%+%QU2e`nifT5!;;DwsgiFdK=xltoUf#Ty)KS&)Rzk5+NBl2b7 zEHG7s8G|W&6Urv%OlTB6iR8Q@6* zr(u +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:13:52 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:39:37 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strrchr(const char *s, int c) +{ + char *str; + char *last; + + str = (char *)s; + if (c == 0) + { + while (*str) + str++; + return (str); + } + last = 0; + while (*str) + { + if (*str == c) + last = str; + str++; + } + return (last); +} diff --git a/libft/ft_strrchr.o b/libft/ft_strrchr.o new file mode 100644 index 0000000000000000000000000000000000000000..b5043c9244463dcb7597d691299c848b7c4de7df GIT binary patch literal 1472 zcmbVM&ubG=5T4EUr?yQL50w^KPbzI6TeaAFkcF^z58^=x^is-ZyJ^5CDZ6i>6{?3y zA@t%O;@P7FJoqPQ?G39fEREX zNfe+{xb&UObzll^!tdg}KNYWi=Cu#c+ez0uanHTBn;so@A(`!sdPi<*Aea`vz{gIK zlG|JHzPo*@(VG{k;@8fa+f61YM0#JNog&`f{08gg@^kB9rJ6K(Vy&?!%wAf4mSo}b z`^Pr3pFSGE03%qwggT14{<;F#eupp&~ih_E?0ws`aOE`3rq0_MVpuznrFk}yGU3xs+=fJjo?gOjFF|eT3 zXoO9~nk^nOyso8~`@vfg?=%y(7q#}nh#vrp!d;(*^{rauH$vIP_3a!|>F)FiI-=yo z97L>t8}|_>Ouj3z3_eRovpW9)=IL2om%oTys%fLDBKKcVLG +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 23:52:05 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:40:17 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int is_set(char const *set, char c) +{ + int i; + + i = 0; + while (set[i]) + { + if (set[i] == c) + return (1); + i++; + } + return (0); +} + +static int len_dest(const char *s1, char const *set) +{ + int len; + int j; + int i; + + i = 0; + j = 0; + len = ft_strlen(s1); + while (is_set(set, s1[i])) + i++; + while (is_set(set, s1[len - j - 1])) + j++; + len = len - j - i; + if (len < 0) + len = 0; + return (len); +} + +char *ft_strtrim(char const *s1, char const *set) +{ + int j; + int i; + int len; + char *dest; + + i = 0; + j = 0; + if (!s1) + return (0); + len = len_dest(s1, set); + dest = ft_calloc(len + 1, 1); + if (!dest) + return (0); + while (is_set(set, s1[i])) + i++; + while (s1[i] && len - j && len > 0) + { + dest[j] = s1[i]; + i++; + j++; + } + return (dest); +} diff --git a/libft/ft_strtrim.o b/libft/ft_strtrim.o new file mode 100644 index 0000000000000000000000000000000000000000..3dece199c2db5ee073fa022faafbee65a853bb7b GIT binary patch literal 2264 zcmbtWO=uHQ5S~qH<4@aEQ4stgc<`@wNwwfFl3HH7N>H%|L@Y5)x3)A%OR@{85PL`! zLlHdo?A41GwWkv3At)Z|MSHBEP)!aIdk7MYGjHEZlXVZG18-;EH}lQRo3{%)%Yp+g zMFA-aT!hV?L;)7IY}x^C2B00<;D`6%&ybe;qUAE{x$f@NzwAw&bJ4TFzV(c?+yUF+6RquugW4Z4_Ia zGJ2P&{95jVhLJ#f1zraeQv}|S-%W%G)*utXE0 zhB-HfO=dF{Fn4f%F`Z>)Y`$zwcGa4!)%J>&Zt|Bn=aHtc`A|uVzQxiNO?ivA@z_O~ zvaIw+wz<5~fz6y}C8L$jJNp`&t-M)=!T$bpzN4WLGhvv%v+60;-`#WCJR!tz}p9OXGZ>i%bS{~f|nzR{!Z|HSG%s zxOFw;;b%i^kHF=gpGi>N&?>BE;s}If$FzLbKx_Zs~sP(u;r-ei89q)ISXh zh0hlCWn512FlK~PM$$-5#MLNFq{1oPfS8^LkLoD{!h^wUm->R?YXbvA>}L38-=!c6 z3kn7`kjacjVzH?xRRx%}6rXS#+Ex5|NN$V1=pCb3OWcPx3BG@P@eMu#!jQO}|6Lm{ z&kJg5CT>JVP~)k%9+y^9k402NPaB|)MvMrkBdHXq(W!V`Pau|UT*xG>;7(+S#mEVJ0$|?IqlZ&k1B>|yjeW}kO zF73w9&|mg{1xfUk+QV-Nz}J`*Z8<*)kDx*I?fkR=(lStJJAW8)r~6wI_ooRS-5+r! zU*4ZnZK9M#{c$mz9f;Ag^S2>pzdMBBmZ(2On+CDZdMEmv_(#QmNUVWNrk(#A|HWc? literal 0 HcmV?d00001 diff --git a/libft/ft_substr.c b/libft/ft_substr.c new file mode 100644 index 0000000..7e4d95b --- /dev/null +++ b/libft/ft_substr.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_substr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 22:54:40 by apommier #+# #+# */ +/* Updated: 2020/12/16 16:45:34 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_substr(char const *s, unsigned int start, size_t len) +{ + char *dest; + unsigned int i; + + if (!s) + return (0); + i = 0; + dest = malloc(1 * len + 1); + if (dest == 0) + return (0); + if (start > ft_strlen(s) || len == 0) + { + dest[i] = 0; + return (dest); + } + while (len && s[i + start]) + { + dest[i] = s[i + start]; + len--; + i++; + } + dest[i] = 0; + return (dest); +} diff --git a/libft/ft_substr.o b/libft/ft_substr.o new file mode 100644 index 0000000000000000000000000000000000000000..e1a5dab0076713ff9bdc35a3b119342aba1eb15e GIT binary patch literal 1824 zcmbu8-)j>=5Xa||+GuTU6~RJ90*X|$OQHqSQcBuz?IE!h+khe^Uh36?`9*Svtx$c4 zs7GG>Qv^Z!SghFMQywbxQLsWpU!-p$)S12A+ZBrP<%+w93zzX0Pqq){bVUwzbOIE?8abB>nytf40;; zinXeWa~q0gZ`FBjt98`Y8`_shs|!1*+ihq@HXnyjv<=o+HMNIRbxo;#P^(7Q1hwx9lQ!?mE5*cQTG(SgxTMwN7eHUYrSo0t@0suZ($Rr6N%CA zU@BwfO)EUYuCd5a^t#2<=+mna78$wN?fB zzi4HY1);MYavnN_`=2_P1S2h&robMiYtb_NICr`LuM`0?RGI4qgzvXv>DCAQd% zAw8X(ot#LfXQ!s-)cN%M#AH%ULr%|T3y#bzWsN+pIVKK3y*!TN&w*q2UA)`H!-8Y~ z=?yfEl~;47o&knOas0B3N=8;^rma8z|`nVJd@2y`z?$^IN;zDJgsDD%|>m~Qw to3?r*_Kyiq-_$XmdSc$*A%eR2L*taVOf1(RCo%G?FAA7#D4oDt{}<1|&QAaU literal 0 HcmV?d00001 diff --git a/libft/ft_tolower.c b/libft/ft_tolower.c new file mode 100644 index 0000000..d375233 --- /dev/null +++ b/libft/ft_tolower.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_tolower.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:14:05 by apommier #+# #+# */ +/* Updated: 2020/11/29 17:20:51 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_tolower(int c) +{ + if (c >= 65 && c <= 90) + c = c + 32; + return (c); +} diff --git a/libft/ft_tolower.o b/libft/ft_tolower.o new file mode 100644 index 0000000000000000000000000000000000000000..73e4ed48b35e34c0212e43c46fc6f3139169d76e GIT binary patch literal 1400 zcmbVL%}N_l6h4zlO>6y$;-W<<(^VDq5`T)Vi!u;KU6d{gp+yj##8JT{BQrNN7Sx3x zh#McJk5KR>d;!6w;zlIUo|CyJxw*!T2kw05eCK@kp8GRL-q)p+WdWN7U!WZ^3s6tB zeYfel&ltl!_ks%NdyzRb&WYP0&YO=!2e)JSyg=59JUifrh4Og8z< z6Fi+nrww2@to7+|dP}a$upIshB2j{Nz-g|dopkI*#QPQL7eT}_N^plg8Pp|+O<(#T zig6606jmxh6}f6C1A*5y9ZSEotK#iyP3%SCUJ%KB5K&O}MX +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/11/29 00:14:15 by apommier #+# #+# */ +/* Updated: 2020/11/29 17:21:12 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_toupper(int c) +{ + if (c >= 'a' && c <= 'z') + c = c - 32; + return (c); +} diff --git a/libft/ft_toupper.o b/libft/ft_toupper.o new file mode 100644 index 0000000000000000000000000000000000000000..5818e5c13d2ba330a8e0c3f387dff29c6a765364 GIT binary patch literal 1400 zcmbVL%}OId5U$BY-Suzd;$as>#*>O`6aP^6umnQXgLn{vUc^k|sIWUpnCXEis0Tq1 zFFwjX!ot49zQBS<#fwNlt1?|lr;Qg2dcLZ!>g%rlne*JnYQnOB&4M4$ikJncC0c%_ z;bx#8`rzTy*i(M}>i^Yg{o=G3IGmLJCJ0jN1fX=-$Qxir+BWYZC6CJEiT8CqcbvhoK4WW|ta?uHD#8J4cZX-LJ_8-}44f zC(&+$7=G6JbU1w=_hcoiR=q%!pcQbM>u4u!yAk2BFWn-DPzEs`u_wKn1hMZ*7ep}( zL6j=K@0F1&SEMKKx@JP@mVT=EupEhMP{9u5F^ItXoYEDoL+jZ2b#}1 zrgG@eD{H%ZjBiwdqmaS;hjuYRbDH|!O0djAg{FQ7d3wzmm1lTVjeb$YM?~tA^~`r# une~ literal 0 HcmV?d00001 diff --git a/libft/get_next_line.c b/libft/get_next_line.c new file mode 100644 index 0000000..24ca95c --- /dev/null +++ b/libft/get_next_line.c @@ -0,0 +1,100 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kinou +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/10/23 07:55:17 by kinou #+# #+# */ +/* Updated: 2021/11/01 10:21:35 by kinou ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_free(char *save, int *end) +{ + if (!*end) + { + free(save); + free(end); + return (0); + } + free(end); + return (save); +} + +char *set_line(char *line, char *save) +{ + int i; + + i = 0; + line = ft_strjoin(save, 0); + while (line[i] && line[i] != '\n') + i++; + if (line[i] == '\n') + { + while (line[i++]) + line[i] = '\0'; + } + return (line); +} + +char *set_save(char *save) +{ + char *delete; + int i; + + i = 0; + delete = save; + while (save[i] && save[i] != '\n') + i++; + if (save[i] != '\n') + i = 0; + save = ft_strjoin((save + i + 1), 0); + free(delete); + return (save); +} + +char *next_line(char *save, int *end, int fd) +{ + char *delete; + char *dest; + + while (!ft_strchr(save, '\n') && *end > 0) + { + dest = ft_calloc(1, 1 + 1); + *end = read(fd, dest, 1); + delete = save; + save = ft_strjoin(save, dest); + free(delete); + free(dest); + } + return (save); +} + +char *get_next_line(int fd) +{ + static char *save = NULL; + int *end; + char *line; + + line = 0; + if (fd < 0) + return (0); + end = malloc(sizeof(int *)); + *end = 1; + if (save == NULL) + save = ft_calloc(1, 1); + save = next_line(save, end, fd); + line = set_line(line, save); + if (ft_strlen(line) > 0) + { + save = set_save(save); + save = ft_free(save, end); + return (line); + } + free(line); + save = ft_free(save, end); + return (0); +} diff --git a/libft/get_next_line.h b/libft/get_next_line.h new file mode 100644 index 0000000..35d74d6 --- /dev/null +++ b/libft/get_next_line.h @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/14 05:58:49 by apommier #+# #+# */ +/* Updated: 2022/01/17 21:45:15 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GET_NEXT_LINE_H +# define GET_NEXT_LINE_H + +char *get_next_line(int fd); +char *ft_strjoin(char *save, char *s2); + +#endif diff --git a/libft/get_next_line.o b/libft/get_next_line.o new file mode 100644 index 0000000000000000000000000000000000000000..46cf0ce20e38d333d5b015101e9ce5ecc2112ee2 GIT binary patch literal 3704 zcmbtXU1%It6uy&4Wqs4|x$H3AoaLL4xsockbOiJG0#SCATYx4YU@1ZGatJkJg~S2tn&l&l+Al$XR%d2=zHGTbn9B zO4r&#N}H6@W`mS!F+Zgs=C&w8P~5O76}7Rt&Ev@QiPojoqmR#vudGikHBpLpP*}ef z9@V0Fx?HqYegtTH57nW1KNHichtkO1*u^+mV*a=iiq4%N9=cLkm@c(SMpbpX1|5X1 z;zD#@b9Z)jU{iaF-rR=0Y?aAP%+GCz*;aW!e&3+=o!!*woVO5mS>8{(_!P`-qTj!S zE%43xD&L|Q-=LjRvJb2IEB!vnAg?9g9QIq?(AARLuY*-C9uGh#MC^<}DXsFlS;M3< zZfGtyeE%*bG&($dGIk_BQOLN3SigD9?CI`(xgeLlANKW_J;z`4VI(g^Gqor+1RXsS z7gXmGun09smp=&Oz1M^>6EzOBwd}r5=XH>9G{`tQt0VeJ({TH)rV+C6bpyajzCl;f z->m4*11GtOuA={}qW=Im$+ze#`mZbcFMyNmL;bWq(q>2lsj2T^+ARLusn=l7(AG<& zavHU|h&;Vo>={}b49E4;5)r%fv}TNmmYTI*LpO8=OuC85oa2bZ=-BwssjdEDrCmD|SSLgG-!ZCnLWcQX6GLhSzu!Q0hCk2Aw}SMRG!;c(;Ud6?PrI(CQH4={Vq zKOABoqj(U+RVmB$pzN!-exEJ`aQzN_9KiKE^i=@Y?}sq+v(s*Jf<`yzk5hV z7K4DYS3iHX65=S$z!@~Zt^gfRI|SFgqyT4+Hc+GXe<^_L_5F0{9{-!3FbdRI&cR4SCzl~gYG~4-y~hb`k`PXGyWid(}=C(>-sf{4VN1r qB{`xJ!@q5y4EjG!SfisVsSCMCdM?59!&}_Q|DMV}&7El;^#2!QkLsKN literal 0 HcmV?d00001 diff --git a/libft/get_next_line_utils.c b/libft/get_next_line_utils.c new file mode 100644 index 0000000..a8fde1b --- /dev/null +++ b/libft/get_next_line_utils.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/14 06:05:54 by apommier #+# #+# */ +/* Updated: 2022/01/20 21:58:39 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin(char *save, char *s2) +{ + char *dest; + int i; + int j; + + i = 0; + j = 0; + if (!save && !s2) + return (0); + dest = malloc(ft_strlen(save) + ft_strlen(s2) + 1); + while (save && save[i]) + { + dest[j] = save[i]; + j++; + i++; + } + i = 0; + while (s2 && s2[i]) + { + dest[j] = s2[i]; + j++; + i++; + } + dest[j] = 0; + return (dest); +} diff --git a/libft/get_next_line_utils.o b/libft/get_next_line_utils.o new file mode 100644 index 0000000000000000000000000000000000000000..2ca9c14d18822d513681632429465afc6231fd5b GIT binary patch literal 1912 zcmbu8&1(};5Wr`%{m|OlRtpv?5=6A3T~ZaSJxJQH?Nfq_>LD5CZXJL#h{gk_ z=PjWxpNLmf%-*XJVC7v5y+$YK4Z)Xp+WMjg!9p@e2S70fR{beZ+0!vXgU#g;Ff7%T8_dfWCsWJEc=>4T# zm`$Z7=2VtNrvhM zq{s6hZ45{wz1_!N;saekewKebO%JA?9C#i}^>wMPEO$zn#Xq(&RMG+8kD@-ykrP0B z61!@xlKoS(GKysA`V;!RyA6-twCvwbYsnc5PX+er-vP4osC1uUnLrT5r`vE?F>K8; zHf+sYvkc9#*UXZVgJoMQ*~N#2H4C)a^xX7RTAQ1hSx^_X#i{AEs__KVupqCSW+5l` zk>U=$?FrOhM|GKR!}S2~4dll;$2p-{X^K+X%-ebv6x?6kt_rVcn7U%)SwMN9+d3%O zQVEn?A)hxaWLCj86r8=WlC9?+@p#2@l=Wg^-6-0dp!h2otJ-o=&l}C2|KY{4mS!+K zAxUH;;yvq8Jy-Z-M^Nc5lc+&i_JO?#AFR~ev$L=L@!WsgoN=`%%L^^wSF9H zY0U&`P(=SLL5RNSFYIK11yi?0LJ&se-bF@#Vap6*{FK+n(GQBaKf$u-P-?jT6|YZ< zL~g_NOUR?%?=`YPTkU{jK O>OXR5HZto@xc)aUmh4{u literal 0 HcmV?d00001 diff --git a/libft/libft.a b/libft/libft.a new file mode 100644 index 0000000000000000000000000000000000000000..03fce54fd764c87e899f1f60e5b64230bba3dec7 GIT binary patch literal 63878 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 literal 0 HcmV?d00001 diff --git a/libft/libft.h b/libft/libft.h new file mode 100644 index 0000000..9976227 --- /dev/null +++ b/libft/libft.h @@ -0,0 +1,76 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/11 03:21:27 by apommier #+# #+# */ +/* Updated: 2022/01/20 21:46:04 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef LIBFT_H +# define LIBFT_H + +# include +# include +# include "get_next_line.h" + +typedef struct t_slist +{ + void *nbr; + int index; + int swap; + struct t_slist *next; +} t_list; + +void *ft_memset(void *s, int c, size_t n); +void ft_bzero(void *s, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void *ft_memccpy(void *dest, const void *src, int c, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +size_t ft_strlen(const char *s); +int ft_isalpha(int c); +int ft_isdigit(int c); +int ft_isalnum(int c); +int ft_isascii(int c); +int ft_isprint(int c); +int ft_toupper(int c); +int ft_tolower(int c); +char *ft_strchr(const char *s, int c); +char *ft_strrchr(const char *s, int c); +int ft_strncmp(const char *s1, const char *s2, size_t n); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlcat(char *dst, const char *src, size_t size); +char *ft_strjoin(char *save, char *s2); +char *ft_strnstr(const char *big, const char *little, size_t len); +long ft_atoi(const char *nptr); +void *ft_calloc(size_t nmenb, size_t size); +char *ft_strdup(const char *s); + +char *ft_substr(char const *s, unsigned int start, size_t len); +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_putchar_fd(char c, int fd); +void ft_putstr_fd(char *s, int fd); +void ft_putendl_fd(char *s, int fd); +void ft_putnbr_fd(int n, int fd); + +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **alst, t_list *new); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **alst, t_list *new); +void ft_lstdelone(t_list *lst, void (*del)(void *)); +void ft_lstclear(t_list **lst, void (*del)(void *)); +void ft_lstiter(t_list *lst, void (*f)(void *)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), + void (*del)(void *)); +t_list *ft_lstbeforelast(t_list *lst); + +#endif diff --git a/main.c b/main.c new file mode 100644 index 0000000..8976e6c --- /dev/null +++ b/main.c @@ -0,0 +1,228 @@ +#include +#include "./libft/libft.h" +#include +#include +#include +#include +#include +//#include "mlx_int.h" + +typedef struct s_data { + void *mlx; + void *mlx_win; + char **map_tab; + int item; + int move; + int bear; +} t_data; + +void quit_game(t_data *img) +{ + int i; + int j; + int *image; + + i = 0; + j = 0; + printf("quit game\n"); + image = mlx_new_image(img->mlx, 13 * 32, 10 * 32); + //mlx_put_image_to_window(img->mlx, img->mlx_win, image, 0, 0) + mlx_clear_window(img->mlx, img->mlx_win); + mlx_destroy_window(img->mlx, img->mlx_win); + if (img->mlx) + free(img->mlx); + //if (img->mlx_win) + //free(img->mlx_win); + while (img->map_tab[i]) + free(img->map_tab[i++]); + //if (img->map_tab); + free(img->map_tab); + exit(1); +} + +int *choose_bear(t_data *img) +{ + int *buffer; + int img_width; + int img_height; + + buffer = 0; + if (img->bear == 119) + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/back_bear.xpm", &img_width, &img_height); + else if (img->bear == 97) + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/left_bear.xpm", &img_width, &img_height); + else if (img->bear == 100) + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/right_bear.xpm", &img_width, &img_height); + else + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/front_bear.xpm", &img_width, &img_height); + if (buffer == 0) + return (0); + return (buffer); +} + +void print_case(char type, t_data *img, int y, int x) +{ + int *buffer; + int img_width; + int img_height; + + if (type == '1') + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/snow_tree.xpm", &img_width, &img_height); + else if (type == 'P') + buffer = choose_bear(img); + else if (type == 'C') + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/honey.xpm", &img_width, &img_height); + else if (type == 'E') + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/exit.XPM", &img_width, &img_height); + else + buffer = mlx_xpm_file_to_image(img->mlx, "./sprite/back.xpm", &img_width, &img_height); + mlx_put_image_to_window(img->mlx, img->mlx_win, buffer, x * 32, y * 32); + //free(buffer); + mlx_destroy_image(img->mlx, buffer); + //free(buffer); +} + +void print_map(char **map, t_data *img) +{ + int i; + int j; + + i = 0; + j = 0; + img->item = 0; + while (map[j]) + { + i = 0; + while (map[j][i]) + { + print_case(map[j][i], img, j, i); + if (map[j][i] == 'C') + img->item++; + i++; + } + j++; + } +} + +int change_map(t_data *img, int y, int x, char *change) +{ + if (*change == '0' || *change == 'C') + { + if (*change == 'C') + img->item--; + img->move++; + printf("%d\n", img->move); + img->map_tab[y][x] = '0'; + *change = 'P'; + } + else if (*change == 'E') + { + img->move++; + printf("%d\n", img->move); + if (img->item <= 0) + quit_game(img); + } + +} + +/*void choose_bear(t_data *img, int type) +{ + img->bear = 0; + if (type == 119) + ; + else if (type == 97) + change_map(img, j, i, &map[j][i - 1]); + else if (type == 115) + change_map(img, j, i, &map[j + 1][i]); + else if (type == 100) + change_map(img, j, i, &map[j][i + 1]); +}*/ + +int is_good(char **map, int type, t_data *img) +{ + int j; + int i; + + i = 0; + j = 0; + while (map[j] && map[j][i] != 'P') + { + i = 0; + while (map[j][i] && map[j][i] != 'P') + i++; + if (map[j][i] != 'P') + j++; + } + img->bear = type; + if (type == 119) + change_map(img, j, i, &map[j - 1][i]); + else if (type == 97) + change_map(img, j, i, &map[j][i - 1]); + else if (type == 115) + change_map(img, j, i, &map[j + 1][i]); + else if (type == 100) + change_map(img, j, i, &map[j][i + 1]); + else + return (0); + return 1; +} + +int test(int code, t_data *img) +{ + printf("code = %d\n", code); + if (code == 65307) + quit_game(img); + is_good(img->map_tab, code, img); + print_map(img->map_tab, img); +} + +int main(int argc, char **argv) +{ + t_data img; + char *map = 0; + char **map_tab; + int fd = 0; + char *swap = 0; + char *del; + + img.bear = 0; + img.move = 0; + img.mlx = mlx_init(); + img.mlx_win = mlx_new_window(img.mlx, 13 * 32, 10 * 32, "Hungry Bear"); + fd = open(argv[1], O_RDONLY); + swap = get_next_line(fd); + while (swap) + { + del = map; + map = ft_strjoin(map, swap); + free(swap); + swap = get_next_line(fd); + free(del); + } + img.map_tab = ft_split(map, '\n'); + print_map(img.map_tab, &img); + free(map); + mlx_key_hook(img.mlx_win, &test, &img); + mlx_loop(img.mlx); + printf("heeeeeeeeeeeeeeerreeeee\n\n\n\n"); +} + + + + + /*img.img = mlx_xpm_file_to_image(mlx, "./sprite/back.xpm", &img_width, &img_height); + if (!img.img) + return 0; + //img.addr = mlx_get_data_addr(img.img, &img.bits_per_pixel, &img.line_length, &img.endian); + //my_mlx_pixel_put(&img, 5, 5, 0x00FF0000); + /*while (i != 320) + { + j = 0; + while (j != 320) + { + mlx_put_image_to_window(mlx, mlx_win, img.img, i, j); + j += 32; + } + i += 32; + }*/ + //offset = (1920 * line_length + 1080 * (bits_per_pixel / 8)); \ No newline at end of file diff --git a/map.ber b/map.ber new file mode 100644 index 0000000..52dc518 --- /dev/null +++ b/map.ber @@ -0,0 +1,10 @@ +1111111111111 +1E110C00C0001 +1000P01011001 +10C011C001C01 +10C011C001C01 +10C011C001C01 +10C011C001C01 +10C011C001C01 +10C011C001C01 +1111111111111 diff --git a/sprite/back.xpm b/sprite/back.xpm new file mode 100644 index 0000000..b232879 --- /dev/null +++ b/sprite/back.xpm @@ -0,0 +1,41 @@ +/* XPM */ +static char *_49dd254199246a1977f20555a1f9063nPJ1VTqEOaIleAR1[] = { +/* columns rows colors chars-per-pixel */ +"32 32 3 1 ", +" c #6E924D", +". c #4D733E", +"X c #87B055", +/* pixels */ +" ", +" ", +" ", +" ", +" ", +" . ", +" . . ", +" . ", +" ", +" ", +" X ", +" XX ", +" X XX X ", +" X X.XX ", +" X X .XX. ", +" X X .. ", +" X ", +" ", +" ", +" X ", +" X X ", +" X ", +" ", +" ", +" ", +" . ", +" . . ", +" . ", +" X ", +" X X ", +" X X ", +" X " +}; diff --git a/sprite/back_bear.xpm b/sprite/back_bear.xpm new file mode 100644 index 0000000..5670276 --- /dev/null +++ b/sprite/back_bear.xpm @@ -0,0 +1,77 @@ +/* XPM */ +static char *a0abf2d8550b4988d16f9b5953af240c1ODMacj9TddNcz6M[] = { +/* columns rows colors chars-per-pixel */ +"32 32 39 1 ", +" c #6E924D", +". c #6D914D", +"X c #6A8E4B", +"o c black", +"O c #698D4B", +"+ c #6B904C", +"@ c #5C8245", +"# c #743F39", +"$ c #70944E", +"% c #B86F50", +"& c #71954E", +"* c #7EA552", +"= c #72964E", +"- c #81A853", +"; c #72974E", +": c #769B50", +"> c #73984F", +", c #6E934D", +"< c #7CA352", +"1 c #6F934D", +"2 c #7DA452", +"3 c #789E50", +"4 c #72964F", +"5 c #74994F", +"6 c #7CA351", +"7 c #6C904C", +"8 c #668B4A", +"9 c #5C8145", +"0 c #668A4A", +"q c #70954E", +"w c #6A8F4B", +"e c #71964E", +"r c #7EA452", +"t c #80A853", +"y c #81A854", +"u c #72974F", +"i c #83AB54", +"p c #759B50", +"a c #7EA553", +/* pixels */ +" ", +" ", +" ", +" ", +" .X ", +" ooooo Oooooo ", +" ooooo +@ooooo ", +" o#####ooooo#####o ", +" o###ooooooooo###o ", +" o###ooooooooo###o ", +" oo#oo###o###o###oo#oo ", +" $ oooo%%#%%%###%%%#%%oooo ", +" &*&oooo%%#%%%###%%%#%%oooo ", +" =-;ooo%%%%%%%%%%%%%%%%%ooo ", +" =-:o##%##%%%%%%%%%%%##%##o ", +" &*:o#####%%%%%%%%%%%#####o ", +" &>o#####%%%%%%%%%%%#####o ", +" o###%%%%%#%%%#%%%%%###o ", +" o##o%%%###%%%###%%%o##o,& ", +" o##o%%%###%%%###%%%o##o><>1", +" o##ooo%%%#ooo#%%%ooo##o23*4", +" oo#oo#%%ooooo%%#oo#oo15651", +" oo#oo#%%ooooo%%#oo#oo 1&1 ", +" oo####ooo###ooo####oo ", +" oo###ooooooooooo###oo ", +" oo###ooooooooooo###oo ", +" 7oo#oo#oo oo#oo#oo ", +" 890. q ", +" .w. &erq ", +" =t:y& ", +" uipaq ", +" ui>e, " +}; diff --git a/sprite/exit.XPM b/sprite/exit.XPM new file mode 100644 index 0000000..bbfbb45 --- /dev/null +++ b/sprite/exit.XPM @@ -0,0 +1,42 @@ +/* XPM */ +static char *_643724825348[] = { +/* columns rows colors chars-per-pixel */ +"32 32 4 1 ", +" c #6E924D", +". c #4D733E", +"X c #87B055", +"o c black", +/* pixels */ +" . ", +" . ", +" ", +" X X ", +" XX .X ", +" . . ", +" .. .. . ", +" .. .oooooooooo. oooo.. ", +" .oooooooooooooooooo ", +" X oooooooooooooooooo. ", +" X X .oooooooooooooooooo ", +" .X ooooooooooooooooo. X ", +" ooooooooooooooooo. XX ", +" oooooooooooooooo. ", +" .ooooooooooooooooo. ", +" ooooooooooooooooooo ", +" .oooooooooooooooooo ", +" ooooooooooooooooo. ", +" .oooooooooooooooo. ", +" .ooooooooooooooooo. ", +" .ooooooooooooooooo. ", +" ooooooooooooooooooo X", +" .oooooooooooooooooo X. ", +" .ooooo.ooooooooooo. . ", +" ..o.. .oo....oo.o ", +" . ", +" . ", +" X ", +" .X X ", +" . XX ", +" . ", +" " +}; diff --git a/sprite/front_bear.xpm b/sprite/front_bear.xpm new file mode 100644 index 0000000..6ecc9b8 --- /dev/null +++ b/sprite/front_bear.xpm @@ -0,0 +1,80 @@ +/* XPM */ +static char *_d0d658a3d084d86c4c05efb7288e42aDV5VnM4eFjwuSWPd[] = { +/* columns rows colors chars-per-pixel */ +"32 32 42 1 ", +" c #6E924D", +". c #6D914D", +"X c #6A8E4B", +"o c black", +"O c #698D4B", +"+ c #6B904C", +"@ c #5C8245", +"# c #B86F50", +"$ c #743F39", +"% c #70944E", +"& c #71954E", +"* c #7EA552", +"= c #72964E", +"- c #81A853", +"; c #72974E", +": c white", +"> c #E8B796", +", c #769B50", +"< c #73984F", +"1 c #C28569", +"2 c #6E934D", +"3 c #7CA352", +"4 c #6F934D", +"5 c #7DA452", +"6 c #789E50", +"7 c #72964F", +"8 c #74994F", +"9 c #7CA351", +"0 c #6C904C", +"q c #668B4A", +"w c #5C8145", +"e c #668A4A", +"r c #70954E", +"t c #6A8F4B", +"y c #71964E", +"u c #7EA452", +"i c #80A853", +"p c #81A854", +"a c #72974F", +"s c #83AB54", +"d c #759B50", +"f c #7EA553", +/* pixels */ +" ", +" ", +" ", +" ", +" .X ", +" ooooo Oooooo ", +" ooooo +@ooooo ", +" o###$$ooooo$$###o ", +" o##o$$#$$$#$$o##o ", +" o##o$$#$$$#$$o##o ", +" ooo$$$#########$$$ooo ", +" % o$$ooo####$$$####ooo$$o ", +" &*&o$$ooo####$$$####ooo$$o ", +" =-;o$$o$$o::o>>>o::o$$o$$o ", +" =-,o$$o##ooo>>>>>ooo##o$$o ", +" &*,o$$o##ooo>>>>>ooo##o$$o ", +" &ooo>$$###$$$o ", +" o$$#$$#$$>111>$$#$$#$$o ", +" ooo###$ooooooooo$###ooo2& ", +" ooo###$ooooooooo$###ooo<3<4", +" o$$$###$$ooooo$$###$$$o56*7", +" oo#oo$$$$$$$$$$$oo#oo48984", +" oo#oo$$$$$$$$$$$oo#oo 4&4 ", +" oo###o$$o$$$o$$o###oo ", +" ooo##$ooooooooo$##ooo ", +" ooo##$ooooooooo$##ooo ", +" 0oo$oo$oo oo$oo$oo ", +" qwe. r ", +" .t. &yur ", +" =i,p& ", +" asdfr ", +" as c #170625", +", c #D27E26", +"< c #B85F1C", +"1 c #71954E", +"2 c #7EA552", +"3 c #FFC600", +"4 c #FFE825", +"5 c #F6A800", +"6 c #72964E", +"7 c #81A853", +"8 c #72974E", +"9 c #71964E", +"0 c #95451A", +"q c #FFD800", +"w c #FFFD2C", +"e c #769B50", +"r c #73984F", +"t c #7EA452", +"y c #597146", +"u c #82320D", +"i c #A7521B", +"p c #4A5940", +"a c #6E934D", +"s c #6F934D", +"d c #7CA352", +"f c #C66F22", +"g c #7DA452", +"h c #789E50", +"j c #72964F", +"k c #74994F", +"l c #7CA351", +"z c #688C4A", +"x c #678B4A", +"c c #6C904C", +"v c #5C8145", +"b c #6B8F4C", +"n c #668B4A", +"m c #668A4A", +"M c #70954E", +"N c #6A8F4B", +"B c #80A853", +"V c #81A854", +"C c #72974F", +"Z c #83AB54", +"A c #759B50", +"S c #7EA553", +/* pixels */ +" ", +" ", +" ", +" ", +" .X ", +" oO+ ", +" @#$%& ", +" *#o. ", +" ======== ", +" ===-;;;;-=== ", +" ===-;;;;-=== ", +" : >,--<,,,,<--,> ", +" 121 >>,<<<344435<<<,>> ", +" 6789>,,05qqwqwww43350,,> ", +" 67e2>,,54wwww444w4435,,> ", +" 12e7>00,q444wwww4335,00> ", +" 1rt9>>0,--q4ww4q--,0>> ", +" :y>>u0ii-;;;;-ii0u>>y ", +" ypp>u00i<<<ppy a1 ", +" ypp>u00i<<<ppy srdrs", +" yy>0iiyy 1gh2j", +" y>>>i<<<>>y sklks", +" ypp>>>>>>ppy s1s ", +" ", +" @. ", +" zOx ", +" cv$vb ", +" nvm. M ", +" .N. 19tM ", +" 6BeV1 ", +" CZASM ", +" CZr9a " +}; diff --git a/sprite/left_bear.xpm b/sprite/left_bear.xpm new file mode 100644 index 0000000..838631c --- /dev/null +++ b/sprite/left_bear.xpm @@ -0,0 +1,79 @@ +/* XPM */ +static char *a387b897507d436aab84d6d6246df66b1z1m15ZG2RCyiMAA[] = { +/* columns rows colors chars-per-pixel */ +"32 32 41 1 ", +" c #6E924D", +". c black", +"X c #6A8E4B", +"o c #698E4B", +"O c #5D8245", +"+ c #743F39", +"@ c #B86F50", +"# c #70944E", +"$ c #C28569", +"% c #E8B796", +"& c white", +"* c #71954E", +"= c #7EA552", +"- c #72974E", +"; c #81A853", +": c #72964E", +"> c #769B50", +", c #73984F", +"< c #6E934D", +"1 c #6F934D", +"2 c #7CA352", +"3 c #72964F", +"4 c #789E50", +"5 c #7DA452", +"6 c #74994F", +"7 c #7CA351", +"8 c #6B8F4C", +"9 c #70954E", +"0 c #6D914D", +"q c #668A4A", +"w c #5C8145", +"e c #668B4A", +"r c #7EA452", +"t c #71964E", +"y c #6A8F4B", +"u c #81A854", +"i c #80A853", +"p c #7EA553", +"a c #759B50", +"s c #83AB54", +"d c #72974F", +/* pixels */ +" ", +" ", +" ", +" ", +" ... X.... ", +" ... oO.... ", +" +++......+@@@. ", +" +..+++++++.@@... ", +" +..+++++++.@@... ", +" .@@+++@@@++++.++...... ", +" .+++..@@@@+...++@..+++. ", +" .+++..@@@@+...++@..+++. # ", +" .$$%...&&.@@@+++@@@+@@+*=* ", +" $%%%%%...+@@@+@@@@@@@@@-;: ", +" $%%%%%...+@@@+@@@@@@@@@>;: ", +" ...%%%+++@@@@+@@@@@+@@@>=* ", +" $$$%$$+++@+++@@@+@@.+++,* ", +" $$$%$$+++@+++@@@+@@.+++ ", +" *<...........@@@+++...@@+ ", +"1,2,1..+.....++++...@..+@@+ ", +"3=45*..+.....++++...@..+@@+ ", +"16761..++++++++...@@@++++++ ", +" 1*1 .++....++++@@....++. ", +" .++....++++@@....++. ", +" .+++....+++.....+++. ", +" ..+.. .++.++. .++. ", +" ..+.. .++.++. 8.++. ", +" 9 0qwe ", +" 9rt* 0y0 ", +" *u>i: ", +" 9pasd ", +" c #769B50", +", c #73984F", +"< c #6E934D", +"1 c #6F934D", +"2 c #7CA352", +"3 c #7DA452", +"4 c #789E50", +"5 c #72964F", +"6 c #74994F", +"7 c #7CA351", +"8 c #6B8F4C", +"9 c #668B4A", +"0 c #5C8145", +"q c #668A4A", +"w c #6D914D", +"e c #70954E", +"r c #6A8F4B", +"t c #71964E", +"y c #7EA452", +"u c #80A853", +"i c #81A854", +"p c #72974F", +"a c #83AB54", +"s c #759B50", +"d c #7EA553", +/* pixels */ +" ", +" ", +" ", +" ", +" ....X ... ", +" ....oO ... ", +" .+++@......@@@ ", +" ...++.@@@@@@@..@ ", +" ...++.@@@@@@@..@ ", +" ......@@.@@@@+++@@@++. ", +" .@@@..+@@...@++++..@@@. ", +" # .@@@..+@@...@++++..@@@. ", +" $%$@++@+++@@@+++.&&...*==. ", +" -;:+++++++++@+++@...*****= ", +" -;>+++++++++@+++@...*****= ", +" $%>+++@+++++@++++@@@***... ", +" $,@@@.++@+++@@@+@@@==*=== ", +" @@@.++@+++@@@+@@@==*=== ", +" @++...@@@+++...........<$ ", +" @++@..+...@@@@.....@..1,2,1", +" @++@..+...@@@@.....@..$34%5", +" @@@@@@+++...@@@@@@@@..16761", +" .@@....++@@@@....@@. 1$1 ", +" .@@....++@@@@....@@. ", +" .@@@.....@@@....@@@. ", +" .@@. .@@.@@. ..@.. ", +" .@@.8 .@@.@@. ..@.. ", +" 90qw e ", +" wrw $tye ", +" -u>i$ ", +" pasde ", +" pa,t< " +}; diff --git a/sprite/snow_tree.xpm b/sprite/snow_tree.xpm new file mode 100644 index 0000000..5da8414 --- /dev/null +++ b/sprite/snow_tree.xpm @@ -0,0 +1,176 @@ +/* XPM */ +static char *ed1556952fcd432ffcab70bbc17ab48bTGW28QFGniQVrKcD[] = { +/* columns rows colors chars-per-pixel */ +"32 32 138 2 ", +" c #6E924D", +". c #91AC78", +"X c #DCE5D4", +"o c white", +"O c #7D9E69", +"+ c #F3F6FE", +"@ c #D7E4FD", +"# c #85A36A", +"$ c #628B4D", +"% c #54925A", +"& c #EAF1FE", +"* c #789C78", +"= c #C4D9D5", +"- c #63A05C", +"; c #BFCFBE", +": c #97B28D", +"> c #4D9262", +", c #71A876", +"< c #6FA958", +"1 c #98C09B", +"2 c #619E7B", +"3 c #CCDFD9", +"4 c #ECF2FE", +"5 c #A1BBBE", +"6 c #5B864D", +"7 c #BACCB8", +"8 c #C0D6D4", +"9 c #7DA87D", +"0 c #E0E9FD", +"q c #C8DCD9", +"w c #D0E1E5", +"e c #55846A", +"r c #3E734E", +"t c #42734A", +"y c #7CA89B", +"u c #87B770", +"i c #6AA55A", +"p c #47865A", +"a c #4B8D5F", +"s c #427A53", +"d c #6C9578", +"f c #4B8355", +"g c #E3EEE6", +"h c #D4E5D9", +"j c #7FB186", +"k c #94BE98", +"l c #ADC4BF", +"z c #588B6F", +"x c #497A4E", +"c c #7FAFA0", +"v c #B9D2D8", +"b c #A6C6C5", +"n c #69A37B", +"m c #458258", +"M c #C5D3B8", +"N c #48875B", +"B c #B8CBB7", +"V c #468358", +"C c #437E55", +"Z c #78AC88", +"A c #8BAB95", +"S c #BACDBF", +"D c #87B055", +"F c #84A58C", +"G c #F7F9FF", +"H c #BFD8C6", +"J c #6F9A7C", +"K c #91B69C", +"L c #95B6BA", +"P c #4F7E4E", +"I c #BCCFD3", +"U c #DFECD6", +"Y c #A5C6BF", +"T c #93B1B6", +"R c #C7D7E1", +"E c #407851", +"W c #668D4D", +"Q c #517F4E", +"! c #83A594", +"~ c #608C78", +"^ c #769D94", +"/ c #709C7D", +"( c #B6CBD3", +") c #8FBC81", +"_ c #B8D3C0", +"` c #D6E5E5", +"' c #6BA487", +"] c #7AA498", +"[ c #86AA91", +"{ c #9CB593", +"} c #447F56", +"| c #498B5D", +" . c #87AD93", +".. c #B2C7B8", +"X. c #B5CEBD", +"o. c #72A180", +"O. c #68A45A", +"+. c #9FBAB7", +"@. c #94BEA1", +"#. c #5D896A", +"$. c #74A091", +"%. c #C3D8E4", +"&. c #CBDBFC", +"*. c #62917B", +"=. c #65977F", +"-. c #74A583", +";. c #7AAC99", +":. c #D1E1E2", +">. c #BFD6D8", +",. c #B7D2C6", +"<. c #88B5A0", +"1. c #99BEBE", +"2. c #58995F", +"3. c #46784E", +"4. c #78A796", +"5. c #424643", +"6. c #45283C", +"7. c #4D733E", +"8. c #695D3C", +"9. c #663931", +"0. c #522F38", +"q. c #5A783F", +"w. c #628245", +"e. c #526D39", +"r. c #4D6636", +"t. c #563A36", +"y. c #494E38", +"u. c #535B34", +"i. c #5E3534", +"p. c #4A2B3A", +"a. c #4D2C39", +"s. c #55703B", +"d. c #668848", +"f. c #5C4B33", +"g. c #584035", +"h. c #6D8E45", +"j. c #5E7B3B", +"k. c #618044", +/* pixels */ +" ", +" . X o O ", +" . o + @ + # ", +" $ % & o o o o # ", +" * + = - + o o ; ", +" : > , < 1 2 3 4 5 6 ", +" 7 8 9 0 q w 0 e r t ", +" y u i p p p a > s d ", +" f g h j k g o o l 0 z x ", +" p c v b n > v 5 m m s 6 ", +" M o > m m N > > > > N s x ", +" B o - > V C C V > Z n A S 6 ", +" D F G H - > J A K > o o v L P ", +" D x I G H U Y T R & & T V E r W ", +" D D Q o ! ~ ^ y > > p r C m m / r 6 ", +" D D Q ( o ) > > > > > > > _ o 5 r 6 ", +" D Q s c 0 n ` o 4 2 > ' ] ] r [ { ", +" r r s } | ' c 2 > > | p ...5 x ", +" ..X.N Y ` h _ o.} | O._ 4 N E r ", +" +.o @.r ~ ^ #.$.T %.0 &.*.C s r D ", +" =.+ & -.r r r r r p p ..X.Y > r D D ", +" f ;.:.3 Z Z >.,.n <.& & 1.2.p r D ", +" 3.C 4.' > > p > > > > p r r $ ", +" 6 r s } E r r r r r r r W ", +" x r 5.6.6.6.6 ", +" 7. 8.9.0.0.0.q. ", +" 7. 7. w.e.r.t.9.9.0.0.y.r.r.q. ", +" 7. w.r.r.u.y.9.i.0.p.a.u.r.r.s. ", +" d.r.r.r.f.0.a.6.6.g.r.r.r.h. ", +" d.s.r.u.r.r.r.r.y.r.j.k.D ", +" d.k.k.k.k.k. D D ", +" D " +};