From 41b70ae8baf5e172040d52aa30aa9fa8615993ee Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Sun, 23 Aug 2020 12:09:42 +0200 Subject: [PATCH] LibC: Implement strlcpy --- Libraries/LibC/string.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Libraries/LibC/string.cpp b/Libraries/LibC/string.cpp index 3e1b7890d2..744f6fc470 100644 --- a/Libraries/LibC/string.cpp +++ b/Libraries/LibC/string.cpp @@ -216,10 +216,15 @@ char* strncpy(char* dest, const char* src, size_t n) size_t strlcpy(char* dest, const char* src, size_t n) { - (void)dest; - (void)src; - (void)n; - return 42; // TODO + size_t i; + // Would like to test i < n - 1 here, but n might be 0. + for (i = 0; i + 1 < n && src[i] != '\0'; ++i) + dest[i] = src[i]; + if (n) + dest[i] = '\0'; + for (; src[i] != '\0'; ++i) + ; // Determine the length of src, don't copy. + return i; } char* strchr(const char* str, int c)