summaryrefslogtreecommitdiffstats
path: root/osdep/strlcpy.c
diff options
context:
space:
mode:
Diffstat (limited to 'osdep/strlcpy.c')
-rw-r--r--osdep/strlcpy.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/osdep/strlcpy.c b/osdep/strlcpy.c
new file mode 100644
index 0000000000..887461abbc
--- /dev/null
+++ b/osdep/strlcpy.c
@@ -0,0 +1,22 @@
+/* strlcpy implementation for systems that do not have it in libc
+ * Time-stamp: <2004-03-14 njk>
+ * (C) 2003-2004 Nicholas J. Kain <njk@aerifal.cx>
+ */
+
+#include "config.h"
+
+unsigned int strlcpy (char *dest, const char *src, unsigned int size)
+{
+ register unsigned int i = 0;
+
+ if (size > 0) {
+ size--;
+ for (i=0; size > 0 && src[i] != '\0'; ++i, size--)
+ dest[i] = src[i];
+
+ dest[i] = '\0';
+ }
+ while (src[i++]);
+
+ return i;
+}