mcabber/src/jabglue.c
changeset 441 51b8f10cfeb8
parent 438 b44be19d6229
child 444 5927c3bfba13
--- a/mcabber/src/jabglue.c	Tue Sep 20 23:19:36 2005 +0200
+++ b/mcabber/src/jabglue.c	Wed Sep 21 22:05:43 2005 +0200
@@ -29,6 +29,7 @@
 #include "hooks.h"
 #include "utils.h"
 #include "settings.h"
+#include "hbuf.h"
 
 #define JABBERPORT      5222
 #define JABBERSSLPORT   5223
@@ -540,11 +541,11 @@
       gchar *name_noutf8 = NULL;
       gchar *group_noutf8 = NULL;
 
+      buddyname = cleanalias;
       if (name) {
         name_noutf8 = from_utf8(name);
-        buddyname = name_noutf8;
-      } else
-        buddyname = cleanalias;
+        if (name_noutf8) buddyname = name_noutf8;
+      }
 
       if (group)
         group_noutf8 = from_utf8(group);
@@ -565,6 +566,18 @@
   char *jid;
   gchar *buffer = from_utf8(body);
 
+  jid = jidtodisp(from);
+
+  if (!buffer && body) {
+    scr_LogPrint(LPRINT_LOGNORM, "Decoding of message from <%s> has failed",
+                 from);
+    scr_WriteIncomingMessage(jid, "Cannot display message: "
+                             "UTF-8 conversion failure",
+                             0, HBB_PREFIX_ERR | HBB_PREFIX_IN);
+    g_free(jid);
+    return;
+  }
+
   /*
   //char *u, *h, *r;
   //jidsplit(from, &u, &h, &r);
@@ -576,7 +589,6 @@
   //             jidtodisp(from), type);
   */
 
-  jid = jidtodisp(from);
   hk_message_in(jid, timestamp, buffer, type);
   g_free(jid);
   g_free(buffer);