From 2827f5327aad6a0341b4ed3231e414ff9a980101 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 5 Aug 2001 12:34:07 +0000 Subject: curl_escape() no longer attempts to detect already encoded stuff (in order not to re-encode it). --- lib/escape.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) (limited to 'lib/escape.c') diff --git a/lib/escape.c b/lib/escape.c index 140bd655e..b5d35255d 100644 --- a/lib/escape.c +++ b/lib/escape.c @@ -54,28 +54,15 @@ char *curl_escape(char *string, int length) !(in >= 'A' && in <= 'Z') && !(in >= '0' && in <= '9')) { /* encode it */ - if(('%' == in) && - (length>=2) && - isxdigit((int)string[1]) && - isxdigit((int)string[2]) ) { - /* - * This is an already encoded letter, leave it! - */ - memcpy(&ns[index], string, 3); - string+=2; + newlen += 2; /* the size grows with two, since this'll become a %XX */ + if(newlen > alloc) { + alloc *= 2; + ns = realloc(ns, alloc); + if(!ns) + return NULL; } - else { - /* encode this now */ + sprintf(&ns[index], "%%%02X", in); - newlen += 2; /* the size grows with two, since this'll become a %XX */ - if(newlen > alloc) { - alloc *= 2; - ns = realloc(ns, alloc); - if(!ns) - return NULL; - } - sprintf(&ns[index], "%%%02X", in); - } index+=3; } else { -- cgit v1.2.3