blob: 98fa3e86e8f37f99eca71352a59a352b07adadb8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/* ************************************************************************** */
/* LE - / */
/* / */
/* ft_strlcat.c .:: .:/ . .:: */
/* +:+:+ +: +: +:+:+ */
/* By: rbousset <marvin@le-101.fr> +:+ +: +: +:+ */
/* #+# #+ #+ #+# */
/* Created: 2019/10/09 06:44:30 by rbousset #+# ## ## #+# */
/* Updated: 2019/10/13 08:36:04 by rbousset ### #+. /#+ ###.fr */
/* / */
/* / */
/* ************************************************************************** */
#include "libft.h"
#include <stddef.h>
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));
}
|