append given basedir argument with '/' if not given
[rxpd] / src / rxpd_base.c
index e316b97..1f9da8f 100644 (file)
@@ -116,3 +116,23 @@ rxpd_strdup (const char* str)
   return r;
 }
 
+struct rxpd_base*
+rxpd_set_basedir (struct rxpd_base* self, const char* basedir)
+{
+  if (self && !self->basedir)
+    {
+      size_t sz = strlen (basedir);
+      if (basedir [sz-1] == '/')
+        {
+          self->basedir = rxpd_malloc (sz + 1);
+          strcpy (self->basedir, basedir);
+        }
+      else
+        {
+          self->basedir = rxpd_malloc (sz + 2);
+          strcpy (self->basedir, basedir);
+          self->basedir [sz] = '/';
+        }
+    }
+  return self;
+}