From e2bc65f0498c9c774a308b11c3854d291e803a1d Mon Sep 17 00:00:00 2001
From: Adam Joly <adjoly@2E2.42angouleme.fr>
Date: Sat, 4 Nov 2023 18:37:19 +0100
Subject: [PATCH] day finished

---
 Makefile     |  10 ++++++++--
 ft_memcpy.c  |   4 ++--
 ft_strchr.c  |   6 +++---
 ft_strdup.c  |   2 +-
 ft_strjoin.c |  31 +++++++++++++++++++++++++++++++
 ft_strlcat.c |  24 ++++++++++++++++++++++--
 ft_substr.c  |   4 ++--
 libft.h      |   4 +++-
 libft.so     | Bin 0 -> 15488 bytes
 9 files changed, 72 insertions(+), 13 deletions(-)
 create mode 100644 ft_strjoin.c
 create mode 100755 libft.so

diff --git a/Makefile b/Makefile
index dac1df4..1d22bdc 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@
 #    By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+         #
 #                                                 +#+#+#+#+#+   +#+            #
 #    Created: 2023/11/01 11:03:22 by adjoly            #+#    #+#              #
-#    Updated: 2023/11/03 23:05:37 by adjoly           ###   ########.fr        #
+#    Updated: 2023/11/04 15:37:27 by adjoly           ###   ########.fr        #
 #                                                                              #
 # **************************************************************************** #
 
@@ -31,7 +31,9 @@ SRCS = ft_atoi.c \
 		ft_substr.c \
 		ft_tolower.c \
 		ft_toupper.c \
-
+		ft_strlcat.c \
+		ft_strjoin.c \
+	
 OBJS = $(SRCS:.c=.o)
 
 FLAGS = -Werror -Wall -Wextra
@@ -41,6 +43,10 @@ HEADER = libft.h
 $(NAME): $(OBJS)
 	ar -rcs	$(NAME) $(OBJS)
 
+so:
+	$(CC) -nostartfiles -fPIC $(CFLAGS) $(SRCS)
+	gcc -nostartfiles -shared -o libft.so $(OBJS)
+
 %.o: %.c
 	$(CC) $(FLAGS) -I $(HEADER) $< -c -o $@
 
diff --git a/ft_memcpy.c b/ft_memcpy.c
index 0c0abb3..02015d9 100644
--- a/ft_memcpy.c
+++ b/ft_memcpy.c
@@ -6,7 +6,7 @@
 /*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/11/02 10:21:55 by adjoly            #+#    #+#             */
-/*   Updated: 2023/11/02 11:30:30 by adjoly           ###   ########.fr       */
+/*   Updated: 2023/11/04 14:13:12 by adjoly           ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -17,7 +17,7 @@ void	*ft_memcpy(void *dest, const void *src, size_t n)
 	size_t	i;
 
 	i = 0;
-	if (src == NULL || dest == NULL || n == 0)
+	if (src == NULL && dest == NULL)
 	{
 		return (dest);
 	}
diff --git a/ft_strchr.c b/ft_strchr.c
index 237ed3f..6cf9679 100644
--- a/ft_strchr.c
+++ b/ft_strchr.c
@@ -6,7 +6,7 @@
 /*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/11/01 15:45:18 by adjoly            #+#    #+#             */
-/*   Updated: 2023/11/02 10:08:05 by adjoly           ###   ########.fr       */
+/*   Updated: 2023/11/04 15:32:14 by adjoly           ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -15,7 +15,7 @@ char	*ft_strchr(const char *s, int c)
 	int		i;
 	int		j;
 	char	*str_result;
-
+// initialize str_result
 	i = 0;
 	j = 0;
 	while (s[i] != c || s[i])
@@ -29,6 +29,6 @@ char	*ft_strchr(const char *s, int c)
 		}
 		return (str_result);
 	}
-	str_result[0] = '\0';
+	str_result[i] = '\0';
 	return (str_result);
 }
diff --git a/ft_strdup.c b/ft_strdup.c
index cf202b6..9a9548c 100644
--- a/ft_strdup.c
+++ b/ft_strdup.c
@@ -6,7 +6,7 @@
 /*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/11/03 22:57:39 by adjoly            #+#    #+#             */
