strv: introduce strv_extendf_with_size()

This commit is contained in:
Yu Watanabe
2025-11-01 00:58:39 +09:00
parent 0885e4a6e7
commit 3c66f40262
3 changed files with 17 additions and 3 deletions
+2 -2
View File
@@ -906,7 +906,7 @@ void strv_print_full(char * const *l, const char *prefix) {
printf("%s%s\n", strempty(prefix), *s);
}
int strv_extendf(char ***l, const char *format, ...) {
int strv_extendf_with_size(char ***l, size_t *n, const char *format, ...) {
va_list ap;
char *x;
int r;
@@ -918,7 +918,7 @@ int strv_extendf(char ***l, const char *format, ...) {
if (r < 0)
return -ENOMEM;
return strv_consume(l, x);
return strv_consume_with_size(l, n, x);
}
char* startswith_strv(const char *s, char * const *l) {
+2 -1
View File
@@ -56,7 +56,8 @@ static inline int strv_extend(char ***l, const char *value) {
int strv_extend_many_internal(char ***l, const char *value, ...);
#define strv_extend_many(l, ...) strv_extend_many_internal(l, __VA_ARGS__, POINTER_MAX)
int strv_extendf(char ***l, const char *format, ...) _printf_(2,3);
int strv_extendf_with_size(char ***l, size_t *n, const char *format, ...) _printf_(3,4);
#define strv_extendf(l, ...) strv_extendf_with_size(l, NULL, __VA_ARGS__)
int strv_push_with_size(char ***l, size_t *n, char *value);
static inline int strv_push(char ***l, char *value) {