diff options
author | Jonathon Mah <me@JonathonMah.com> | 2011-04-10 04:10:03 -0700 |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2011-05-23 22:58:06 +0200 |
commit | 74152744f0d56c2d0211728206a218a33df41a5d (patch) | |
tree | 0231bb2979e22dc92f573b863bc81c404c49a468 | |
parent | Add advice about scan-path in cgitrc.5.txt (diff) | |
download | cgit-pink-74152744f0d56c2d0211728206a218a33df41a5d.tar.gz cgit-pink-74152744f0d56c2d0211728206a218a33df41a5d.zip |
Fix escaping of paths with spaces
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to '')
-rw-r--r-- | html.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/html.c b/html.c index a60bc13..6f31097 100644 --- a/html.c +++ b/html.c @@ -18,7 +18,7 @@ static const char* url_escape_table[256] = { "%00", "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09", "%0a", "%0b", "%0c", "%0d", "%0e", "%0f", "%10", "%11", "%12", "%13", "%14", "%15", "%16", "%17", "%18", "%19", "%1a", "%1b", "%1c", "%1d", - "%1e", "%1f", "+", 0, "%22", "%23", 0, "%25", "%26", "%27", 0, 0, 0, + "%1e", "%1f", "%20", 0, "%22", "%23", 0, "%25", "%26", "%27", 0, 0, 0, "%2b", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%3c", "%3d", "%3e", "%3f", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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) while(t && *t){ int c = *t; const char *e = url_escape_table[c]; - if (e && c!='+' && c!='&' && c!='+') { + if (e && c!='+' && c!='&') { html_raw(txt, t - txt); - html_raw(e, 3); + html(e); txt = t+1; } t++; @@ -179,9 +179,11 @@ void html_url_arg(const char *txt) while(t && *t){ int c = *t; const char *e = url_escape_table[c]; + if (c == ' ') + e = "+"; if (e) { html_raw(txt, t - txt); - html_raw(e, strlen(e)); + html(e); txt = t+1; } t++; |