rem: filename = g_build_filename (G_DIR_SEPARATOR_S, td->dirpath, name, NULL);
add: filename = g_build_filename (td->dirpath, name, NULL);
context: cab_extract (TotemDownload *td, const char *path){	const char *name;	char *cmdline, *destdir;	int err;	GDir *dir;	set_label (td, INSTALLING, FALSE);	/* The -d doesn't work very well... */	chdir (td->dirpath);	cmdline = g_strdup_printf ("cabextract -q -L %s", path);	g_spawn_command_line_sync (cmdline, NULL, NULL, &err, NULL);	g_free (cmdline);	unlink (path);	dir = g_dir_open (td->dirpath, 0, NULL);	if (dir == NULL)		return -1;	destdir = g_build_filename (G_DIR_SEPARATOR_S,			g_get_home_dir (),			".gnome2", "totem-addons", NULL);	name = g_dir_read_name (dir);	while (name != NULL)	{		char *filename;		filename = g_build_filename (G_DIR_SEPARATOR_S,				td->dirpath, name, NULL);		/* This is not solid, but MS only knows DOS-like 8.3		 * filenames anyway */		if (strstr (name, ".inf") != NULL)		{			unlink (filename);		} else {			GnomeVFSResult res;			char *destfile;			GnomeVFSURI *origuri, *desturi;			destfile = g_build_filename (G_DIR_SEPARATOR_S,					destdir, name, NULL);			origuri = gnome_vfs_uri_new (filename);			desturi = gnome_vfs_uri_new (destfile);			res = gnome_vfs_xfer_uri				(origuri, desturi,				 GNOME_VFS_XFER_REMOVESOURCE,				 GNOME_VFS_XFER_ERROR_MODE_ABORT,				 GNOME_VFS_XFER_OVERWRITE_MODE_ABORT,				 NULL, NULL);			if (res != GNOME_VFS_OK)				g_message ("res: %s", gnome_vfs_result_to_string (res));			gnome_vfs_uri_unref (origuri);			gnome_vfs_uri_unref (desturi);			g_free (destfile);		}		g_free (filename);		name = g_dir_read_name (dir);	}	g_dir_close (dir);	g_free (destdir);	set_label (td, INSTALLING, TRUE);	return 0;}