X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/031e275e3ae18ddc208b2c05189cec78e9d6e76e..8ab2aa9fd51a89e06d92a4f7c3792aaa4a08cc71:/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