changeset 28174:6081a0393d92

merge of 'b0b069693930fe066b4ca0af9b801dbc1f543f19' and 'f446f419b69bdd90d1f4f3835bfa795b66f8a715'
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Wed, 02 Sep 2009 21:45:01 +0000
parents f7bb03f0518e (diff) 45fd53ae163a (current diff)
children 558ce0b09e0e
files
diffstat 2 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/blist.c	Wed Sep 02 21:41:31 2009 +0000
+++ b/libpurple/blist.c	Wed Sep 02 21:45:01 2009 +0000
@@ -1118,7 +1118,7 @@
 	old_alias = buddy->alias;
 
 	if ((new_alias != NULL) && (*new_alias != '\0'))
-		buddy->alias = g_strdup(alias);
+		buddy->alias = new_alias;
 	else {
 		buddy->alias = NULL;
 		g_free(new_alias); /* could be "\0" */
--- a/pidgin/gtkutils.c	Wed Sep 02 21:41:31 2009 +0000
+++ b/pidgin/gtkutils.c	Wed Sep 02 21:45:01 2009 +0000
@@ -1533,7 +1533,6 @@
 void
 pidgin_dnd_file_manage(GtkSelectionData *sd, PurpleAccount *account, const char *who)
 {
-	GList *tmp;
 	GdkPixbuf *pb;
 	GList *files = purple_uri_list_extract_filenames((const gchar *)sd->data);
 	PurpleConnection *gc = purple_account_get_connection(account);
@@ -1542,13 +1541,18 @@
 #ifndef _WIN32
 	PurpleDesktopItem *item;
 #endif
+	gchar *filename = NULL;
+	gchar *basename = NULL;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(who != NULL);
 
-	for(tmp = files; tmp != NULL ; tmp = g_list_next(tmp)) {
-		gchar *filename = tmp->data;
-		gchar *basename = g_path_get_basename(filename);
+	for ( ; files; files = g_list_delete_link(files, files)) {
+		g_free(filename);
+		g_free(basename);
+
+		filename = files->data;
+		basename = g_path_get_basename(filename);
 
 		/* Set the default action: don't send anything */
 		file_send_ok = FALSE;
@@ -1571,7 +1575,6 @@
 
 			g_free(str);
 			g_free(str2);
-
 			continue;
 		}
 
@@ -1629,6 +1632,12 @@
 						    (ft ? _("Send image file") : _("Insert in message")), (ft ? DND_FILE_TRANSFER : DND_IM_IMAGE),
 							NULL);
 			g_object_unref(G_OBJECT(pb));
+
+			g_free(basename);
+			while (files) {
+				g_free(files->data);
+				files = g_list_delete_link(files, files);
+			}
 			return;
 		}
 
@@ -1686,15 +1695,21 @@
 				break;
 			}
 			purple_desktop_item_unref(item);
+			g_free(basename);
+			while (files) {
+				g_free(files->data);
+				files = g_list_delete_link(files, files);
+			}
 			return;
 		}
 #endif /* _WIN32 */
 
 		/* Everything is fine, let's send */
 		serv_send_file(gc, who, filename);
-		g_free(filename);
 	}
-	g_list_free(files);
+
+	g_free(filename);
+	g_free(basename);
 }
 
 void pidgin_buddy_icon_get_scale_size(GdkPixbuf *buf, PurpleBuddyIconSpec *spec, PurpleIconScaleRules rules, int *width, int *height)