3 size_t xstrlcpy(char *dst, const char *src, size_t size)
7 if (size-- <= 0) return srclen;
8 len = (size < srclen) ? size : srclen;
9 memmove(dst, src, len);
14 size_t xstrlcat(char *dst, const char *src, size_t size)
16 size_t dstlen = strnlen(dst, size);
17 if (dstlen == size) return dstlen + strlen(src);
18 return dstlen + xstrlcpy(dst+dstlen, src, size-dstlen);