changeset 321:59193965f2cb

Convert status messages to/from UTF-8
author Mikael Berthe <mikael@lilotux.net>
date Fri, 15 Jul 2005 19:12:50 +0100
parents dce1dd4d0ca8
children da138cdebf04
files mcabber/src/jabglue.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/jabglue.c	Fri Jul 15 18:55:27 2005 +0100
+++ b/mcabber/src/jabglue.c	Fri Jul 15 19:12:50 2005 +0100
@@ -250,6 +250,7 @@
 void jb_setstatus(enum imstatus st, const char *msg)
 {
   xmlnode x;
+  char *utf8_msg;
 
   if (!online) return;
 
@@ -298,11 +299,13 @@
   if (!msg)
       msg = settings_get_status_msg(st);
 
-  xmlnode_insert_cdata(xmlnode_insert_tag(x, "status"), msg,
+  utf8_msg = utf8_encode(msg);
+  xmlnode_insert_cdata(xmlnode_insert_tag(x, "status"), utf8_msg,
           (unsigned) -1);
 
   jab_send(jc, x);
   xmlnode_free(x);
+  free(utf8_msg);
 
   //sendvisibility();   ???
 
@@ -852,12 +855,11 @@
           }
         }
 
-        if (type && !strcmp(type, "unavailable")) {
+        if (type && !strcmp(type, "unavailable"))
           ust = offline;
-        }
 
         if ((x = xmlnode_get_tag(packet->x, "status")) != NULL)
-          p = xmlnode_get_data(x);
+          p = utf8_decode(xmlnode_get_data(x));
         else
           p = NULL;
 
@@ -868,6 +870,7 @@
         if ((ust != roster_getstatus(r)) || (p && (!m || strcmp(p, m))))
           hk_statuschange(r, 0, ust, p);
         g_free(r);
+        if (p) free(p);
         break;
 
     case JPACKET_S10N: