summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--lib/util.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/util.cc b/lib/util.cc
index ee75d29..a9b9bed 100644
--- a/lib/util.cc
+++ b/lib/util.cc
@@ -284,32 +284,33 @@ namespace opkele {
284 psegs.push(rv.length()); 284 psegs.push(rv.length());
285 if(c!='/') { 285 if(c!='/') {
286 pseg += c; 286 pseg += c;
287 qf = true; 287 qf = true;
288 } 288 }
289 rv += '/'; rv += pseg; 289 rv += '/'; rv += pseg;
290 } 290 }
291 if(c=='/' && (n>=ul || strchr("?#",uri[n])) ) { 291 if(c=='/' && (n>=ul || strchr("?#",uri[n])) ) {
292 rv += '/'; 292 rv += '/';
293 if(n<ul) 293 if(n<ul)
294 qf = true; 294 qf = true;
295 }else if(strchr("?#",c)) { 295 }else if(strchr("?#",c)) {
296 if(psegs.size()==1 && psegs.top()==rv.length()) 296 if(psegs.size()==1 && psegs.top()==rv.length())
297 rv += '/'; 297 rv += '/';
298 if(pseg.empty()) 298 if(pseg.empty())
299 rv += c; 299 rv += c;
300 qf = true; 300 qf = true;
301 } 301 }
302 pseg.clear(); 302 pseg.clear();
303 }else{ 303 }else{
304 pseg += c; 304 pseg += c;
305 } 305 }
306 } 306 }
307 if(!pseg.empty()) { 307 if(!pseg.empty()) {
308 rv += '/'; rv += pseg; 308 if(!qf) rv += '/';
309 rv += pseg;
309 } 310 }
310 return rv; 311 return rv;
311 } 312 }
312 313
313 } 314 }
314 315
315} 316}