Cleanup: unconstify string argument to add_to_string()

add_to_string() frees the original string that is passed in. This
should therefore not be of "const char *" type, as the contents
of the string *will* be modified (or more precisely: destroyed).

Same for the congener smtk_concat_str().

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-03-25 20:52:00 +01:00 committed by Robert C. Helling
parent 40a3e562b0
commit 643a964d09
3 changed files with 6 additions and 6 deletions

View file

@ -278,7 +278,7 @@ void put_quoted(struct membuffer *b, const char *text, int is_attribute, int is_
}
}
char *add_to_string_va(const char *old, const char *fmt, va_list args)
char *add_to_string_va(char *old, const char *fmt, va_list args)
{
char *res;
struct membuffer o = { 0 }, n = { 0 };
@ -296,7 +296,7 @@ char *add_to_string_va(const char *old, const char *fmt, va_list args)
* WARNING - this will free(old), the intended pattern is
* string = add_to_string(string, fmt, ...)
*/
char *add_to_string(const char *old, const char *fmt, ...)
char *add_to_string(char *old, const char *fmt, ...)
{
char *res;
va_list args;

View file

@ -71,8 +71,8 @@ extern __printf(2, 0) void put_vformat(struct membuffer *, const char *, va_list
extern __printf(2, 0) void put_vformat_loc(struct membuffer *, const char *, va_list);
extern __printf(2, 3) void put_format(struct membuffer *, const char *fmt, ...);
extern __printf(2, 3) void put_format_loc(struct membuffer *, const char *fmt, ...);
extern __printf(2, 0) char *add_to_string_va(const char *old, const char *fmt, va_list args);
extern __printf(2, 3) char *add_to_string(const char *old, const char *fmt, ...);
extern __printf(2, 0) char *add_to_string_va(char *old, const char *fmt, va_list args);
extern __printf(2, 3) char *add_to_string(char *old, const char *fmt, ...);
/* Helpers that use membuffers internally */
extern __printf(1, 0) char *vformat_string(const char *, va_list);

View file

@ -211,7 +211,7 @@ static MdbTableDef *smtk_open_table(MdbHandle *mdb, char *tablename, MdbColumn
* This is based in add_to_string() and add_to_string_va(), and, as its parents
* frees the original string.
*/
static char *smtk_concat_str(const char *orig, const char *sep, const char *fmt, ...)
static char *smtk_concat_str(char *orig, const char *sep, const char *fmt, ...)
{
char *str;
va_list args;
@ -229,7 +229,7 @@ static char *smtk_concat_str(const char *orig, const char *sep, const char *fmt,
free_buffer(&out);
free_buffer(&in);
free((void *)orig);
free(orig);
return str;
}