From a3f3fc742daa4b28094b5ebe9be60263c41979d1 Mon Sep 17 00:00:00 2001 From: Rudy Bousset Date: Wed, 30 Oct 2019 15:00:17 +0100 Subject: New libft, feelsgoodman --- libft/src/ft_strlcat.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 libft/src/ft_strlcat.c (limited to 'libft/src/ft_strlcat.c') diff --git a/libft/src/ft_strlcat.c b/libft/src/ft_strlcat.c new file mode 100644 index 0000000..98fa3e8 --- /dev/null +++ b/libft/src/ft_strlcat.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* LE - / */ +/* / */ +/* ft_strlcat.c .:: .:/ . .:: */ +/* +:+:+ +: +: +:+:+ */ +/* By: rbousset +:+ +: +: +:+ */ +/* #+# #+ #+ #+# */ +/* Created: 2019/10/09 06:44:30 by rbousset #+# ## ## #+# */ +/* Updated: 2019/10/13 08:36:04 by rbousset ### #+. /#+ ###.fr */ +/* / */ +/* / */ +/* ************************************************************************** */ + +#include "libft.h" +#include + +static size_t + ft_strlen_size(const char *s, size_t size) +{ + const char *ptr = s; + + while (size > 0 && *ptr) + { + size--; + ptr++; + } + return (ptr - s); +} + +size_t + ft_strlcat(char *dst, const char *src, size_t size) +{ + size_t dst_len; + + if (!dst || !src) + return (0); + dst_len = ft_strlen_size(dst, size); + if (dst_len == size) + return (dst_len + ft_strlen(src)); + return (dst_len + ft_strlcpy(dst + dst_len, src, size - dst_len)); +} -- cgit v1.2.3