]> git.meshlink.io Git - catta/blobdiff - strlst.c
Rename flx_* to avahi_*
[catta] / strlst.c
index d0507e0a2458467d67d962c00091c9c34ce117ec..f2d76e4dc47980309d2f6f1927499b5e993b1a61 100644 (file)
--- a/strlst.c
+++ b/strlst.c
@@ -3,27 +3,26 @@
 
 #include "strlst.h"
 
-static flxStringList *string_list_add_internal(flxStringList *l, const gchar *text, guint size) {
-    flxStringList *n;
+AvahiStringList *avahi_string_list_add_arbitrary(AvahiStringList *l, const guint8*text, guint size) {
+    AvahiStringList *n;
 
     g_assert(text);
 
-    n = g_malloc(sizeof(flxStringList) + size);
+    n = g_malloc(sizeof(AvahiStringList) + size);
     n->next = l;
-    strncpy(n->text, text, size);
-    n->text[size] = 0;
+    memcpy(n->text, text, n->size = size);
     
     return n;
 }
 
-flxStringList *flx_string_list_add(flxStringList *l, const gchar *text) {
+AvahiStringList *avahi_string_list_add(AvahiStringList *l, const gchar *text) {
     g_assert(text);
 
-    return string_list_add_internal(l, text, strlen(text));
+    return avahi_string_list_add_arbitrary(l, (const guint8*) text, strlen(text));
 }
 
-flxStringList *flx_string_list_parse(gconstpointer data, guint size) {
-    flxStringList *r = NULL;
+AvahiStringList *avahi_string_list_parse(gconstpointer data, guint size) {
+    AvahiStringList *r = NULL;
     const guint8 *c;
     g_assert(data);
 
@@ -35,7 +34,7 @@ flxStringList *flx_string_list_parse(gconstpointer data, guint size) {
             break;
 
         k = *(c++);
-        r = string_list_add_internal(r, (const gchar*) c, k);
+        r = avahi_string_list_add_arbitrary(r, c, k);
         c += k;
 
         size -= 1 + k;
@@ -44,8 +43,8 @@ flxStringList *flx_string_list_parse(gconstpointer data, guint size) {
     return r;
 }
 
-void flx_string_list_free(flxStringList *l) {
-    flxStringList *n;
+void avahi_string_list_free(AvahiStringList *l) {
+    AvahiStringList *n;
 
     while (l) {
         n = l->next;
@@ -54,9 +53,8 @@ void flx_string_list_free(flxStringList *l) {
     }
 }
 
-
-static flxStringList* string_list_reverse(flxStringList *l) {
-    flxStringList *r = NULL, *n;
+static AvahiStringList* string_list_reverse(AvahiStringList *l) {
+    AvahiStringList *r = NULL, *n;
 
     while (l) {
         n = l->next;
@@ -68,8 +66,8 @@ static flxStringList* string_list_reverse(flxStringList *l) {
     return r;
 }
 
-gchar* flx_string_list_to_string(flxStringList *l) {
-    flxStringList *n;
+gchar* avahi_string_list_to_string(AvahiStringList *l) {
+    AvahiStringList *n;
     guint s = 0;
     gchar *t, *e;
 
@@ -79,18 +77,19 @@ gchar* flx_string_list_to_string(flxStringList *l) {
         if (n != l)
             s ++;
 
-        s += strlen(n->text)+2;
+        s += n->size+3;
     }
 
-    t = e = g_new(gchar, s+1);
+    t = e = g_new(gchar, s);
 
     for (n = l; n; n = n->next) {
         if (n != l)
             *(e++) = ' ';
 
         *(e++) = '"';
-        strcpy(e, n->text);
-        e += strlen(n->text);
+        strncpy(e, n->text, n->size);
+        e[n->size] = 0;
+        e = strchr(e, 0);
         *(e++) = '"';
     }
 
@@ -101,12 +100,12 @@ gchar* flx_string_list_to_string(flxStringList *l) {
     return t;
 }
 
-guint flx_string_list_serialize(flxStringList *l, gpointer data, guint size) {
+guint avahi_string_list_serialize(AvahiStringList *l, gpointer data, guint size) {
     guint used = 0;
 
     if (data) {
         guint8 *c;
-        flxStringList *n;
+        AvahiStringList *n;
     
         g_assert(data);
         
@@ -118,7 +117,7 @@ guint flx_string_list_serialize(flxStringList *l, gpointer data, guint size) {
             if (size < 1)
                 break;
             
-            k = strlen(n->text);
+            k = n->size;
             if (k > 255)
                 k = 255;
             
@@ -134,12 +133,12 @@ guint flx_string_list_serialize(flxStringList *l, gpointer data, guint size) {
         
         l = string_list_reverse(l);
     } else {
-        flxStringList *n;
+        AvahiStringList *n;
 
         for (n = l; n; n = n->next) {
             guint k;
         
-            k = strlen(n->text);
+            k = n->size;
             if (k > 255)
                 k = 255;
             
@@ -150,7 +149,7 @@ guint flx_string_list_serialize(flxStringList *l, gpointer data, guint size) {
     return used;
 }
 
-gboolean flx_string_list_equal(flxStringList *a, flxStringList *b) {
+gboolean avahi_string_list_equal(AvahiStringList *a, AvahiStringList *b) {
 
     for (;;) {
         if (!a && !b)
@@ -159,7 +158,10 @@ gboolean flx_string_list_equal(flxStringList *a, flxStringList *b) {
         if (!a || !b)
             return FALSE;
 
-        if (strcmp(a->text, b->text) != 0)
+        if (a->size != b->size)
+            return FALSE;
+
+        if (a->size != 0 && memcmp(a->text, b->text, a->size) != 0)
             return FALSE;
 
         a = a->next;
@@ -167,49 +169,50 @@ gboolean flx_string_list_equal(flxStringList *a, flxStringList *b) {
     }
 }
 
-flxStringList *flx_string_list_add_many(flxStringList *r, ...) {
+AvahiStringList *avahi_string_list_add_many(AvahiStringList *r, ...) {
     va_list va;
 
     va_start(va, r);
-    r = flx_string_list_add_many_va(r, va);
+    r = avahi_string_list_add_many_va(r, va);
     va_end(va);
     
     return r;
 }
 
-flxStringList *flx_string_list_add_many_va(flxStringList *r, va_list va) {
+AvahiStringList *avahi_string_list_add_many_va(AvahiStringList *r, va_list va) {
     const gchar *txt;
 
     while ((txt = va_arg(va, const gchar*)))
-        r = flx_string_list_add(r, txt);
+        r = avahi_string_list_add(r, txt);
 
     return r;
 }
 
-flxStringList *flx_string_list_new(const gchar *txt, ...) {
+
+AvahiStringList *avahi_string_list_new(const gchar *txt, ...) {
     va_list va;
-    flxStringList *r = NULL;
+    AvahiStringList *r = NULL;
 
     if (txt) {
-        r = flx_string_list_add(r, txt);
+        r = avahi_string_list_add(r, txt);
 
         va_start(va, txt);
-        r = flx_string_list_add_many_va(r, va);
+        r = avahi_string_list_add_many_va(r, va);
         va_end(va);
     }
 
     return r;
 }
 
-flxStringList *flx_string_list_new_va(va_list va) {
-    return flx_string_list_add_many_va(NULL, va);
+AvahiStringList *avahi_string_list_new_va(va_list va) {
+    return avahi_string_list_add_many_va(NULL, va);
 }
 
-flxStringList *flx_string_list_copy(flxStringList *l) {
-    flxStringList *r = NULL;
+AvahiStringList *avahi_string_list_copy(AvahiStringList *l) {
+    AvahiStringList *r = NULL;
 
     for (; l; l = l->next)
-        r = flx_string_list_add(r, l->text);
+        r = avahi_string_list_add_arbitrary(r, l->text, l->size);
 
     return string_list_reverse(r);
 }