diff src/gtkft.c @ 10919:9695281b1aa1

[gaim-migrate @ 12683] Better handling of filenames in file transfers when using a non-UTF8 filename encoding on the filesyste. This should fix a number of bugs. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sun, 15 May 2005 18:16:20 +0000
parents 1012f463d2b9
children accfd1f1f80d
line wrap: on
line diff
--- a/src/gtkft.c	Sun May 15 13:28:11 2005 +0000
+++ b/src/gtkft.c	Sun May 15 18:16:20 2005 +0000
@@ -187,7 +187,7 @@
 {
 	GaimGtkXferUiData *data;
 	char *kbsec, *time_elapsed, *time_remaining;
-	char *status;
+	char *status, *utf8;
 
 	if (dialog == NULL || xfer == NULL)
 		return;
@@ -240,13 +240,18 @@
 					   gaim_xfer_get_filename(xfer));
 	} else {
 		char *tmp;
+
 		tmp = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
-		gtk_label_set_text(GTK_LABEL(dialog->filename_label), tmp);
+		utf8 = g_filename_to_utf8(tmp, -1, NULL, NULL, NULL);
 		g_free(tmp);
+
+		gtk_label_set_text(GTK_LABEL(dialog->filename_label), utf8);
+		g_free(utf8);
 	}
 
-	gtk_label_set_text(GTK_LABEL(dialog->localfile_label),
-			gaim_xfer_get_local_filename(xfer));
+	utf8 = g_filename_to_utf8((gaim_xfer_get_local_filename(xfer)), -1, NULL, NULL, NULL);
+	gtk_label_set_text(GTK_LABEL(dialog->localfile_label), utf8);
+	g_free(utf8);
 
 	gtk_label_set_text(GTK_LABEL(dialog->status_label), status);
 
@@ -803,7 +808,7 @@
 	GaimXferType type;
 	GdkPixbuf *pixbuf;
 	char *size_str, *remaining_str;
-	char *lfilename;
+	char *lfilename, *utf8;
 
 	g_return_if_fail(dialog != NULL);
 	g_return_if_fail(xfer != NULL);
@@ -831,6 +836,9 @@
 
 	gtk_list_store_append(dialog->model, &data->iter);
 	lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
+	utf8 = g_filename_to_utf8(lfilename, -1, NULL, NULL, NULL);
+	g_free(lfilename);
+	lfilename = utf8;
 	gtk_list_store_set(dialog->model, &data->iter,
 					   COLUMN_STATUS, pixbuf,
 					   COLUMN_PROGRESS, 0.0,