curl_escape() no longer attempts to detect already encoded stuff (in order
authorDaniel Stenberg <daniel@haxx.se>
Sun, 5 Aug 2001 12:34:07 +0000 (12:34 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 5 Aug 2001 12:34:07 +0000 (12:34 +0000)
not to re-encode it).

lib/escape.c

index 140bd65..b5d3525 100644 (file)
@@ -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 {