Revert "Cleaner safe_strncat()."
authorBen Kibbey <bjk@luxsci.net>
Sat, 6 Apr 2013 18:12:23 +0000 (6 14:12 -0400)
committerBen Kibbey <bjk@luxsci.net>
Sat, 6 Apr 2013 18:12:23 +0000 (6 14:12 -0400)
This reverts commit 3f0914da760e154861e42178c776f975920fb40b.

Brain fart.

src/safe_strncat.c

index f26b4e2..8584e08 100644 (file)
 
 size_t safe_strncat(char *dst, const char *src, size_t n)
 {
+    char *dp;
+    const char *sp;
     size_t len;
-    char *p;
 
-    p = strncat (dst, src, n);
-    len = strlen (p);
-    p[len] = 0;
+    if (!n)
+       return strlen(dst)+strlen(src)+1;
+
+    for (dp = dst, len = 0; *dp; dp++, len++);
+
+    for (sp = src; *sp && len < n-1; len++, sp++)
+       *dp++ = *sp;
+
+    *dp = 0;
+
+    if (*sp) {
+       while (*sp++)
+           len++;
+    }
+
     return len;
 }