chiark / gitweb /
disorder.h: more consistent approach to function attributes
[disorder] / lib / kvp.c
index 5a116deab632720b1c31c31d1ac4dc495961d457..f17cdc1edb05c9ac77ed63b3332465409b07edd6 100644 (file)
--- a/lib/kvp.c
+++ b/lib/kvp.c
@@ -63,6 +63,11 @@ int urldecode(struct sink *sink, const char *ptr, size_t n) {
   return 0;
 }
 
+/** @brief URL-decode a string
+ * @param ptr Start of URL-encoded string
+ * @param n Length of @p ptr
+ * @return Decoded string (0-terminated)
+ */
 static char *decode(const char *ptr, size_t n) {
   struct dynstr d;
   struct sink *s;
@@ -282,6 +287,15 @@ struct kvp *kvp_make(const char *name, ...) {
   return kvp;
 }
 
+void kvp_free(struct kvp *k) {
+  if(k) {
+    kvp_free(k->next);
+    xfree((void *)k->name);
+    xfree((void *)k->value);
+    xfree(k);
+  }
+}
+
 /*
 Local Variables:
 c-basic-offset:2