Skip to content

Commit 1178606

Browse files
committed
urldecode: a helper wraper that returns a decoded struct str
Signed-off-by: Josef 'Jeff' Sipek <[email protected]>
1 parent 396f249 commit 1178606

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

include/jeffpc/urldecode.h

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
#ifndef __JEFFPC_URLDECODE_H
2424
#define __JEFFPC_URLDECODE_H
2525

26+
#include <jeffpc/str.h>
27+
2628
extern ssize_t urldecode(const char *in, size_t len, char *out);
29+
extern struct str *urldecode_str(const char *in, size_t len);
2730

2831
#endif

jeffpc.mapfile-vers

+1
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ JEFFPC_0.10 {
202202

203203
# urldecode
204204
urldecode;
205+
urldecode_str;
205206

206207
# version
207208
jeffpc_hgrev;

urldecode.c

+17
Original file line numberDiff line numberDiff line change
@@ -172,3 +172,20 @@ ssize_t urldecode(const char *in, size_t len, char *out)
172172

173173
return (state.state == DS_COPY) ? state.outoff : -EILSEQ;
174174
}
175+
176+
struct str *urldecode_str(const char *in, size_t len)
177+
{
178+
struct str *str;
179+
ssize_t outlen;
180+
char out[len];
181+
182+
outlen = urldecode(in, len, out);
183+
if (outlen < 0)
184+
return ERR_PTR(outlen);
185+
186+
str = str_dup_len(out, outlen);
187+
if (!str)
188+
return ERR_PTR(-ENOMEM);
189+
190+
return str;
191+
}

0 commit comments

Comments
 (0)