-/*   Updated: 2023/11/04 11:10:30 by adjoly           ###   ########.fr       */
+/*   Updated: 2023/11/04 14:40:17 by adjoly           ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
diff --git a/ft_strjoin.c b/ft_strjoin.c
new file mode 100644
index 0000000..87caffe
--- /dev/null
+++ b/ft_strjoin.c
@@ -0,0 +1,31 @@
+/* ************************************************************************** */
+/*                                                                            */
+/*                                                        :::      ::::::::   */
+/*   ft_strjoin.c                                       :+:      :+:    :+:   */
+/*                                                    +:+ +:+         +:+     */
+/*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
+/*                                                +#+#+#+#+#+   +#+           */
+/*   Created: 2023/11/04 13:44:09 by adjoly            #+#    #+#             */
+/*   Updated: 2023/11/04 14:06:43 by adjoly           ###   ########.fr       */
+/*                                                                            */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+char	*ft_strjoin(char const *s1, char const *s2)
+{
+	int		i;
+	char	*result;
+	size_t	len_s1;
+	size_t	len_s2;
+
+	i = 0;
+	len_s1 = ft_strlen(s1);
+	len_s2 = ft_strlen(s2);
+	result = malloc(len_s1 + len_s2 + 1);
+	if (result == NULL)
+		return (NULL);
+	ft_memcpy(result, s1, len_s1);
+	ft_memcpy(result + len_s1, s2, len_s2);
+	return (result);
+}
diff --git a/ft_strlcat.c b/ft_strlcat.c
index 9ca9c40..9f2b467 100644
--- a/ft_strlcat.c
+++ b/ft_strlcat.c
@@ -6,7 +6,7 @@
 /*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/11/03 15:59:31 by adjoly            #+#    #+#             */
-/*   Updated: 2023/11/03 17:12:22 by adjoly           ###   ########.fr       */
+/*   Updated: 2023/11/04 16:14:32 by adjoly           ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -14,5 +14,25 @@
 
 size_t	ft_strlcat(char *dst, const char *src, size_t size)
 {
-	
+	size_t	i;
+	size_t	j;
+	size_t	len_dst;
+	size_t	len_src;
+
+	if (dst == NULL && size == 0)
+		return (0);
+	i = 0;
+	j = ft_strlen(dst);
+	len_src = ft_strlen(src);
+	len_dst = ft_strlen(dst);
+	if (size <= j)
+		return (len_src + size);
+	while (j < size - 1 && src[i])
+	{
+		dst[j] = src[i];
+		i++;
+		j++;
+	}
+	dst[j] = '\0';
+	return (len_src + len_dst);
 }
diff --git a/ft_substr.c b/ft_substr.c
index c945549..c6fe061 100644
--- a/ft_substr.c
+++ b/ft_substr.c
@@ -6,7 +6,7 @@
 /*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/11/02 17:59:58 by adjoly            #+#    #+#             */
-/*   Updated: 2023/11/03 09:56:01 by adjoly           ###   ########.fr       */
+/*   Updated: 2023/11/04 15:18:28 by adjoly           ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -26,7 +26,7 @@ char	*ft_substr(char const *s, unsigned int start, size_t len)
 		result[0] = '\0';
 		return (result);
 	}
-	result = malloc(len * sizeof(char));
+	result = malloc((len + 1) * sizeof(char));
 	if (result == NULL)
 		return (NULL);
 	while (i < len && s[start + i])
diff --git a/libft.h b/libft.h
index 66100c7..5a27ed7 100644
--- a/libft.h
+++ b/libft.h
@@ -6,7 +6,7 @@
 /*   By: adjoly <adjoly@student.42.fr>              +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/11/01 10:06:03 by adjoly            #+#    #+#             */
-/*   Updated: 2023/11/03 23:06:30 by adjoly           ###   ########.fr       */
+/*   Updated: 2023/11/04 14:07:28 by adjoly           ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -37,5 +37,7 @@ size_t	ft_strlen(const char *s);
 char	*ft_substr(char const *s, unsigned int start, size_t len);
 int		ft_tolower(int c);
 int		ft_toupper(int c);
+size_t	ft_strlcat(char *dst, const char *src, size_t size);
+char	*ft_strjoin(char const *s1, char const *s2);
 
 #endif
\ No newline at end of file
diff --git a/libft.so b/libft.so
new file mode 100755
index 0000000000000000000000000000000000000000..21784472f3d7627ff8fb934aad52d4df1f385149
GIT binary patch
literal 15488
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
E06a;9#sB~S

literal 0
HcmV?d00001