]> git.meshlink.io Git - catta/blobdiff - avahi-common/strlst.c
small fixes in mans and INSTALL
[catta] / avahi-common / strlst.c
index d962188d080c73a4657af9bc85cf1b3ea380bef4..46ed852720766b5df780c2d75f6f0fa5b7129caf 100644 (file)
 
 #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;
 }
@@ -78,7 +89,7 @@ void avahi_string_list_free(AvahiStringList *l) {
     }
 }
 
-static AvahiStringList* string_list_reverse(AvahiStringList *l) {
+AvahiStringList* avahi_string_list_reverse(AvahiStringList *l) {
     AvahiStringList *r = NULL, *n;
 
     while (l) {
@@ -96,7 +107,7 @@ gchar* avahi_string_list_to_string(AvahiStringList *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)
@@ -120,7 +131,7 @@ gchar* avahi_string_list_to_string(AvahiStringList *l) {
         g_assert(e);
     }
 
-    l = string_list_reverse(l);
+    l = avahi_string_list_reverse(l);
     
     *e = 0;
 
@@ -136,7 +147,7 @@ guint avahi_string_list_serialize(AvahiStringList *l, gpointer data, guint size)
     
         g_assert(data);
         
-        l = string_list_reverse(l);
+        l = avahi_string_list_reverse(l);
         c = data;
         
         for (n = l; n; n = n->next) {
@@ -158,7 +169,7 @@ guint avahi_string_list_serialize(AvahiStringList *l, gpointer data, guint size)
             used += 1+ k;
         }
         
-        l = string_list_reverse(l);
+        l = avahi_string_list_reverse(l);
     } else {
         AvahiStringList *n;
 
@@ -241,17 +252,26 @@ AvahiStringList *avahi_string_list_copy(const AvahiStringList *l) {
     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;
+}