diff options
| author | 2013-07-13 16:37:05 +0200 | |
|---|---|---|
| committer | 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  | 
