#include "strlst.h"
+AvahiStringList*avahi_string_list_add_anonymous(AvahiStringList *l, guint size) {
+ AvahiStringList *n;
+
+ n = g_malloc(sizeof(AvahiStringList) + size);
+ n->next = l;
+ n->size = size;
+
+ return n;
+}
+
AvahiStringList *avahi_string_list_add_arbitrary(AvahiStringList *l, const guint8*text, guint size) {
AvahiStringList *n;
g_assert(text);
- n = g_malloc(sizeof(AvahiStringList) + size);
- n->next = l;
- memcpy(n->text, text, n->size = size);
+ n = avahi_string_list_add_anonymous(l, size);
+
+ if (size > 0)
+ memcpy(n->text, text, size);
return n;
}
}
}
-static AvahiStringList* string_list_reverse(AvahiStringList *l) {
+AvahiStringList* avahi_string_list_reverse(AvahiStringList *l) {
AvahiStringList *r = NULL, *n;
while (l) {
guint s = 0;
gchar *t, *e;
- l = string_list_reverse(l);
+ l = avahi_string_list_reverse(l);
for (n = l; n; n = n->next) {
if (n != l)
g_assert(e);
}
- l = string_list_reverse(l);
+ l = avahi_string_list_reverse(l);
*e = 0;
g_assert(data);
- l = string_list_reverse(l);
+ l = avahi_string_list_reverse(l);
c = data;
for (n = l; n; n = n->next) {
used += 1+ k;
}
- l = string_list_reverse(l);
+ l = avahi_string_list_reverse(l);
} else {
AvahiStringList *n;
for (; l; l = l->next)
r = avahi_string_list_add_arbitrary(r, l->text, l->size);
- return string_list_reverse(r);
+ return avahi_string_list_reverse(r);
}
AvahiStringList *avahi_string_list_new_from_array(const gchar *array[], gint length) {
AvahiStringList *r = NULL;
- gint index;
+ gint i;
g_assert(array);
- for (index = 0; length >= 0 ? index < length : !!array[index]; index++)
- r = avahi_string_list_add(r, array[index]);
+ for (i = 0; length >= 0 ? i < length : !!array[i]; i++)
+ r = avahi_string_list_add(r, array[i]);
return r;
}
+
+guint avahi_string_list_length(const AvahiStringList *l) {
+ guint n = 0;
+
+ for (; l; l = l->next)
+ n++;
+
+ return n;
+}