On Wednesday 24 May 2006 19:23, JG wrote:
> i can confirm that too (and i've been having this for quite some time
> now, always on SVN), it seems to be on a random basis when i'm sending
> messages with umlauts. i get "error encoding to UTF-16 from "
> - and no text after the from anymore.

Changing line 105 in icqd-tcp.cpp to
if (u && u->UserEncoding() && strcmp("", u->UserEncoding()) != 0)
(added the strcmp-part) fixed this. Confirmed by JG^ in #licq.

The attached patch should fix the problem in a better way, but is so far 
untested. Observe that this is proably not the same bug as the one that 
started this thread.

The problem was that ICQUser::UserEncoding() returned "", which iconv_open 
accepted as a valid encoding, but later failed on when doing the conversion.

// Erik

-- 
All programmers are optimists.
  -- Frederick P. Brooks, Jr.

Erik Johansson
http://ejohansson.se
=== translate.cpp
==================================================================
--- translate.cpp	(revision 4211)
+++ translate.cpp	(local)
@@ -418,7 +418,10 @@
   }
   szFrom[j] = '\0';
   
-  tr = iconv_open("UCS-2BE", szFrom);
+  if (j > 0) // only use szFrom if it actually contains something
+    tr = iconv_open("UCS-2BE", szFrom);
+  else
+    tr = iconv_open("UCS_2BE", "UTF-8");
   if (tr != (iconv_t)-1)
   {
     size_t ret = iconv(tr, (ICONV_CONST char**)&szIn, &nInSize, &szOut, &nOutSize);

Reply via email to