summaryrefslogtreecommitdiff
path: root/sametime/sametime.cpp
diff options
context:
space:
mode:
author(no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10>2008-11-24 12:06:54 +0000
committer(no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10>2008-11-24 12:06:54 +0000
commit2493987e8492b4b637693cc0e0564449d9a336ab (patch)
tree1b928eb39c9e2c8977568c606dc2f05d4cb6461b /sametime/sametime.cpp
parent942beff30d10baec95274eed06e1d995538c7f48 (diff)
fix utf conversion of status messages
handle 'in a meeting' status version change git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@430 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'sametime/sametime.cpp')
-rw-r--r--sametime/sametime.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/sametime/sametime.cpp b/sametime/sametime.cpp
index 75ed96a..d9d8076 100644
--- a/sametime/sametime.cpp
+++ b/sametime/sametime.cpp
@@ -16,6 +16,8 @@ char PROTO_GROUPS[128];
bool unicode_chat = false;
int code_page = CP_ACP;
+MM_INTERFACE mmi;
+UTF8_INTERFACE utfi;
HINSTANCE hInst;
PLUGINLINK *pluginLink;
@@ -35,7 +37,7 @@ bool is_idle = false;
PLUGININFOEX pluginInfo={
sizeof(PLUGININFOEX),
"Sametime Protocol",
- PLUGIN_MAKE_VERSION(0, 5, 8, 0),
+ PLUGIN_MAKE_VERSION(0, 5, 9, 0),
"Implementation of Instant Messaging for the Lotus Sametime protocol.",
"Scott Ellis",
"mail@scottellis.com.au",
@@ -82,13 +84,16 @@ int GetCaps(WPARAM wParam,LPARAM lParam)
ret = PF1_IM | PF1_BASICSEARCH | PF1_EXTSEARCHUI | PF1_ADDSEARCHRES | PF1_MODEMSG | PF1_FILE | PF1_CHAT;
break;
case PFLAGNUM_2:
- ret = PF2_ONLINE | PF2_SHORTAWAY | PF2_HEAVYDND;
+ ret = PF2_ONLINE | PF2_SHORTAWAY | PF2_HEAVYDND | PF2_LIGHTDND;
break;
case PFLAGNUM_3:
ret = PF2_ONLINE | PF2_SHORTAWAY | PF2_HEAVYDND;
break;
case PFLAGNUM_4:
- ret = PF4_SUPPORTTYPING;
+ ret = PF4_SUPPORTTYPING;
+ break;
+ case PFLAGNUM_5:
+ ret = PF2_LIGHTDND;
break;
case PFLAG_UNIQUEIDTEXT:
ret = (int) Translate("Id");
@@ -418,7 +423,9 @@ int RecvAwayMessage(WPARAM wParam, LPARAM lParam) {
CCSDATA* ccs = (CCSDATA*)lParam;
PROTORECVEVENT* pre = (PROTORECVEVENT*)ccs->lParam;
- ProtoBroadcastAck(PROTO, ccs->hContact, ACKTYPE_AWAYMSG, ACKRESULT_SUCCESS, (HANDLE)1, (LPARAM)pre->szMessage);
+ char *msg = utfi.utf8_decodecp(pre->szMessage, code_page, 0);
+ ProtoBroadcastAck(PROTO, ccs->hContact, ACKTYPE_AWAYMSG, ACKRESULT_SUCCESS, (HANDLE)1, (LPARAM)msg);
+ mir_free(msg);
return 0;
}
@@ -770,6 +777,9 @@ extern "C" SAMETIME_API int Load(PLUGINLINK *link)
if(ServiceExists(MS_LANGPACK_GETCODEPAGE))
code_page = CallService(MS_LANGPACK_GETCODEPAGE, 0, 0);
+ mir_getMMI(&mmi);
+ mir_getUTFI(&utfi);
+
if(ServiceExists(MS_DB_SETSETTINGRESIDENT)) { // 0.6+
char buff[256];