diff options
| author | 2011-05-24 06:26:10 (JST) | |
|---|---|---|
| committer | 2011-05-24 06:26:10 (JST) | |
| commit | 652a5a18db3b0409fedfaf8c5720446d87628ba0 (patch) | |
| tree | cefa386058d968217af24374b93972820a9b43a8 /html.c | |
| parent | 4837fddc35bbd8d6f66a40486f75cdee3197172d (diff) | |
| parent | ec79265f2053e6dc20e0ec486719f5954d2be83d (diff) | |
| download | cgit-652a5a18db3b0409fedfaf8c5720446d87628ba0.zip cgit-652a5a18db3b0409fedfaf8c5720446d87628ba0.tar.gz | |
Merge branch 'stable'
Diffstat (limited to 'html.c')
| -rw-r--r-- | html.c | 15 |
1 files changed, 9 insertions, 6 deletions
| @@ -18,7 +18,7 @@ static const char* url_escape_table[256] = { | |||
| 18 | "%00", "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09", | 18 | "%00", "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09", |
| 19 | "%0a", "%0b", "%0c", "%0d", "%0e", "%0f", "%10", "%11", "%12", "%13", | 19 | "%0a", "%0b", "%0c", "%0d", "%0e", "%0f", "%10", "%11", "%12", "%13", |
| 20 | "%14", "%15", "%16", "%17", "%18", "%19", "%1a", "%1b", "%1c", "%1d", | 20 | "%14", "%15", "%16", "%17", "%18", "%19", "%1a", "%1b", "%1c", "%1d", |
| 21 | "%1e", "%1f", "+", 0, "%22", "%23", 0, "%25", "%26", "%27", 0, 0, 0, | 21 | "%1e", "%1f", "%20", 0, "%22", "%23", 0, "%25", "%26", "%27", 0, 0, 0, |
| 22 | "%2b", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%3c", "%3d", | 22 | "%2b", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%3c", "%3d", |
| 23 | "%3e", "%3f", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 23 | "%3e", "%3f", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 24 | 0, 0, 0, 0, 0, 0, 0, 0, 0, "%5c", 0, "%5e", 0, "%60", 0, 0, 0, 0, 0, | 24 | 0, 0, 0, 0, 0, 0, 0, 0, 0, "%5c", 0, "%5e", 0, "%60", 0, 0, 0, 0, 0, |
| @@ -162,9 +162,9 @@ void html_url_path(const char *txt) | |||
| 162 | while(t && *t){ | 162 | while(t && *t){ |
| 163 | int c = *t; | 163 | int c = *t; |
| 164 | const char *e = url_escape_table[c]; | 164 | const char *e = url_escape_table[c]; |
| 165 | if (e && c!='+' && c!='&' && c!='+') { | 165 | if (e && c!='+' && c!='&') { |
| 166 | html_raw(txt, t - txt); | 166 | html_raw(txt, t - txt); |
| 167 | html_raw(e, 3); | 167 | html(e); |
| 168 | txt = t+1; | 168 | txt = t+1; |
| 169 | } | 169 | } |
| 170 | t++; | 170 | t++; |
| @@ -179,9 +179,11 @@ void html_url_arg(const char *txt) | |||
| 179 | while(t && *t){ | 179 | while(t && *t){ |
| 180 | int c = *t; | 180 | int c = *t; |
| 181 | const char *e = url_escape_table[c]; | 181 | const char *e = url_escape_table[c]; |
| 182 | if (c == ' ') | ||
| 183 | e = "+"; | ||
| 182 | if (e) { | 184 | if (e) { |
| 183 | html_raw(txt, t - txt); | 185 | html_raw(txt, t - txt); |
| 184 | html_raw(e, strlen(e)); | 186 | html(e); |
| 185 | txt = t+1; | 187 | txt = t+1; |
| 186 | } | 188 | } |
| 187 | t++; | 189 | t++; |
| @@ -288,12 +290,12 @@ char *convert_query_hexchar(char *txt) | |||
| 288 | 290 | ||
| 289 | int http_parse_querystring(const char *txt_, void (*fn)(const char *name, const char *value)) | 291 | int http_parse_querystring(const char *txt_, void (*fn)(const char *name, const char *value)) |
| 290 | { | 292 | { |
| 291 | char *t, *txt, *value = NULL, c; | 293 | char *o, *t, *txt, *value = NULL, c; |
| 292 | 294 | ||
| 293 | if (!txt_) | 295 | if (!txt_) |
| 294 | return 0; | 296 | return 0; |
| 295 | 297 | ||
| 296 | t = txt = strdup(txt_); | 298 | o = t = txt = strdup(txt_); |
| 297 | if (t == NULL) { | 299 | if (t == NULL) { |
| 298 | printf("Out of memory\n"); | 300 | printf("Out of memory\n"); |
| 299 | exit(1); | 301 | exit(1); |
| @@ -316,5 +318,6 @@ int http_parse_querystring(const char *txt_, void (*fn)(const char *name, const | |||
| 316 | } | 318 | } |
| 317 | if (t!=txt) | 319 | if (t!=txt) |
| 318 | (*fn)(txt, value); | 320 | (*fn)(txt, value); |
| 321 | free(o); | ||
| 319 | return 0; | 322 | return 0; |
| 320 | } | 323 | } |
