add pa_proplist_to_string_sep()

This commit is contained in:
Lennart Poettering 2009-01-17 01:59:37 +01:00
parent 4a66837b83
commit a45f971e43
3 changed files with 28 additions and 7 deletions

View file

@ -159,6 +159,7 @@ pa_proplist_setf;
pa_proplist_sets;
pa_proplist_size;
pa_proplist_to_string;
pa_proplist_to_string_sep;
pa_proplist_unset;
pa_proplist_unset_many;
pa_proplist_update;

View file

@ -259,21 +259,24 @@ const char *pa_proplist_iterate(pa_proplist *p, void **state) {
return prop->key;
}
char *pa_proplist_to_string(pa_proplist *p) {
char *pa_proplist_to_string_sep(pa_proplist *p, const char *sep) {
const char *key;
void *state = NULL;
pa_strbuf *buf;
pa_assert(p);
pa_assert(sep);
buf = pa_strbuf_new();
while ((key = pa_proplist_iterate(p, &state))) {
const char *v;
if (!pa_strbuf_isempty(buf))
pa_strbuf_puts(buf, sep);
if ((v = pa_proplist_gets(p, key)))
pa_strbuf_printf(buf, "%s = \"%s\"\n", key, v);
pa_strbuf_printf(buf, "%s = \"%s\"", key, v);
else {
const void *value;
size_t nbytes;
@ -283,7 +286,7 @@ char *pa_proplist_to_string(pa_proplist *p) {
c = pa_xmalloc(nbytes*2+1);
pa_hexstr((const uint8_t*) value, nbytes, c, nbytes*2+1);
pa_strbuf_printf(buf, "%s = hex:%s\n", key, c);
pa_strbuf_printf(buf, "%s = hex:%s", key, c);
pa_xfree(c);
}
}
@ -291,6 +294,16 @@ char *pa_proplist_to_string(pa_proplist *p) {
return pa_strbuf_tostring_free(buf);
}
char *pa_proplist_to_string(pa_proplist *p) {
char *s, *t;
s = pa_proplist_to_string_sep(p, "\n");
t = pa_sprintf_malloc("%s\n", s);
pa_xfree(s);
return t;
}
/* Remove all whitepsapce from the beginning and the end of *s. *s may
* be modified. (from conf-parser.c) */
#define WHITESPACE " \t\n"

View file

@ -213,12 +213,19 @@ int pa_proplist_unset_many(pa_proplist *p, const char * const keys[]);
* have any particular order. \since 0.9.11 */
const char *pa_proplist_iterate(pa_proplist *p, void **state);
/** Format the property list nicely as a human readable string. Call pa_xfree() on the result. \since
* 0.9.11 */
/** Format the property list nicely as a human readable string. This
* works very much like pa_proplist_to_string_sep() and uses a newline
* as seperator and appends one final one. Call pa_xfree() on the
* result. \since 0.9.11 */
char *pa_proplist_to_string(pa_proplist *p);
/** Allocate a new property list and assign key/value from a human readable string. \since
/** Format the property list nicely as a human readable string and
* choose the seperator. Call pa_xfree() on the result. \since
* 0.9.15 */
char *pa_proplist_to_string_sep(pa_proplist *p, const char *sep);
/** Allocate a new property list and assign key/value from a human
* readable string. \since 0.9.15 */
pa_proplist *pa_proplist_from_string(const char *str);
/** Returns 1 if an entry for the specified key is existant in the