On Sat, 24 Nov 2007 03:58:49 +0200 Nerijus Baliunas <[EMAIL PROTECTED]> wrote:

> I found an older thread about this problem -
> http://www.mail-archive.com/[email protected]/msg00066.html
> After reading it I understand that there are 2 problems with licq UTF-8 
> support:
> 
> 1. licq doesn't send CAP_UTF8 (but it is needed for receiving UTF-8 messages
> only, see below).
> 
> 2. http://www.mail-archive.com/[email protected]/msg00077.html :
> ________________
> > wrong? Seems to me, that setting CAP_UTF8 is not enough since miranda
> > and micq understand each other without problems or even codepage
> > overrides.
> 
> I promised to quote this from micq mailing list and it prooves what I
> said above:
> 
> > The capability is needed so that other clients know that the client
> > can receive unicode messages. For sending messages, they just have
> > to be tagged accordingly. Unacknowledged messages (type-1) get the
> > encoding field (an int) set accordingly, and the message will be in
> > UCS-2BE. For acknowledged messages, the message will be in UTF-8, and
> > the capability as a GUID needs to be in the message.
> ________________
> 
> So my proposal is:
> CAP_UTF8 should be added (or 
> http://trac.licq.org/attachment/ticket/1445/newdiff.patch?format=raw
> applied), as otherwise licq cannot receive UTF-8 messages from some clients
> (Miranda for example).

Tried to do this with the following patch:

--- src/icqpacket.cpp   (revision 5923)
+++ src/icqpacket.cpp   (working copy)
@@ -923,7 +923,7 @@
 CPU_CapabilitySettings::CPU_CapabilitySettings()
   : CPU_CommonFamily(ICQ_SNACxFAM_LOCATION, ICQ_SNACxLOC_SETxUSERxINFO)
 {
-  char data[7][CAP_LENGTH];
+  char data[8][CAP_LENGTH];
   m_nSize += 4 + sizeof(data);
   InitBuffer();
 
@@ -934,6 +934,7 @@
   memcpy(data[4], ICQ_CAPABILITY_AIMxINTER, CAP_LENGTH);
   memcpy(data[5], ICQ_CAPABILITY_RTFxMSGS, CAP_LENGTH);
   memcpy(data[6], ICQ_CAPABILITY_ICHAT, CAP_LENGTH);
+  memcpy(data[7], ICQ_CAPABILITY_UTF8, CAP_LENGTH);
 
   // Send our licq version
   data[3][12] = INT_VERSION / 1000;

But I still cannot receive UTF8 messages from Miranda. Now looking
at the Miranda source if it has some special dealing with licq...

Regards,
Nerijus

Reply via email to