diff libpurple/protocols/gg/lib/pubdir50.c @ 31860:93b08d43f684

matekm and kkszysiu collaborated on this patch to update our internal libgadu to version 1.10.1.
author John Bailey <rekkanoryo@rekkanoryo.org>
date Thu, 24 Mar 2011 20:53:13 +0000
parents a8cc50c2279f
children 8b9e9c61d061 3a90a59ddea2
line wrap: on
line diff
--- a/libpurple/protocols/gg/lib/pubdir50.c	Thu Mar 24 15:18:14 2011 +0000
+++ b/libpurple/protocols/gg/lib/pubdir50.c	Thu Mar 24 20:53:13 2011 +0000
@@ -1,5 +1,3 @@
-/* $Id: pubdir50.c 854 2009-10-12 21:06:28Z wojtekka $ */
-
 /*
  *  (C) Copyright 2003 Wojtek Kaniewski <wojtekka@irc.pl>
  *
@@ -22,6 +20,9 @@
  * \file pubdir50.c
  *
  * \brief Obsługa katalogu publicznego od wersji Gadu-Gadu 5.x
+ *
+ * \todo Zoptymalizować konwersję CP1250<->UTF8. Obecnie robiona jest
+ * testowa konwersja, żeby poznać długość tekstu wynikowego.
  */
 
 #include <errno.h>
@@ -31,6 +32,7 @@
 
 #include "libgadu.h"
 #include "libgadu-internal.h"
+#include "encoding.h"
 
 /**
  * Tworzy nowe zapytanie katalogu publicznego.
@@ -224,7 +226,8 @@
 		} else {
 			char *tmp;
 
-			tmp = gg_utf8_to_cp(req->entries[i].field);
+			// XXX \todo zoptymalizować
+			tmp = gg_encoding_convert(req->entries[i].field, sess->encoding, GG_ENCODING_CP1250, -1, -1);
 
 			if (tmp == NULL)
 				return -1;
@@ -233,7 +236,8 @@
 
 			free(tmp);
 
-			tmp = gg_utf8_to_cp(req->entries[i].value);
+			// XXX \todo zoptymalizować
+			tmp = gg_encoding_convert(req->entries[i].value, sess->encoding, GG_ENCODING_CP1250, -1, -1);
 
 			if (tmp == NULL)
 				return -1;
@@ -271,7 +275,8 @@
 		} else {
 			char *tmp;
 
-			tmp = gg_utf8_to_cp(req->entries[i].field);
+			// XXX \todo zoptymalizować
+			tmp = gg_encoding_convert(req->entries[i].field, sess->encoding, GG_ENCODING_CP1250, -1, -1);
 
 			if (tmp == NULL) {
 				free(buf);
@@ -282,7 +287,9 @@
 			p += strlen(tmp) + 1;
 			free(tmp);
 
-			tmp = gg_utf8_to_cp(req->entries[i].value);
+			// XXX \todo zoptymalizować
+			tmp = gg_encoding_convert(req->entries[i].value, sess->encoding, GG_ENCODING_CP1250, -1, -1);
+
 
 			if (tmp == NULL) {
 				free(buf);
@@ -416,7 +423,7 @@
 			} else {
 				char *tmp;
 
-				tmp = gg_cp_to_utf8(value);
+				tmp = gg_encoding_convert(value, GG_ENCODING_CP1250, sess->encoding, -1, -1);
 
 				if (tmp == NULL)
 					goto failure;