On Fri, 2005-07-08 at 09:51 +0200, Alexander Larsson wrote: > Yes, that sounds right. In fact, the canonicalization was introduced to > fix a problem like this that garret had, because his home directory was > a symlink.
Great! I just committed this: 2005-07-08 Federico Mena Quintero <[EMAIL PROTECTED]> * libgnomevfs/gnome-vfs-cancellable-ops.c (gnome_vfs_find_directory_cancellable): Canonicalize the near_uri unconditionally. If we are finding a trash directory, we also need to look at the real device, not the device on which the symlink is stored. Also, return an error if we cannot canonicalize the symlink. --- gnome-vfs-cancellable-ops.c.orig 2005-07-08 13:30:01.877132811 -0500 +++ gnome-vfs-cancellable-ops.c 2005-07-08 13:38:50.397820577 -0500 @@ -289,18 +289,21 @@ } else { /* assume file: method and the home directory */ near_uri = gnome_vfs_uri_new (g_get_home_dir()); - /* Need to expand the final symlink, since if the homedir is a symlink - * we want to look at the device the home symlink points to, not the - * one the symlink is stored on */ - if (_gnome_vfs_uri_resolve_all_symlinks_uri (near_uri, - &resolved_uri) == GNOME_VFS_OK) { - gnome_vfs_uri_unref (near_uri); - near_uri = resolved_uri; - } } + /* Need to expand the final symlink, since if the directory is a symlink + * we want to look at the device the symlink points to, not the one the + * symlink is stored on + */ + result = _gnome_vfs_uri_resolve_all_symlinks_uri (near_uri, &resolved_uri); + if (result == GNOME_VFS_OK) { + gnome_vfs_uri_unref (near_uri); + near_uri = resolved_uri; + } else + return result; + g_assert (near_uri != NULL); - + if (!VFS_METHOD_HAS_FUNC(near_uri->method, find_directory)) { gnome_vfs_uri_unref (near_uri); return GNOME_VFS_ERROR_NOT_SUPPORTED; It solves the problem for me. Federico _______________________________________________ gnome-vfs-list mailing list gnome-vfs-list@gnome.org http://mail.gnome.org/mailman/listinfo/gnome-vfs-list