summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/stringx.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/common/stringx.c b/src/common/stringx.c
index 89deb9b..37a3df9 100644
--- a/src/common/stringx.c
+++ b/src/common/stringx.c
@@ -122,3 +122,34 @@ strlcpy(char *dst, const char *src, size_t len)
*dst = '\0';
return (ret);
}
+
+size_t strlcat(char* dst, const char* src, size_t siz)
+{
+ char* d = dst;
+ const char* s = src;
+ size_t n = siz;
+ size_t dlen;
+
+ /* Find the end of dst and adjust bytes left but don't go past end */
+ while(n-- != 0 && *d != '\0')
+ d++;
+ dlen = d - dst;
+ n = siz - dlen;
+
+ if(n == 0)
+ return dlen + strlen(s);
+ while(*s != '\0')
+ {
+ if(n != 1)
+ {
+ *d++ = *s;
+ n--;
+ }
+
+ s++;
+ }
+
+ *d = '\0';
+
+ return dlen + (s - src); /* count does not include NUL */
+}