return -ENOMEM;
}
+int strv_extend_assignment(char ***l, const char *lhs, const char *rhs) {
+ char *j;
+
+ assert(l);
+ assert(lhs);
+
+ if (!rhs) /* value is optional, in which case we suppress the field */
+ return 0;
+
+ j = strjoin(lhs, "=", rhs);
+ if (!j)
+ return -ENOMEM;
+
+ return strv_consume(l, j);
+}
+
int fputstrv(FILE *f, char * const *l, const char *separator, bool *space) {
bool b = false;
int r;
int strv_extend_n(char ***l, const char *value, size_t n);
+int strv_extend_assignment(char ***l, const char *lhs, const char *rhs);
+
int fputstrv(FILE *f, char * const *l, const char *separator, bool *space);
#define strv_free_and_replace(a, b) \
assert_se(pos == 1);
}
+TEST(strv_extend_join) {
+ _cleanup_strv_free_ char **v = NULL;
+
+ assert_se(strv_extend_assignment(&v, "MESSAGE", "ABC") >= 0);
+ assert_se(strv_extend_assignment(&v, "ABC", "QER") >= 0);
+ assert_se(strv_extend_assignment(&v, "MISSING", NULL) >= 0);
+
+ assert_se(strv_length(v) == 2);
+ assert_se(streq(v[0], "MESSAGE=ABC"));
+ assert_se(streq(v[1], "ABC=QER"));
+}
+
DEFINE_TEST_MAIN(LOG_INFO);