rem: totem_playlist_add_mrl (playlist, p->data, title); }
context: drop_cb (GtkWidget     *widget,         GdkDragContext     *context, 	 gint                x,	 gint                y,	 GtkSelectionData   *data, 	 guint               info, 	 guint               time, 	 TotemPlaylist        *playlist){	GList *list, *p, *file_list;	list = gnome_vfs_uri_list_parse ((char *)data->data);	if (list == NULL) {		gtk_drag_finish (context, FALSE, FALSE, time);		return;	}	p = list;	file_list = NULL;	while (p != NULL)	{		file_list = g_list_prepend (file_list,				gnome_vfs_uri_to_string				((const GnomeVFSURI*)(p->data), 0));		p = p->next;	}	gnome_vfs_uri_list_free (list);	file_list = g_list_reverse (file_list);	if (file_list == NULL)	{		gtk_drag_finish (context, FALSE, FALSE, time);		return;	}	for (p = file_list; p != NULL; p = p->next)	{		char *filename;		if (p->data == NULL)			continue;		filename = gnome_vfs_get_local_path_from_uri (p->data);		if (filename == NULL)			filename = g_strdup (p->data);		if (filename != NULL &&				(g_file_test (filename, G_FILE_TEST_IS_REGULAR					| G_FILE_TEST_EXISTS)				 || strstr (filename, "://") != NULL))		{			char *title = NULL;			/* Super _NETSCAPE_URL trick */			if (info == 1)			{				g_free (p->data);				p = p->next;				if (p != NULL) {					if (g_str_has_prefix (p->data, "file:") != FALSE)						title = (char *) p->data + 5;					else						title = p->data;				}			}			totem_playlist_add_mrl (playlist, p->data, title);		}		g_free (filename);		g_free (p->data);	}	g_list_free (file_list);	gtk_drag_finish (context, TRUE, FALSE, time);	g_signal_emit (G_OBJECT (playlist),			totem_playlist_table_signals[CHANGED], 0,			NULL);}