mirror of https://gerrit.osmocom.org/libosmocore
utils: introduce osmo_talloc_replace_string_fmt()
Change-Id: I6b84fa0525555a98c531fc558e5dc1298fec00c1
This commit is contained in:
parent
69cc4b613b
commit
c549719088
|
@ -117,6 +117,8 @@ static inline void osmo_talloc_replace_string(void *ctx, char **dst, const char
|
|||
*dst = talloc_strdup(ctx, newstr);
|
||||
}
|
||||
|
||||
void osmo_talloc_replace_string_fmt(void *ctx, char **dst, const char *fmt, ...);
|
||||
|
||||
/*! Append to a string and re-/allocate if necessary.
|
||||
* \param[in] ctx Talloc context to use for initial allocation.
|
||||
* \param[in,out] dest char* to re-/allocate and append to.
|
||||
|
|
21
src/utils.c
21
src/utils.c
|
@ -1493,4 +1493,25 @@ int osmo_str_to_int(int *result, const char *str, int base, int min_val, int max
|
|||
return rc;
|
||||
}
|
||||
|
||||
/*! Replace a string using talloc and release its prior content (if any).
|
||||
* This is a format string capable equivalent of osmo_talloc_replace_string().
|
||||
* \param[in] ctx Talloc context to use for allocation.
|
||||
* \param[out] dst Pointer to string, will be updated with ptr to new string.
|
||||
* \param[in] fmt Format string that will be copied to newly allocated string. */
|
||||
void osmo_talloc_replace_string_fmt(void *ctx, char **dst, const char *fmt, ...)
|
||||
{
|
||||
char *name = NULL;
|
||||
|
||||
if (fmt != NULL) {
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
name = talloc_vasprintf(ctx, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
talloc_free(*dst);
|
||||
*dst = name;
|
||||
}
|
||||
|
||||
/*! @} */
|
||||
|
|
Loading…
Reference in New Issue