]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libhttpd/query.c
upas/Mail: avoid showing empty To: and CC: lines in compose windows
[plan9front.git] / sys / src / libhttpd / query.c
1 #include <u.h>
2 #include <libc.h>
3 #include <httpd.h>
4
5 /*
6  * parse a search string of the form
7  * tag=val&tag1=val1...
8  */
9 HSPairs*
10 hparsequery(HConnect *c, char *search)
11 {
12         HSPairs *q;
13         char *tag, *val, *s;
14
15         while((s = strchr(search, '?')) != nil)
16                 search = s + 1;
17         s = search;
18         while((s = strchr(s, '+')) != nil)
19                 *s++ = ' ';
20         q = nil;
21         while(*search){
22                 tag = search;
23                 while(*search != '='){
24                         if(*search == '\0')
25                                 return q;
26                         search++;
27                 }
28                 *search++ = 0;
29                 val = search;
30                 while(*search != '&'){
31                         if(*search == '\0')
32                                 return hmkspairs(c, hurlunesc(c, tag), hurlunesc(c, val), q);
33                         search++;
34                 }
35                 *search++ = '\0';
36                 q = hmkspairs(c, hurlunesc(c, tag), hurlunesc(c, val), q);
37         }
38         return q;
39 }