diff mcabber/src/jab_iq.c @ 772:464be13343a9

Store most data in UTF-8 internally Only chat buffer data is still using 1 byte for char size. User input still doesn't handle UTF-8 locales.
author Mikael Berthe <mikael@lilotux.net>
date Sat, 25 Mar 2006 18:10:36 +0100
parents 3a76c2d73606
children 46304b773a44
line wrap: on
line diff
--- a/mcabber/src/jab_iq.c	Sat Mar 25 18:00:40 2006 +0100
+++ b/mcabber/src/jab_iq.c	Sat Mar 25 18:10:36 2006 +0100
@@ -167,15 +167,12 @@
 {
   xmlnode y;
   const char *jid, *name, *group, *sub, *ask;
-  char *buddyname;
   char *cleanalias;
   enum subscr esub;
   int need_refresh = FALSE;
   guint roster_type;
 
   for (y = xmlnode_get_tag(x, "item"); y; y = xmlnode_get_nextsibling(y)) {
-    gchar *name_noutf8 = NULL;
-    gchar *group_noutf8 = NULL;
 
     jid = xmlnode_get_attrib(y, "jid");
     name = xmlnode_get_attrib(y, "name");
@@ -187,7 +184,7 @@
     if (!jid)
       continue;
 
-    buddyname = cleanalias = jidtodisp(jid);
+    cleanalias = jidtodisp(jid);
 
     esub = sub_none;
     if (sub) {
@@ -209,21 +206,8 @@
     if (ask && !strcmp(ask, "subscribe"))
       esub |= sub_pending;
 
-    if (name) {
-      name_noutf8 = from_utf8(name);
-      if (name_noutf8)
-        buddyname = name_noutf8;
-      else
-        scr_LogPrint(LPRINT_LOG, "Decoding of buddy alias has failed: %s",
-                     name);
-    }
-
-    if (group) {
-      group_noutf8 = from_utf8(group);
-      if (!group_noutf8)
-        scr_LogPrint(LPRINT_LOG, "Decoding of buddy group has failed: %s",
-                     group);
-    }
+    if (!name)
+      name = cleanalias;
 
     // Tricky... :-\  My guess is that if there is no '@', this is an agent
     if (strchr(cleanalias, '@'))
@@ -231,10 +215,8 @@
     else
       roster_type = ROSTER_TYPE_AGENT;
 
-    roster_add_user(cleanalias, buddyname, group_noutf8, roster_type, esub);
+    roster_add_user(cleanalias, name, group, roster_type, esub);
 
-    if (name_noutf8)  g_free(name_noutf8);
-    if (group_noutf8) g_free(group_noutf8);
     g_free(cleanalias);
   }
 
@@ -244,7 +226,7 @@
     scr_ShowBuddyWindow();
 }
 
-void iqscallback_version(eviqs *iqp, xmlnode xml_result, guint iqcontext)
+static void iqscallback_version(eviqs *iqp, xmlnode xml_result, guint iqcontext)
 {
   xmlnode ansqry;
   char *p, *p_noutf8;
@@ -265,12 +247,7 @@
     scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:version result (no sender name).");
     return;
   }
-  bjid = from_utf8(p);
-  if (!bjid) {
-    scr_LogPrint(LPRINT_LOGNORM, "UTF-8 decoding error in IQ:version result "
-                 "(sender name).");
-    return;
-  }
+  bjid = p;
 
   buf = g_strdup_printf("IQ:version result from <%s>", bjid);
   scr_LogPrint(LPRINT_LOGNORM, "%s", buf);
@@ -313,22 +290,19 @@
       g_free(buf);
     }
   }
-  g_free(bjid);
 }
 
 void request_version(const char *fulljid)
 {
   eviqs *iqn;
-  gchar *utf8_jid = to_utf8(fulljid);
 
   iqn = iqs_new(JPACKET__GET, NS_VERSION, "version", IQS_DEFAULT_TIMEOUT);
-  xmlnode_put_attrib(iqn->xmldata, "to", utf8_jid);
-  if (utf8_jid) g_free(utf8_jid);
+  xmlnode_put_attrib(iqn->xmldata, "to", fulljid);
   iqn->callback = &iqscallback_version;
   jab_send(jc, iqn->xmldata);
 }
 
-void iqscallback_time(eviqs *iqp, xmlnode xml_result, guint iqcontext)
+static void iqscallback_time(eviqs *iqp, xmlnode xml_result, guint iqcontext)
 {
   xmlnode ansqry;
   char *p, *p_noutf8;
@@ -349,12 +323,7 @@
     scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:time result (no sender name).");
     return;
   }
-  bjid = from_utf8(p);
-  if (!bjid) {
-    scr_LogPrint(LPRINT_LOGNORM, "UTF-8 decoding error in IQ:time result "
-                 "(sender name).");
-    return;
-  }
+  bjid = p;
 
   buf = g_strdup_printf("IQ:time result from <%s>", bjid);
   scr_LogPrint(LPRINT_LOGNORM, "%s", buf);
@@ -397,17 +366,14 @@
       g_free(buf);
     }
   }
-  g_free(bjid);
 }
 
 void request_time(const char *fulljid)
 {
   eviqs *iqn;
-  gchar *utf8_jid = to_utf8(fulljid);
 
   iqn = iqs_new(JPACKET__GET, NS_TIME, "time", IQS_DEFAULT_TIMEOUT);
-  xmlnode_put_attrib(iqn->xmldata, "to", utf8_jid);
-  if (utf8_jid) g_free(utf8_jid);
+  xmlnode_put_attrib(iqn->xmldata, "to", fulljid);
   iqn->callback = &iqscallback_time;
   jab_send(jc, iqn->xmldata);
 }