summaryrefslogtreecommitdiff
path: root/protocols/WhatsApp/src/utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/WhatsApp/src/utils.cpp')
-rw-r--r--protocols/WhatsApp/src/utils.cpp24
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;
}