summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--lib/util.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/util.cc b/lib/util.cc
index 4028697..02f9473 100644
--- a/lib/util.cc
+++ b/lib/util.cc
@@ -214,17 +214,16 @@ namespace opkele {
for(string::const_iterator i=str.begin(),ie=str.end();
i!=ie;++i) {
switch(*i) {
case '+':
*(ii++) = ' '; break;
case '%':
- ++i;
- if(i==ie)
+ if((++i)==ie)
throw failed_conversion(OPKELE_CP_ "trailing percent in the url-encoded string");
- tmp[0] = *(i++);
- if(i==ie)
+ tmp[0] = *i;
+ if((++i)==ie)
throw failed_conversion(OPKELE_CP_ "not enough hexadecimals after the percent sign in url-encoded string");
tmp[1] = *i;
if(!(isxdigit(tmp[0]) && isxdigit(tmp[1])))
throw failed_conversion(OPKELE_CP_ "non-hex follows percent in url-encoded string");
*(ii++) = (char)strtol(tmp,0,16);
break;