+ if (ctl_data->file.dumplevel == 0) {
+ property_t *property = g_hash_table_lookup(proplist, "directory");
+ if (property && property->values && property->values->data) {
+ /* take first property value */
+ restore_dir = strdup(property->values->data);
+ }
+ if (samba_extract_method == SAMBA_SMBCLIENT ||
+ (ctl_data->bsu &&
+ ctl_data->bsu->recover_path == RECOVER_PATH_REMOTE)) {
+ if (!restore_dir) {
+ restore_dir = g_strdup(ctl_data->file.disk);
+ }
+ g_printf(_("Restoring files into target host %s\n"), restore_dir);
+ } else {
+ if (!restore_dir) {
+ restore_dir = g_get_current_dir();
+ }
+ g_printf(_("Restoring files into directory %s\n"), restore_dir);
+ }
+
+ /* Collect files to delete befause of a bug in gnutar */
+ if (strcmp(ctl_data->file.program, "GNUTAR") == 0 ||
+ (strcmp(ctl_data->file.program, "APPLICATION") == 0 &&
+ strcmp(ctl_data->file.application, "amgtar") == 0)) {
+ check_file_overwrite(restore_dir);
+ } else {
+ g_printf(_("All existing files in %s can be deleted\n"),
+ restore_dir);
+ }
+
+ if (!okay_to_continue(0,0,0)) {
+ free_unlink_list();
+ amfree(restore_dir);
+ return FALSE;
+ }
+ g_printf("\n");
+
+ /* delete the files for gnutar */
+ if (unlink_list) {
+ if (!do_unlink_list()) {
+ g_fprintf(stderr, _("Can't recover because I can't cleanup the restore directory (%s)\n"),
+ restore_dir);
+ free_unlink_list();
+ amfree(restore_dir);
+ return FALSE;
+ }
+ free_unlink_list();
+ }
+ amfree(restore_dir);
+ }
+ return TRUE;
+}