Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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
}