rem: buf = g_strdup_printf ("file%d=%s\n", i, url);
add: if (totem_pl_parser_ignore (parser, url) != FALSE) { g_free (url); g_free (title); continue; }  buf = g_strdup_printf ("File%d=%s\n", i, url);
context: totem_pl_parser_write (TotemPlParser *parser, GtkTreeModel *model,		   TotemPlParserIterFunc func, const char *output, GError **error){	GnomeVFSHandle *handle;	GnomeVFSResult res;	int num_entries, i;	char *buf;	gboolean success;	num_entries = gtk_tree_model_iter_n_children (model, NULL);	res = gnome_vfs_open (&handle, output, GNOME_VFS_OPEN_WRITE);	if (res == GNOME_VFS_ERROR_NOT_FOUND) {		res = gnome_vfs_create (&handle, output,				GNOME_VFS_OPEN_WRITE, FALSE,				GNOME_VFS_PERM_USER_WRITE				| GNOME_VFS_PERM_USER_READ				| GNOME_VFS_PERM_GROUP_READ);	}	if (res != GNOME_VFS_OK) {		g_set_error(error,			    TOTEM_PL_PARSER_ERROR,			    TOTEM_PL_PARSER_ERROR_VFS_OPEN,			    _("Couldn't open parser: %s"),			    gnome_vfs_result_to_string (res));		return FALSE;	}	buf = g_strdup ("[playlist]\n");	success = write_string (handle, buf, error);	g_free (buf);	if (success == FALSE)		return FALSE;	buf = g_strdup_printf ("numberofentries=%d\n", num_entries);	success = write_string (handle, buf, error);	g_free (buf);	if (success == FALSE)		return FALSE;	for (i = 1; i <= num_entries; i++) {		GtkTreeIter iter;		char *path, *url, *title;		path = g_strdup_printf ("%d", i - 1);		gtk_tree_model_get_iter_from_string (model, &iter, path);		g_free (path);				func (model, &iter, &url, &title);		buf = g_strdup_printf ("file%d=%s\n", i, url);		success = write_string (handle, buf, error);		g_free (buf);		g_free (url);		if (success == FALSE)		{			g_free (title);			return FALSE;		}		buf = g_strdup_printf ("title%d=%s\n", i, title);		success = write_string (handle, buf, error);		g_free (buf);		g_free (title);		if (success == FALSE)			return FALSE;	}	gnome_vfs_close (handle);	return TRUE;}