--- a/src/protocols/yahoo/yahoo_filexfer.c Sun Jun 05 20:49:37 2005 -0400
+++ b/src/protocols/yahoo/yahoo_filexfer.c Mon Jun 06 18:31:42 2005 -0400
@@ -92,7 +92,7 @@
+ char *filename, *encoded_filename; gaim_debug(GAIM_DEBUG_INFO, "yahoo",
"AAA - in yahoo_sendfile_connected\n");
@@ -125,7 +125,8 @@
yahoo_packet_hash(pkt, 5, xfer->who);
yahoo_packet_hash(pkt, 14, "");
filename = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
- yahoo_packet_hash(pkt, 27, gaim_url_encode(filename));
+ encoded_filename = yahoo_string_encode(gc, filename, NULL); + yahoo_packet_hash(pkt, 27, encoded_filename); yahoo_packet_hash(pkt, 28, size);
content_length = YAHOO_PACKET_HDRLEN + yahoo_packet_length(pkt);
@@ -150,6 +151,7 @@
+ g_free(encoded_filename); @@ -423,18 +425,23 @@
/* Set the info about the incoming file. */
- gaim_xfer_set_filename(xfer, filename);
+ char *utf8_filename = yahoo_string_decode(gc, filename, TRUE); + gaim_xfer_set_filename(xfer, utf8_filename); start = g_strrstr(xfer_data->path, "/");
end = g_strrstr(xfer_data->path, "?");
if (start && *start && end) {
filename = g_strndup(start, end - start);
- gaim_xfer_set_filename(xfer, filename);
+ utf8_filename = yahoo_string_decode(gc, filename, TRUE); + gaim_xfer_set_filename(xfer, utf8_filename);