X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/95ceb9eae3ff08162d7e17be5ce82090d78cb269..b12be54a68a7738d948d866eb7b9231f8e55a12e:/lib/kvp.c diff --git a/lib/kvp.c b/lib/kvp.c index 6c18a8f..471de78 100644 --- a/lib/kvp.c +++ b/lib/kvp.c @@ -124,6 +124,10 @@ int urlencode(struct sink *sink, const char *s, size_t n) { return 0; } +/** @brief URL-encode @p s + * @param s String to encode + * @return Encoded string + */ const char *urlencodestring(const char *s) { struct dynstr d; @@ -133,6 +137,20 @@ const char *urlencodestring(const char *s) { return d.vec; } +/** @brief URL-decode @p s + * @param s String to decode + * @param ns Length of string + * @return Decoded string + */ +const char *urldecodestring(const char *s, size_t ns) { + struct dynstr d; + + dynstr_init(&d); + urldecode(sink_dynstr(&d), s, ns); + dynstr_terminate(&d); + return d.vec; +} + char *kvp_urlencode(const struct kvp *kvp, size_t *np) { struct dynstr d; struct sink *sink;