From 75307803a21adb57991cacfed4e417498c068d2f Mon Sep 17 00:00:00 2001 From: Dominika Liberda Date: Sun, 11 Jun 2023 06:00:11 +0200 Subject: [PATCH] LibC: Implement stpcpy For better code clarity, also reformatted how strcpy increments pointers. --- Userland/Libraries/LibC/string.cpp | 16 ++++++++++++++-- Userland/Libraries/LibC/string.h | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibC/string.cpp b/Userland/Libraries/LibC/string.cpp index c923c009c2..24716107b1 100644 --- a/Userland/Libraries/LibC/string.cpp +++ b/Userland/Libraries/LibC/string.cpp @@ -187,11 +187,23 @@ void* memmem(void const* haystack, size_t haystack_length, void const* needle, s char* strcpy(char* dest, char const* src) { char* original_dest = dest; - while ((*dest++ = *src++) != '\0') - ; + while ((*dest = *src) != '\0') { + dest++; + src++; + } return original_dest; } +// https://pubs.opengroup.org/onlinepubs/9699919799/functions/stpcpy.html +char* stpcpy(char* dest, char const* src) +{ + while ((*dest = *src) != '\0') { + dest++; + src++; + } + return dest; +} + // https://pubs.opengroup.org/onlinepubs/9699919799/functions/strncpy.html char* strncpy(char* dest, char const* src, size_t n) { diff --git a/Userland/Libraries/LibC/string.h b/Userland/Libraries/LibC/string.h index 8a1b6b631c..824c2d7c28 100644 --- a/Userland/Libraries/LibC/string.h +++ b/Userland/Libraries/LibC/string.h @@ -37,6 +37,7 @@ __attribute__((malloc)) char* strdup(char const*); __attribute__((malloc)) char* strndup(char const*, size_t); char* strcpy(char* dest, char const* src); +char* stpcpy(char* dest, char const* src); char* strncpy(char* dest, char const* src, size_t); __attribute__((warn_unused_result)) size_t strlcpy(char* dest, char const* src, size_t);