# HG changeset patch # User Mikael Berthe # Date 1122660547 -3600 # Node ID 2bbeef7b4fddf770bd9e3bebf68c449914ec7efb # Parent 41ef80a34ba507804716c0aa80bea066ae68331c Do non UTF8-encode/decode null pointers diff -r 41ef80a34ba5 -r 2bbeef7b4fdd mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Fri Jul 29 18:40:03 2005 +0100 +++ b/mcabber/src/jabglue.c Fri Jul 29 19:09:07 2005 +0100 @@ -35,6 +35,9 @@ #define JABBER_AGENT_GROUP "Jabber Agents" +#define to_utf8(s) ((s) ? g_locale_to_utf8((s), -1, NULL,NULL,NULL) : NULL) +#define from_utf8(s) ((s) ? g_locale_from_utf8((s), -1, NULL,NULL,NULL) : NULL) + jconn jc; static time_t LastPingTime; static unsigned int KeepaliveDelay; @@ -286,7 +289,7 @@ if (!msg) msg = settings_get_status_msg(st); - utf8_msg = g_locale_to_utf8(msg, -1, NULL, NULL, NULL); + utf8_msg = to_utf8(msg); xmlnode_insert_cdata(xmlnode_insert_tag(x, "status"), utf8_msg, (unsigned) -1); @@ -307,7 +310,7 @@ void jb_send_msg(const char *jid, const char *text) { - gchar *buffer = g_locale_to_utf8(text, -1, NULL, NULL, NULL); + gchar *buffer = to_utf8(text); xmlnode x = jutil_msgnew(TMSG_CHAT, (char*)jid, 0, (char*)buffer); jab_send(jc, x); xmlnode_free(x); @@ -337,14 +340,14 @@ xmlnode_put_attrib(z, "jid", jid); if (name) { - gchar *name_utf8 = g_locale_to_utf8(name, -1, NULL, NULL, NULL); + gchar *name_utf8 = to_utf8(name); z = xmlnode_insert_tag(z, "name"); xmlnode_insert_cdata(z, name_utf8, (unsigned) -1); g_free(name_utf8); } if (group) { - char *group_utf8 = g_locale_to_utf8(group, -1, NULL, NULL, NULL); + char *group_utf8 = to_utf8(group); z = xmlnode_insert_tag(z, "group"); xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); g_free(group_utf8); @@ -414,7 +417,7 @@ // XXX We should check name's and group's correctness cleanjid = jidtodisp(jid); - name_utf8 = g_locale_to_utf8(name, -1, NULL, NULL, NULL); + name_utf8 = to_utf8(name); x = jutil_iqnew(JPACKET__SET, NS_ROSTER); y = xmlnode_insert_tag(xmlnode_get_tag(x, "query"), "item"); @@ -422,7 +425,7 @@ xmlnode_put_attrib(y, "name", name_utf8); if (group) { - gchar *group_utf8 = g_locale_to_utf8(group, -1, NULL, NULL, NULL); + gchar *group_utf8 = to_utf8(group); y = xmlnode_insert_tag(y, "group"); xmlnode_insert_cdata(y, group_utf8, (unsigned) -1); g_free(group_utf8); @@ -521,13 +524,13 @@ gchar *group_noutf8 = NULL; if (name) { - name_noutf8 = g_locale_from_utf8(name, -1, NULL, NULL, NULL); + name_noutf8 = from_utf8(name); buddyname = name_noutf8; } else buddyname = cleanalias; if (group) - group_noutf8 = g_locale_from_utf8(group, -1, NULL, NULL, NULL); + group_noutf8 = from_utf8(group); roster_add_user(cleanalias, buddyname, group_noutf8, ROSTER_TYPE_USER); if (name_noutf8) g_free(name_noutf8); @@ -543,7 +546,7 @@ const char *enc, time_t timestamp) { char *jid; - gchar *buffer = g_locale_from_utf8(body, -1, NULL, NULL, NULL); + gchar *buffer = from_utf8(body); /* //char *u, *h, *r; @@ -852,7 +855,7 @@ ust = offline; if ((x = xmlnode_get_tag(packet->x, "status")) != NULL) - p = g_locale_from_utf8(xmlnode_get_data(x), -1, NULL, NULL, NULL); + p = from_utf8(xmlnode_get_data(x)); else p = NULL;