summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gryniewicz <dang@gentoo.org>2005-11-01 19:40:11 +0000
committerDaniel Gryniewicz <dang@gentoo.org>2005-11-01 19:40:11 +0000
commit249b8f4fb2a6d4d44384609735f1f49009dfd9ee (patch)
tree496d2da3356b19d955caa75c3d804200e045023a /gnome-base/nautilus/files
parentMarked ppc stable, bug #111106 (diff)
downloadgentoo-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-r11
-rw-r--r--gnome-base/nautilus/files/nautilus-2.12.1-symlink-del.patch42
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);
+ }