diff options
author | Daniel Gryniewicz <dang@gentoo.org> | 2005-11-01 19:40:11 +0000 |
---|---|---|
committer | Daniel Gryniewicz <dang@gentoo.org> | 2005-11-01 19:40:11 +0000 |
commit | 249b8f4fb2a6d4d44384609735f1f49009dfd9ee (patch) | |
tree | 496d2da3356b19d955caa75c3d804200e045023a /gnome-base/nautilus/files | |
parent | Marked ppc stable, bug #111106 (diff) | |
download | gentoo-2-249b8f4fb2a6d4d44384609735f1f49009dfd9ee.tar.gz gentoo-2-249b8f4fb2a6d4d44384609735f1f49009dfd9ee.tar.bz2 gentoo-2-249b8f4fb2a6d4d44384609735f1f49009dfd9ee.zip |
Pull upstream fix for deleting symlinks across mountpoints. bug 89104
(Portage version: 2.0.53_rc7)
Diffstat (limited to 'gnome-base/nautilus/files')
-rw-r--r-- | gnome-base/nautilus/files/digest-nautilus-2.12.1-r1 | 1 | ||||
-rw-r--r-- | gnome-base/nautilus/files/nautilus-2.12.1-symlink-del.patch | 42 |
2 files changed, 43 insertions, 0 deletions
diff --git a/gnome-base/nautilus/files/digest-nautilus-2.12.1-r1 b/gnome-base/nautilus/files/digest-nautilus-2.12.1-r1 new file mode 100644 index 000000000000..2890f00a821a --- /dev/null +++ b/gnome-base/nautilus/files/digest-nautilus-2.12.1-r1 @@ -0,0 +1 @@ +MD5 61878b1c3f9bee37cd568e17b31d66b1 nautilus-2.12.1.tar.bz2 4056062 diff --git a/gnome-base/nautilus/files/nautilus-2.12.1-symlink-del.patch b/gnome-base/nautilus/files/nautilus-2.12.1-symlink-del.patch new file mode 100644 index 000000000000..0bcae043dedd --- /dev/null +++ b/gnome-base/nautilus/files/nautilus-2.12.1-symlink-del.patch @@ -0,0 +1,42 @@ +diff --exclude-from=/home/dang/.diffrc -u -ruN nautilus-2.12.1.orig/libnautilus-private/nautilus-file-operations.c nautilus-2.12.1/libnautilus-private/nautilus-file-operations.c +--- nautilus-2.12.1.orig/libnautilus-private/nautilus-file-operations.c 2005-09-26 11:30:05.000000000 -0400 ++++ nautilus-2.12.1/libnautilus-private/nautilus-file-operations.c 2005-11-01 13:51:50.000000000 -0500 +@@ -1858,17 +1858,31 @@ + source_dir_uri = gnome_vfs_uri_get_parent (source_uri); + target_uri = NULL; + if (target_dir != NULL) { ++ GnomeVFSURI *trash_find_uri; ++ + if (target_is_trash) { +- result = gnome_vfs_find_directory (source_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, ++ /* source_uri may be a symlink, which is resolved when finding the trash directory. ++ * Therefore, we use its parent dir if available */ ++ trash_find_uri = source_dir_uri != NULL ? source_dir_uri : source_uri; ++ g_assert (trash_find_uri != NULL); ++ ++ result = gnome_vfs_find_directory (trash_find_uri, ++ GNOME_VFS_DIRECTORY_KIND_TRASH, + &target_dir_uri, FALSE, FALSE, 0777); +- if (result == GNOME_VFS_ERROR_NOT_FOUND && source_dir_uri != NULL) { +- /* source_uri may be a broken symlink */ +- result = gnome_vfs_find_directory (source_dir_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, +- &target_dir_uri, FALSE, FALSE, 0777); +- } + +- result = GNOME_VFS_OK; ++ if (result != GNOME_VFS_OK) { ++ char *trash_find_text_uri; ++ ++ g_assert (target_dir_uri == NULL); ++ ++ trash_find_text_uri = gnome_vfs_uri_to_string (trash_find_uri, GNOME_VFS_URI_HIDE_NONE); ++ g_warning ("Unable to find trash for \"%s\": %s. Please file a bug report.", ++ trash_find_text_uri, ++ gnome_vfs_result_to_string (result)); ++ g_free (trash_find_text_uri); ++ } + } ++ + if (target_dir_uri != NULL) { + target_uri = append_basename (target_dir_uri, source_uri); + } |