diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/mir_core/src/http.cpp | 24 | ||||
| -rw-r--r-- | src/mir_core/src/mir_core.def | 1 | ||||
| -rw-r--r-- | src/mir_core/src/mir_core64.def | 1 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/mir_core/src/http.cpp b/src/mir_core/src/http.cpp index fad969c680..8d4ae7dfd6 100755 --- a/src/mir_core/src/http.cpp +++ b/src/mir_core/src/http.cpp @@ -21,6 +21,30 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. static const char szHexDigits[] = "0123456789ABCDEF";
+MIR_CORE_DLL(char*) mir_urlDecode(const char *szUrl)
+{
+ if (szUrl == nullptr)
+ return nullptr;
+
+ char *ret = mir_strdup(szUrl);
+
+ for (char *p = ret; *p; p++) {
+ switch (*p) {
+ case '%':
+ int ii;
+ sscanf(p+1, "%2x", &ii);
+ strdel(p, 2);
+ *p = ii;
+ break;
+
+ case '+':
+ *p = ' ';
+ break;
+ }
+ }
+ return ret;
+}
+
MIR_CORE_DLL(char*) mir_urlEncode(const char *szUrl)
{
if (szUrl == nullptr)
diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def index 4a744c5b5f..2626bbf556 100644 --- a/src/mir_core/src/mir_core.def +++ b/src/mir_core/src/mir_core.def @@ -154,6 +154,7 @@ wildcmpi @158 wildcmpiw @159
mir_base64_encode @160
mir_base64_decode @161
+mir_urlDecode @162
db_set_resident @165
db_set @166
mir_subclassWindowFull @218
diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def index 3f25e54f77..6a5981c157 100644 --- a/src/mir_core/src/mir_core64.def +++ b/src/mir_core/src/mir_core64.def @@ -154,6 +154,7 @@ wildcmpi @158 wildcmpiw @159
mir_base64_encode @160
mir_base64_decode @161
+mir_urlDecode @162
db_set_resident @165
db_set @166
mir_subclassWindowFull @218
|
