From 41b640d30dc12dbb5cebbf7316a191efdd6f2c74 Mon Sep 17 00:00:00 2001 From: Martin Szulecki Date: Sat, 13 Jul 2013 16:37:05 +0200 Subject: common: Implement stpcpy() replacement for systems lacking it --- common/utils.c | 23 +++++++++++++++++++++++ common/utils.h | 3 +++ 2 files changed, 26 insertions(+) (limited to 'common') diff --git a/common/utils.c b/common/utils.c index b2b3768..bd2bf1f 100644 --- a/common/utils.c +++ b/common/utils.c @@ -29,6 +29,29 @@ #include "utils.h" +#ifndef HAVE_STPCPY +/** + * Copy characters from one string into another + * + * @note: The strings should not overlap, as the behavior is undefined. + * + * @s1: The source string. + * @s2: The destination string. + * + * @return a pointer to the terminating `\0' character of @s1, + * or NULL if @s1 or @s2 is NULL. + */ +char *stpcpy(char * s1, const char * s2) +{ + if (s1 == NULL || s2 == NULL) + return NULL; + + strcpy(s1, s2); + + return s1 + strlen(s2); +} +#endif + /** * Concatenate strings into a newly allocated string * diff --git a/common/utils.h b/common/utils.h index 129f974..441d188 100644 --- a/common/utils.h +++ b/common/utils.h @@ -22,6 +22,9 @@ #ifndef __UTILS_H #define __UTILS_H +#ifndef HAVE_STPCPY +char *stpcpy(char * s1, const char * s2); +#endif char *string_concat(const char *str, ...); #endif -- cgit v1.1-32-gdbae