diff options
author | Martin Szulecki | 2013-07-13 16:37:05 +0200 |
---|---|---|
committer | Martin Szulecki | 2013-07-13 16:37:05 +0200 |
commit | 41b640d30dc12dbb5cebbf7316a191efdd6f2c74 (patch) | |
tree | 5ce003be6926143535018f7aa71bb420cb65ff98 | |
parent | b8169cbeda3699f3c0159267815cf9a011149950 (diff) | |
download | libimobiledevice-41b640d30dc12dbb5cebbf7316a191efdd6f2c74.tar.gz libimobiledevice-41b640d30dc12dbb5cebbf7316a191efdd6f2c74.tar.bz2 |
common: Implement stpcpy() replacement for systems lacking it
-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 |