summaryrefslogtreecommitdiff
path: root/tipper/subst.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tipper/subst.cpp')
-rw-r--r--tipper/subst.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/tipper/subst.cpp b/tipper/subst.cpp
index 58bb5c4..aeed3ac 100644
--- a/tipper/subst.cpp
+++ b/tipper/subst.cpp
@@ -139,13 +139,19 @@ TCHAR *GetLastMessageText(HANDLE hContact) {
if(dbei.cbBlob == 0 || dbei.pBlob == 0) return 0;
TCHAR *msg = 0;
- unsigned int msglen = strlen((char *)dbei.pBlob) + 1;
-
- // does blob contain unicode message?
- if(msglen < dbei.cbBlob) {
- msg = w2t((wchar_t *)(&dbei.pBlob[msglen]));
- } else {
- msg = a2t((char *)dbei.pBlob);
+ if ( ServiceExists( MS_DB_EVENT_GETTEXT )) {
+ TCHAR *buf = DbGetEventTextT( &dbei, CP_ACP );
+ msg = _tcsdup( buf );
+ mir_free( buf );
+ }
+ else {
+ unsigned int msglen = strlen((char *)dbei.pBlob) + 1;
+
+ // does blob contain unicode message?
+ if(msglen < dbei.cbBlob)
+ msg = w2t((wchar_t *)(&dbei.pBlob[msglen]));
+ else
+ msg = a2t((char *)dbei.pBlob);
}
StripBBCodesInPlace(msg);
@@ -444,3 +450,4 @@ bool GetValueText(HANDLE hContact, const DisplayItem &di, TCHAR *buff, int buffl
}
+