diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-06-22 09:26:19 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-06-22 09:49:13 -0400 |
commit | 3883338c8121212b3f6f9c020d489d50bbcdd855 (patch) | |
tree | 18d9b69f63060354ad9c7525a46c63e0dcef54d3 /src/lib/container/smartlist.c | |
parent | 1abadee3fd1c15f3720003c411ec6043c29d7c09 (diff) | |
download | tor-3883338c8121212b3f6f9c020d489d50bbcdd855.tar.gz tor-3883338c8121212b3f6f9c020d489d50bbcdd855.zip |
Move smartlist_add_{v,}asprintf into smartlist.[ch]
Now that I know that "strings" nests below "container", I know this
is safe.
Diffstat (limited to 'src/lib/container/smartlist.c')
-rw-r--r-- | src/lib/container/smartlist.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lib/container/smartlist.c b/src/lib/container/smartlist.c index 3a0a2d1068..57b88415a3 100644 --- a/src/lib/container/smartlist.c +++ b/src/lib/container/smartlist.c @@ -18,6 +18,7 @@ #include "lib/defs/digest_sizes.h" #include "lib/ctime/di_ops.h" #include "lib/string/util_string.h" +#include "lib/string/printf.h" #include <stdlib.h> #include <string.h> @@ -124,6 +125,30 @@ smartlist_add_strdup(struct smartlist_t *sl, const char *string) smartlist_add(sl, copy); } +/** Append the string produced by tor_asprintf(<b>pattern</b>, <b>...</b>) + * to <b>sl</b>. */ +void +smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...) +{ + va_list ap; + va_start(ap, pattern); + smartlist_add_vasprintf(sl, pattern, ap); + va_end(ap); +} + +/** va_list-based backend of smartlist_add_asprintf. */ +void +smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern, + va_list args) +{ + char *str = NULL; + + tor_vasprintf(&str, pattern, args); + tor_assert(str != NULL); + + smartlist_add(sl, str); +} + /** Remove all elements E from sl such that E==element. Preserve * the order of any elements before E, but elements after E can be * rearranged. |