X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/031e275e3ae18ddc208b2c05189cec78e9d6e76e..0d047a120ff50d000dce22d7cc8b141a24ce8de9:/lib/kvp.c diff --git a/lib/kvp.c b/lib/kvp.c index 5a116de..f17cdc1 100644 --- 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