nautilus r13987 - in trunk: . libnautilus-private
- From: alexl svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r13987 - in trunk: . libnautilus-private
- Date: Fri, 28 Mar 2008 11:53:29 +0000 (GMT)
Author: alexl
Date: Fri Mar 28 11:53:29 2008
New Revision: 13987
URL: http://svn.gnome.org/viewvc/nautilus?rev=13987&view=rev
Log:
2008-03-28 Alexander Larsson <alexl redhat com>
* libnautilus-private/nautilus-file-operations.c:
(copy_move_file):
During the merge part of a recursive move/copy always
disable same_fs to make sure we transcode filenames
correctly, as the target directory may be on another
filesystem.
Modified:
trunk/ChangeLog
trunk/libnautilus-private/nautilus-file-operations.c
Modified: trunk/libnautilus-private/nautilus-file-operations.c
==============================================================================
--- trunk/libnautilus-private/nautilus-file-operations.c (original)
+++ trunk/libnautilus-private/nautilus-file-operations.c Fri Mar 28 11:53:29 2008
@@ -3222,7 +3222,7 @@
char *primary, *secondary, *details;
int response;
ProgressData pdata;
- gboolean would_recurse;
+ gboolean would_recurse, is_merge;
CommonJob *job;
gboolean res;
int unique_name_nr;
@@ -3391,6 +3391,7 @@
/* Needs to recurse */
else if (IS_IO_ERROR (error, WOULD_RECURSE) ||
IS_IO_ERROR (error, WOULD_MERGE)) {
+ is_merge = error->code == G_IO_ERROR_WOULD_MERGE;
would_recurse = error->code == G_IO_ERROR_WOULD_RECURSE;
g_error_free (error);
@@ -3443,6 +3444,15 @@
nautilus_file_changes_queue_file_removed (dest);
}
+ if (is_merge) {
+ /* On merge we now write in the target directory, which may not
+ be in the same directory as the source, even if the parent is
+ (if the merged directory is a mountpoint). This could cause
+ problems as we then don't transcode filenames.
+ We just set same_fs to FALSE which is safe but a bit slower. */
+ same_fs = FALSE;
+ }
+
copy_move_directory (copy_job, src, dest, same_fs,
would_recurse,
source_info, transfer_info,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]