diff options
Diffstat (limited to 'plugins/AVS/src/cache.cpp')
-rw-r--r-- | plugins/AVS/src/cache.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/plugins/AVS/src/cache.cpp b/plugins/AVS/src/cache.cpp index 76526891be..01e3c65a23 100644 --- a/plugins/AVS/src/cache.cpp +++ b/plugins/AVS/src/cache.cpp @@ -125,12 +125,11 @@ void NotifyMetaAware(MCONTACT hContact, CacheNode *node, AVATARCACHEENTRY *ace) // Fire the event for avatar history
node->dwFlags &= ~AVH_MUSTNOTIFY;
if (node->szFilename[0] != '\0') {
- CONTACTAVATARCHANGEDNOTIFICATION cacn = { 0 };
+ CONTACTAVATARCHANGEDNOTIFICATION cacn = {};
cacn.cbSize = sizeof(CONTACTAVATARCHANGEDNOTIFICATION);
cacn.hContact = hContact;
cacn.format = node->pa_format;
- _tcsncpy(cacn.filename, node->szFilename, MAX_PATH);
- cacn.filename[MAX_PATH - 1] = 0;
+ _tcsncpy_s(cacn.filename, node->szFilename, _TRUNCATE);
// Get hash
char *szProto = GetContactProto(hContact);
@@ -139,6 +138,8 @@ void NotifyMetaAware(MCONTACT hContact, CacheNode *node, AVATARCACHEENTRY *ace) if (!db_get_s(hContact, szProto, "AvatarHash", &dbv)) {
if (dbv.type == DBVT_TCHAR)
_tcsncpy_s(cacn.hash, dbv.ptszVal, _TRUNCATE);
+ else if (dbv.type == DBVT_ASCIIZ)
+ _tcsncpy_s(cacn.hash, _A2T(dbv.pszVal), _TRUNCATE);
else if (dbv.type == DBVT_BLOB) {
ptrA szHash(mir_base64_encode(dbv.pbVal, dbv.cpbVal));
_tcsncpy_s(cacn.hash, _A2T(szHash), _TRUNCATE);
@@ -151,7 +152,7 @@ void NotifyMetaAware(MCONTACT hContact, CacheNode *node, AVATARCACHEENTRY *ace) if (cacn.hash[0] == '\0')
mir_sntprintf(cacn.hash, _T("AVS-HASH-%x"), GetFileHash(cacn.filename));
- NotifyEventHooks(hEventContactAvatarChanged, (WPARAM)cacn.hContact, (LPARAM)&cacn);
+ NotifyEventHooks(hEventContactAvatarChanged, hContact, (LPARAM)&cacn);
}
else NotifyEventHooks(hEventContactAvatarChanged, hContact, NULL);
}
|