# HG changeset patch # User Mikael Berthe # Date 1122552996 -3600 # Node ID 39c5da51b3872b59386109dfbeb95f0d2b5a487c # Parent 685ac4c2e5025035cc61623f70bed899188d3d53 Remove utf8 files, use Glib diff -r 685ac4c2e502 -r 39c5da51b387 mcabber/src/Makefile.am --- a/mcabber/src/Makefile.am Tue Jul 26 20:15:36 2005 +0100 +++ b/mcabber/src/Makefile.am Thu Jul 28 13:16:36 2005 +0100 @@ -4,7 +4,7 @@ hbuf.c hbuf.h screen.c screen.h logprint.h \ settings.c settings.h \ hooks.c hooks.h histolog.c histolog.h \ - utf8.c utf8.h utils.c utils.h list.h harddefines.h + utils.c utils.h list.h harddefines.h LDADD = -lglib-2.0 -lncurses -lpanel \ ../libjabber/liblibjabber.a ../connwrap/libconnwrap.a diff -r 685ac4c2e502 -r 39c5da51b387 mcabber/src/commands.c --- a/mcabber/src/commands.c Tue Jul 26 20:15:36 2005 +0100 +++ b/mcabber/src/commands.c Thu Jul 28 13:16:36 2005 +0100 @@ -28,7 +28,6 @@ #include "compl.h" #include "hooks.h" #include "hbuf.h" -#include "utf8.h" #include "utils.h" #include "settings.h" diff -r 685ac4c2e502 -r 39c5da51b387 mcabber/src/hooks.c --- a/mcabber/src/hooks.c Tue Jul 26 20:15:36 2005 +0100 +++ b/mcabber/src/hooks.c Thu Jul 28 13:16:36 2005 +0100 @@ -26,7 +26,6 @@ #include "screen.h" #include "roster.h" #include "histolog.h" -#include "utf8.h" #include "hbuf.h" static char *extcmd; diff -r 685ac4c2e502 -r 39c5da51b387 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Tue Jul 26 20:15:36 2005 +0100 +++ b/mcabber/src/jabglue.c Thu Jul 28 13:16:36 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: diff -r 685ac4c2e502 -r 39c5da51b387 mcabber/src/utf8.c --- a/mcabber/src/utf8.c Tue Jul 26 20:15:36 2005 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -#include -#include - -#include "utf8.h" - - -/* Desc: convert UTF8 -> ASCII - * - * In : UTF8 string - * Out : ASCII string - * - * Note: it is up to the caller to free the returned string - */ -char *utf8_decode(const char *src) -{ - unsigned char *ret, *aux; - - if (!src) return NULL; - - aux = ret = calloc(1, strlen(src) + 1); - - while (*src) { - unsigned char lead = *src++; - if ((lead & 0xe0) == 0xc0) { - unsigned char ch2 = *src++; - *aux = ((lead & 0x1f) << 6) | (ch2 & 0x3f); - } else { - *aux = lead; - } - aux++; - } - - return (char*)ret; -} - - -/* Desc: convert ASCII -> UTF8 - * - * In : ASCII string - * Out : UTF8 string - * - * Note: it is up to the caller to free the returned string - */ -char *utf8_encode(const char *src) -{ - unsigned char *ret, *aux; - - if (!src) return NULL; - - aux = ret = calloc(1, (strlen(src) * 2) + 1); - - while (*src) { - unsigned char ch = *src++; - if (ch < 0x80U) { - *aux++ = ch; - } else { /* if (ch < 0x800U) { */ - *aux++ = 0xc0 | (ch >> 6); - *aux++ = 0x80 | (ch & 0x3f); - } - } - - return (char*)ret; -} diff -r 685ac4c2e502 -r 39c5da51b387 mcabber/src/utf8.h --- a/mcabber/src/utf8.h Tue Jul 26 20:15:36 2005 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -#ifndef __UTF8_H__ -#define __UTF8_H__ 1 - -char *utf8_decode(const char *src); -char *utf8_encode(const char *src); - -#endif