diff options
Diffstat (limited to 'protocols/WhatsApp/src/utils.cpp')
-rw-r--r-- | protocols/WhatsApp/src/utils.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/protocols/WhatsApp/src/utils.cpp b/protocols/WhatsApp/src/utils.cpp index 5680c7ab1d..880b0e9469 100644 --- a/protocols/WhatsApp/src/utils.cpp +++ b/protocols/WhatsApp/src/utils.cpp @@ -96,6 +96,9 @@ void LT_HASH::sub(const void *pData, size_t len) WAUser* WhatsAppProto::FindUser(const char *szId) { + if (szId == nullptr) + return nullptr; + mir_cslock lck(m_csUsers); auto *tmp = (WAUser *)_alloca(sizeof(WAUser)); tmp->szId = (char*)szId; @@ -413,12 +416,21 @@ CMStringA file2string(const wchar_t *pwszFileName) return res; } -CMStringA getMessageText(const Wa__Message *pMessage) +CMStringA WhatsAppProto::GetMessageText(const Wa__Message *pMessage) { CMStringA szMessageText; if (pMessage) { if (auto *pExt = pMessage->extendedtextmessage) { + if (pExt->title) { + if (m_bUseBbcodes) + szMessageText.Append("<b>"); + szMessageText.Append(pExt->title); + if (m_bUseBbcodes) + szMessageText.Append("</b>"); + szMessageText.Append("\n"); + } + if (pExt->contextinfo && pExt->contextinfo->quotedmessage) szMessageText.AppendFormat("> %s\n\n", pExt->contextinfo->quotedmessage->conversation); @@ -446,8 +458,14 @@ void proto::CleanBinary(ProtobufCBinaryData &field) ProtobufCBinaryData proto::SetBinary(const void *pData, size_t len) { ProtobufCBinaryData res; - res.data = (uint8_t*)malloc(res.len = len); - memcpy(res.data, pData, len); + if (pData == nullptr) { + res.data = nullptr; + res.len = 0; + } + else { + res.data = (uint8_t *)malloc(res.len = len); + memcpy(res.data, pData, len); + } return res; } |