diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/utils.c | 23 | ||||
-rw-r--r-- | common/utils.h | 3 |
2 files changed, 26 insertions, 0 deletions
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 |