# HG changeset patch # User Mikael Berthe # Date 1121451170 -3600 # Node ID 59193965f2cb2a1b30df931332bc7ce8b0848640 # Parent dce1dd4d0ca881525bd5b3f41bae579f6a7c282a Convert status messages to/from UTF-8 diff -r dce1dd4d0ca8 -r 59193965f2cb mcabber/src/jabglue.c --- 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: