src/server/util/util.c

changeset 58
66c22e54aa90
parent 56
c6cf20b09043
child 59
ab25c0a231d0
--- a/src/server/util/util.c	Sun Mar 17 19:19:57 2013 +0100
+++ b/src/server/util/util.c	Tue Mar 19 17:38:32 2013 +0100
@@ -191,3 +191,34 @@
     }
     return 500;
 }
+
+
+NSAPI_PUBLIC
+sstr_t util_path_append(pool_handle_t *pool, char *path, char *ch) {
+    sstr_t parent = sstr(path);
+    sstr_t child = sstr(ch);
+    sstr_t newstr;
+    sstr_t s;
+    
+    s.length = 0;
+    s.ptr = NULL;
+    newstr.length = parent.length + child.length;
+    if(parent.ptr[parent.length - 1] != '/') {
+        s = sstrn("/", 1);
+        newstr.length++;
+    }
+    
+    newstr.ptr = pool_malloc(pool, newstr.length + 1);
+    if(!newstr.ptr) {
+        // TODO: error
+        return newstr;
+    }
+    if(s.length == 1) {
+        newstr = sstrncat(3, newstr, parent, s, child);
+    } else {
+        newstr = sstrncat(2, newstr, parent, child);
+    }
+    newstr.ptr[newstr.length] = '\0';
+    
+    return newstr;
+}

mercurial