diff options
author | Ondrej Holy <oholy@redhat.com> | 2014-11-13 13:38:44 +0100 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2014-11-19 08:54:41 +0100 |
commit | d4aa8d9e48d08738e14d4855130a0dcad19bd2eb (patch) | |
tree | 4a03cb8ef034321fb5dd04d7730d05890d2e7b76 | |
parent | 7c856adf3dc29a51bd07464c4b9a00252ad8bb69 (diff) | |
download | gvfs-d4aa8d9e48d08738e14d4855130a0dcad19bd2eb.tar.gz |
afc: try copy and delete fallback if backup couldn't be created
Move operation fails immediately with G_IO_ERROR_CANT_CREATE_BACKUP if
G_FILE_COPY_BACKUP is specified. Consequently copy and delete fallback
isn't executed. Return NOT_SUPPORTED instead of CANT_CREATE_BACKUP to
proceed with the fallback if G_FILE_COPY_NO_FALLBACK_FOR_MOVE isn't
specified.
https://bugzilla.gnome.org/show_bug.cgi?id=740057
-rw-r--r-- | daemon/gvfsbackendafc.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c index 3c0b7874..7fcb2b09 100644 --- a/daemon/gvfsbackendafc.c +++ b/daemon/gvfsbackendafc.c @@ -2572,10 +2572,24 @@ g_vfs_backend_afc_move (GVfsBackend *backend, if (flags & G_FILE_COPY_BACKUP) { /* FIXME: implement! */ - g_vfs_job_failed (G_VFS_JOB (job), - G_IO_ERROR, - G_IO_ERROR_CANT_CREATE_BACKUP, - _("Backups are not yet supported.")); + + if (flags & G_FILE_COPY_NO_FALLBACK_FOR_MOVE) + { + g_vfs_job_failed_literal (G_VFS_JOB (job), + G_IO_ERROR, + G_IO_ERROR_CANT_CREATE_BACKUP, + _("Backups not supported")); + } + else + { + /* Return G_IO_ERROR_NOT_SUPPORTED instead of G_IO_ERROR_CANT_CREATE_BACKUP + * to be proceeded with copy and delete fallback (see g_file_move). */ + g_vfs_job_failed_literal (G_VFS_JOB (job), + G_IO_ERROR, + G_IO_ERROR_NOT_SUPPORTED, + "Operation not supported"); + } + return; } |