From 74152744f0d56c2d0211728206a218a33df41a5d Mon Sep 17 00:00:00 2001 From: Jonathon Mah Date: Sun, 10 Apr 2011 04:10:03 -0700 Subject: Fix escaping of paths with spaces Signed-off-by: Lars Hjemli --- html.c | 10 ++++++---- 1 file 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++; -- cgit 1.4.1