Blob
1 #include <u.h>2 #include <libc.h>3 #include <httpd.h>5 /*6 * parse a search string of the form7 * tag=val&tag1=val1...8 */9 HSPairs*10 hparsequery(HConnect *c, char *search)11 {12 HSPairs *q;13 char *tag, *val, *s;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 }