summaryrefslogtreecommitdiff
path: root/kern/string.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2012-11-08 22:00:06 +0100
committerRichard Braun <rbraun@sceen.net>2012-11-08 22:00:06 +0100
commitc8ba9280fafe518ada8a6d2a545d6afa2b2dbe23 (patch)
tree32271289300ae7bd67d2ce1819b40d0fd6ca94f5 /kern/string.c
parentaf35c0c34f1e1bafaf5acf058daba2314dfc7e1f (diff)
kern/string: implement strlcpy
Diffstat (limited to 'kern/string.c')
-rw-r--r--kern/string.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/kern/string.c b/kern/string.c
index 82bcd2f1..2122af6a 100644
--- a/kern/string.c
+++ b/kern/string.c
@@ -121,6 +121,24 @@ strcpy(char *dest, const char *src)
return tmp;
}
+size_t
+strlcpy(char *dest, const char *src, size_t n)
+{
+ size_t len;
+
+ len = strlen(src);
+
+ if (n == 0)
+ goto out;
+
+ n = (len < n) ? len : n - 1;
+ memcpy(dest, src, n);
+ dest[n] = '\0';
+
+out:
+ return len;
+}
+
int
strcmp(const char *s1, const char *s2)
{