summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/ICQ-WIM/src/server.cpp14
-rw-r--r--protocols/ICQ-WIM/src/utils.cpp13
2 files changed, 13 insertions, 14 deletions
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp
index 54a1d7d52e..c2ef85ff90 100644
--- a/protocols/ICQ-WIM/src/server.cpp
+++ b/protocols/ICQ-WIM/src/server.cpp
@@ -175,14 +175,8 @@ IcqFileInfo *CIcqProto::RetrieveFileInfo(MCONTACT hContact, const CMStringW &wsz
bool CIcqProto::CheckFile(MCONTACT hContact, CMStringW &wszText, IcqFileInfo *&pFileInfo)
{
- bool bRet;
CMStringW wszUrl;
- int idx = wszText.Find(' ');
- if (idx == -1)
- bRet = fileText2url(wszText, &wszUrl);
- else
- bRet = fileText2url(wszText.Mid(0, idx), &wszUrl);
- if (!bRet)
+ if (!fileText2url(wszText, &wszUrl))
return false;
pFileInfo = nullptr;
@@ -192,9 +186,9 @@ bool CIcqProto::CheckFile(MCONTACT hContact, CMStringW &wszText, IcqFileInfo *&p
if (!pFileInfo)
return false;
- if (idx != -1) {
- pFileInfo->szOrigUrl = wszText.Mid(0, idx);
- wszText.Delete(0, idx + 1);
+ if (wszUrl != wszText) {
+ pFileInfo->szOrigUrl = wszUrl;
+ wszText.Delete(0, wszUrl.GetLength() + 1);
}
else {
pFileInfo->szOrigUrl = wszText;
diff --git a/protocols/ICQ-WIM/src/utils.cpp b/protocols/ICQ-WIM/src/utils.cpp
index e11b1bb17c..2c36c3fb86 100644
--- a/protocols/ICQ-WIM/src/utils.cpp
+++ b/protocols/ICQ-WIM/src/utils.cpp
@@ -271,16 +271,21 @@ bool fileText2url(const CMStringW &wszText, CMStringW *res)
if (!mir_wstrncmp(wszText, L"https://files.icq.net/get/", 26)) {
if (res)
*res = wszText.Mid(26);
- return true;
}
-
- if (!mir_wstrncmp(wszText, L"http://files.icq.net/get/", 25)) {
+ else if (!mir_wstrncmp(wszText, L"http://files.icq.net/get/", 25)) {
if (res)
*res = wszText.Mid(25);
return true;
}
+ else return false;
+
+ if (res) {
+ int idx = res->FindOneOf(L" \r\n\t");
+ if (idx != -1)
+ *res = res->Mid(0, idx);
+ }
- return false;
+ return true;
}
/////////////////////////////////////////////////////////////////////////////////////////