51 broke -E logic completely, rewise it
[tfcrypt.git] / xstrlcat.c
1 #include <string.h>
2
3 size_t xstrlcpy(char *dst, const char *src, size_t size)
4 {
5         size_t len, srclen;
6         srclen = strlen(src);
7         if (size-- <= 0) return srclen;
8         len = (size < srclen) ? size : srclen;
9         memmove(dst, src, len);
10         dst[len] = '\0';
11         return srclen;
12 }
13
14 size_t xstrlcat(char *dst, const char *src, size_t size)
15 {
16         size_t dstlen = strnlen(dst, size);
17         if (dstlen == size) return dstlen + strlen(src);
18         return dstlen + xstrlcpy(dst+dstlen, src, size-dstlen);
19 }