Mercurial > hg
diff mcabber/src/jabglue.c @ 384:d59e9b8c91d3
Merge UTF-8 changes
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 28 Jul 2005 20:24:28 +0100 |
parents | bd5638c21834 39c5da51b387 |
children | 2bbeef7b4fdd |
line wrap: on
line diff
--- a/mcabber/src/jabglue.c Thu Jul 28 20:12:23 2005 +0100 +++ b/mcabber/src/jabglue.c Thu Jul 28 20:24:28 2005 +0100 @@ -27,7 +27,6 @@ #include "roster.h" #include "screen.h" #include "hooks.h" -#include "utf8.h" #include "utils.h" #include "settings.h" @@ -238,7 +237,7 @@ void jb_setstatus(enum imstatus st, const char *msg) { xmlnode x; - char *utf8_msg; + gchar *utf8_msg; if (!online) return; @@ -287,13 +286,13 @@ if (!msg) msg = settings_get_status_msg(st); - utf8_msg = utf8_encode(msg); + utf8_msg = g_locale_to_utf8(msg, -1, NULL, NULL, NULL); xmlnode_insert_cdata(xmlnode_insert_tag(x, "status"), utf8_msg, (unsigned) -1); jab_send(jc, x); xmlnode_free(x); - free(utf8_msg); + g_free(utf8_msg); //sendvisibility(); ??? @@ -308,11 +307,11 @@ void jb_send_msg(const char *jid, const char *text) { - char *buffer = utf8_encode(text); + gchar *buffer = g_locale_to_utf8(text, -1, NULL, NULL, NULL); xmlnode x = jutil_msgnew(TMSG_CHAT, (char*)jid, 0, (char*)buffer); jab_send(jc, x); xmlnode_free(x); - free(buffer); + g_free(buffer); jb_reset_keepalive(); } @@ -338,17 +337,17 @@ xmlnode_put_attrib(z, "jid", jid); if (name) { - char *name_utf8 = utf8_encode(name); + gchar *name_utf8 = g_locale_to_utf8(name, -1, NULL, NULL, NULL); z = xmlnode_insert_tag(z, "name"); xmlnode_insert_cdata(z, name_utf8, (unsigned) -1); - free(name_utf8); + g_free(name_utf8); } if (group) { - char *group_utf8 = utf8_encode(group); + char *group_utf8 = g_locale_to_utf8(group, -1, NULL, NULL, NULL); z = xmlnode_insert_tag(z, "group"); xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); - free(group_utf8); + g_free(group_utf8); } jab_send(jc, x); @@ -408,14 +407,14 @@ { xmlnode x, y; char *cleanjid; - char *name_utf8; + gchar *name_utf8; if (!online) return; // XXX We should check name's and group's correctness cleanjid = jidtodisp(jid); - name_utf8 = utf8_encode(name); + name_utf8 = g_locale_to_utf8(name, -1, NULL, NULL, NULL); x = jutil_iqnew(JPACKET__SET, NS_ROSTER); y = xmlnode_insert_tag(xmlnode_get_tag(x, "query"), "item"); @@ -423,15 +422,15 @@ xmlnode_put_attrib(y, "name", name_utf8); if (group) { - char *group_utf8 = utf8_encode(group); + gchar *group_utf8 = g_locale_to_utf8(group, -1, NULL, NULL, NULL); y = xmlnode_insert_tag(y, "group"); xmlnode_insert_cdata(y, group_utf8, (unsigned) -1); - free(group_utf8); + g_free(group_utf8); } jab_send(jc, x); xmlnode_free(x); - free(name_utf8); + g_free(name_utf8); g_free(cleanjid); } @@ -518,19 +517,21 @@ if (alias) { char *buddyname; char *cleanalias = jidtodisp(alias); - char *name_noutf8 = NULL; - char *group_noutf8 = NULL; + gchar *name_noutf8 = NULL; + gchar *group_noutf8 = NULL; if (name) { - name_noutf8 = utf8_decode(name); + name_noutf8 = g_locale_from_utf8(name, -1, NULL, NULL, NULL); buddyname = name_noutf8; } else buddyname = cleanalias; - if (group) group_noutf8 = utf8_decode(group); + if (group) + group_noutf8 = g_locale_from_utf8(group, -1, NULL, NULL, NULL); + roster_add_user(cleanalias, buddyname, group_noutf8, ROSTER_TYPE_USER); - if (name_noutf8) free(name_noutf8); - if (group_noutf8) free(group_noutf8); + if (name_noutf8) g_free(name_noutf8); + if (group_noutf8) g_free(group_noutf8); g_free(cleanalias); } } @@ -542,7 +543,7 @@ const char *enc, time_t timestamp) { char *jid; - char *buffer = utf8_decode(body); + gchar *buffer = g_locale_from_utf8(body, -1, NULL, NULL, NULL); /* //char *u, *h, *r; @@ -558,7 +559,7 @@ jid = jidtodisp(from); hk_message_in(jid, timestamp, buffer, type); g_free(jid); - free(buffer); + g_free(buffer); } void statehandler(jconn conn, int state) @@ -851,7 +852,7 @@ ust = offline; if ((x = xmlnode_get_tag(packet->x, "status")) != NULL) - p = utf8_decode(xmlnode_get_data(x)); + p = g_locale_from_utf8(xmlnode_get_data(x), -1, NULL, NULL, NULL); else p = NULL; @@ -862,7 +863,7 @@ if ((ust != roster_getstatus(r)) || (p && (!m || strcmp(p, m)))) hk_statuschange(r, 0, ust, p); g_free(r); - if (p) free(p); + if (p) g_free(p); break; case JPACKET_S10N: