/* ************************************************************************** */ /* 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)); }