all repos — cgit @ 74152744f0d56c2d0211728206a218a33df41a5d

a hyperfast web frontend for git written in c

Fix escaping of paths with spaces

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Jonathon Mah me@JonathonMah.com
Sun, 10 Apr 2011 04:10:03 -0700
commit

74152744f0d56c2d0211728206a218a33df41a5d

parent

facca560d903351ddf1b8a41faafcd1f76de5c7c

1 files changed, 6 insertions(+), 4 deletions(-)

jump to
M html.chtml.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 @@ const char *t = 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 @@ const char *t = 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++;