output_buffer: only realloc once, and memset just what we need
[fio.git] / lib / strlcat.c
1 #include <string.h>
2
3 size_t strlcat(char *dst, const char *src, size_t size)
4 {
5         size_t dstlen;
6         size_t srclen;
7
8         dstlen = strlen(dst);
9         size -= dstlen + 1;
10
11         /* return if no room */
12         if (!size)
13                 return dstlen;
14
15         srclen = strlen(src);
16         if (srclen > size)
17                 srclen = size;
18
19         memcpy(dst + dstlen, src, srclen);
20         dst[dstlen + srclen] = '\0';
21
22         return dstlen + srclen;
23 }