Support loading tfcrypt_defs.h variables from file.
[tfcrypt.git] / xstrlcat.c
diff --git a/xstrlcat.c b/xstrlcat.c
new file mode 100644 (file)
index 0000000..341b048
--- /dev/null
@@ -0,0 +1,19 @@
+#include <string.h>
+
+size_t xstrlcpy(char *dst, const char *src, size_t size)
+{
+       size_t len, srclen;
+       srclen = strlen(src);
+       if (size-- <= 0) return srclen;
+       len = (size < srclen) ? size : srclen;
+       memmove(dst, src, len);
+       dst[len] = '\0';
+       return srclen;
+}
+
+size_t xstrlcat(char *dst, const char *src, size_t size)
+{
+       size_t dstlen = strnlen(dst, size);
+       if (dstlen == size) return dstlen + strlen(src);
+       return dstlen + xstrlcpy(dst+dstlen, src, size-dstlen);
+}