pidgin: 755ed229: Using g_convert instead of g_utf16_to_ut...
qulogic at pidgin.im
qulogic at pidgin.im
Fri Jul 31 00:15:41 EDT 2009
-----------------------------------------------------------------
Revision: 755ed2299261658aaaf5351e8561db35bf2df935
Ancestor: bee5bfb6d563954d26ac9abd0cfbdc39b869a2f5
Author: qulogic at pidgin.im
Date: 2009-07-31T03:53:00
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/755ed2299261658aaaf5351e8561db35bf2df935
Modified files:
libpurple/protocols/msn/slp.c
ChangeLog:
Using g_convert instead of g_utf16_to_utf8 means we don't need to go
through the whole buffer converting it first.
-------------- next part --------------
============================================================
--- libpurple/protocols/msn/slp.c 729890fdb8e2a4ec2fe7ead5016b917a969bc793
+++ libpurple/protocols/msn/slp.c 4fe55d77444e8870f08c608df124a0220070fc3c
@@ -324,7 +324,6 @@ got_sessionreq(MsnSlpCall *slpcall, cons
gsize bin_len;
guint32 file_size;
char *file_name;
- gunichar2 *uni_name;
account = slpcall->slplink->session->account;
@@ -342,15 +341,9 @@ got_sessionreq(MsnSlpCall *slpcall, cons
bin = (char *)purple_base64_decode(context, &bin_len);
file_size = GUINT32_FROM_LE(*(gsize *)(bin + 8));
- uni_name = (gunichar2 *)(bin + 20);
- while(*uni_name != 0 && ((char *)uni_name - (bin + 20)) < MAX_FILE_NAME_LEN) {
- *uni_name = GUINT16_FROM_LE(*uni_name);
- uni_name++;
- }
+ file_name = g_convert(bin + 20, -1, "UTF-16LE", "UTF-8",
+ NULL, NULL, NULL);
- file_name = g_utf16_to_utf8((const gunichar2 *)(bin + 20), -1,
- NULL, NULL, NULL);
-
g_free(bin);
purple_xfer_set_filename(xfer, file_name);
More information about the Commits
mailing list