changeset 383:39c5da51b387

Remove utf8 files, use Glib
author Mikael Berthe <mikael@lilotux.net>
date Thu, 28 Jul 2005 13:16:36 +0100
parents 685ac4c2e502
children d59e9b8c91d3
files mcabber/src/Makefile.am mcabber/src/commands.c mcabber/src/hooks.c mcabber/src/jabglue.c
diffstat 6 files changed, 27 insertions(+), 98 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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"
 
--- 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;
--- 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:
--- 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 <stdlib.h>
-#include <string.h>
-
-#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;
-}
--- 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