diff options
Diffstat (limited to 'tipper/subst.cpp')
-rw-r--r-- | tipper/subst.cpp | 21 |
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 }
+
|