From 9adad45b0f46ae6ce3e9fe50e855985326045f86 Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Thu, 7 May 2015 17:10:55 -0400
Subject: [PATCH] string_util: Get rid of UriDecode/UriEncode

---
 src/common/string_util.cpp | 125 -------------------------------------
 src/common/string_util.h   |   2 -
 2 files changed, 127 deletions(-)

diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp
index 6563611fdc..3a6e51daac 100644
--- a/src/common/string_util.cpp
+++ b/src/common/string_util.cpp
@@ -287,131 +287,6 @@ std::string ReplaceAll(std::string result, const std::string& src, const std::st
     return result;
 }
 
-// UriDecode and UriEncode are from http://www.codeguru.com/cpp/cpp/string/conversions/print.php/c12759
-// by jinq0123 (November 2, 2006)
-
-// Uri encode and decode.
-// RFC1630, RFC1738, RFC2396
-
-//#include <string>
-//#include <assert.h>
-
-const char HEX2DEC[256] =
-{
-    /*       0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F */
-    /* 0 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* 1 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* 2 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* 3 */  0, 1, 2, 3,  4, 5, 6, 7,  8, 9,16,16, 16,16,16,16,
-
-    /* 4 */ 16,10,11,12, 13,14,15,16, 16,16,16,16, 16,16,16,16,
-    /* 5 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* 6 */ 16,10,11,12, 13,14,15,16, 16,16,16,16, 16,16,16,16,
-    /* 7 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-
-    /* 8 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* 9 */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* A */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* B */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-
-    /* C */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* D */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* E */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16,
-    /* F */ 16,16,16,16, 16,16,16,16, 16,16,16,16, 16,16,16,16
-};
-
-std::string UriDecode(const std::string & sSrc)
-{
-    // Note from RFC1630:  "Sequences which start with a percent sign
-    // but are not followed by two hexadecimal characters (0-9, A-F) are reserved
-    // for future extension"
-
-    const unsigned char * pSrc = (const unsigned char *)sSrc.c_str();
-    const size_t SRC_LEN = sSrc.length();
-    const unsigned char * const SRC_END = pSrc + SRC_LEN;
-    const unsigned char * const SRC_LAST_DEC = SRC_END - 2;   // last decodable '%'
-
-    char * const pStart = new char[SRC_LEN];
-    char * pEnd = pStart;
-
-    while (pSrc < SRC_LAST_DEC)
-    {
-        if (*pSrc == '%')
-        {
-            char dec1, dec2;
-            if (16 != (dec1 = HEX2DEC[*(pSrc + 1)])
-                && 16 != (dec2 = HEX2DEC[*(pSrc + 2)]))
-            {
-                *pEnd++ = (dec1 << 4) + dec2;
-                pSrc += 3;
-                continue;
-            }
-        }
-
-        *pEnd++ = *pSrc++;
-    }
-
-    // the last 2- chars
-    while (pSrc < SRC_END)
-        *pEnd++ = *pSrc++;
-
-    std::string sResult(pStart, pEnd);
-    delete [] pStart;
-    return sResult;
-}
-
-// Only alphanum is safe.
-const char SAFE[256] =
-{
-    /*      0 1 2 3  4 5 6 7  8 9 A B  C D E F */
-    /* 0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* 1 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* 2 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* 3 */ 1,1,1,1, 1,1,1,1, 1,1,0,0, 0,0,0,0,
-
-    /* 4 */ 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1,
-    /* 5 */ 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,0,
-    /* 6 */ 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1,
-    /* 7 */ 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,0,
-
-    /* 8 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* 9 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* A */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* B */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-
-    /* C */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* D */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* E */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
-    /* F */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0
-};
-
-std::string UriEncode(const std::string & sSrc)
-{
-    const char DEC2HEX[16 + 1] = "0123456789ABCDEF";
-    const unsigned char * pSrc = (const unsigned char *)sSrc.c_str();
-    const size_t SRC_LEN = sSrc.length();
-    unsigned char * const pStart = new unsigned char[SRC_LEN * 3];
-    unsigned char * pEnd = pStart;
-    const unsigned char * const SRC_END = pSrc + SRC_LEN;
-
-    for (; pSrc < SRC_END; ++pSrc)
-    {
-        if (SAFE[*pSrc])
-            *pEnd++ = *pSrc;
-        else
-        {
-            // escape this char
-            *pEnd++ = '%';
-            *pEnd++ = DEC2HEX[*pSrc >> 4];
-            *pEnd++ = DEC2HEX[*pSrc & 0x0F];
-        }
-    }
-
-    std::string sResult((char *)pStart, (char *)pEnd);
-    delete [] pStart;
-    return sResult;
-}
-
 #ifdef _MSC_VER
 
 std::string UTF16ToUTF8(const std::u16string& input)
diff --git a/src/common/string_util.h b/src/common/string_util.h
index a60a846963..356da5b606 100644
--- a/src/common/string_util.h
+++ b/src/common/string_util.h
@@ -86,8 +86,6 @@ bool SplitPath(const std::string& full_path, std::string* _pPath, std::string* _
 
 void BuildCompleteFilename(std::string& _CompleteFilename, const std::string& _Path, const std::string& _Filename);
 std::string ReplaceAll(std::string result, const std::string& src, const std::string& dest);
-std::string UriDecode(const std::string & sSrc);
-std::string UriEncode(const std::string & sSrc);
 
 std::string UTF16ToUTF8(const std::u16string& input);
 std::u16string UTF8ToUTF16(const std::string& input);