? .40644.swp
? 40644
? 40644.patch
? gnome-vfs.diff
? gnome-vfs.patch
? programs/gnomevfs-mv
Index: libgnomevfs/gnome-vfs-file-info.h
===================================================================
RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-file-info.h,v
retrieving revision 1.29
diff -u -p -r1.29 gnome-vfs-file-info.h
--- libgnomevfs/gnome-vfs-file-info.h	11 Aug 2004 07:11:37 -0000	1.29
+++ libgnomevfs/gnome-vfs-file-info.h	21 Mar 2005 03:43:30 -0000
@@ -103,6 +103,8 @@ typedef enum {
  * @GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE: Mime type field is valid
  * @GNOME_VFS_FILE_INFO_FIELDS_ACCESS: Access bits of the permissions
  * bitfield are valid
+ * @GNOME_VFS_FILE_INFO_FIELDS_UID: Uid field is valid
+ * @GNOME_VFS_FILE_INFO_FIELDS_GID: Gid field is valid
  *
  * Flags indicating what fields in a GnomeVFSFileInfo struct are valid. 
  * Name is always assumed valid (how else would you have gotten a
@@ -125,7 +127,9 @@ typedef enum {
 	GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
 	GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
 	GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13,
-	GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14
+	GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14,
+	GNOME_VFS_FILE_INFO_FIELDS_UID = 1 << 15,
+	GNOME_VFS_FILE_INFO_FIELDS_GID = 1 << 16
 } GnomeVFSFileInfoFields;
 
 /* FIXME: It's silly to use the symbolic constants for POSIX here.
Index: libgnomevfs/gnome-vfs-module-shared.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-module-shared.c,v
retrieving revision 1.23
diff -u -p -r1.23 gnome-vfs-module-shared.c
--- libgnomevfs/gnome-vfs-module-shared.c	15 Dec 2003 14:57:07 -0000	1.23
+++ libgnomevfs/gnome-vfs-module-shared.c	21 Mar 2005 03:43:30 -0000
@@ -149,7 +149,8 @@ gnome_vfs_stat_to_file_info (GnomeVFSFil
 	  GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT | GNOME_VFS_FILE_INFO_FIELDS_SIZE |
 	  GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT | GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE |
 	  GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME |
-	  GNOME_VFS_FILE_INFO_FIELDS_CTIME;
+	  GNOME_VFS_FILE_INFO_FIELDS_CTIME | GNOME_VFS_FILE_INFO_FIELDS_UID |
+	  GNOME_VFS_FILE_INFO_FIELDS_GID;
 }
 
 
Index: modules/computer-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/computer-method.c,v
retrieving revision 1.8
diff -u -p -r1.8 computer-method.c
--- modules/computer-method.c	12 Aug 2004 09:08:56 -0000	1.8
+++ modules/computer-method.c	21 Mar 2005 03:43:30 -0000
@@ -884,8 +884,11 @@ do_read_directory (GnomeVFSMethod *metho
 	file_info->permissions =
 		GNOME_VFS_PERM_USER_READ |
 		GNOME_VFS_PERM_OTHER_READ |
-		GNOME_VFS_PERM_GROUP_READ;
-	file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+		GNOME_VFS_PERM_GROUP_READ |
+		GNOME_VFS_PERM_ACCESS_READABLE;
+	file_info->valid_fields |= 
+		GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+		GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 	
 	return GNOME_VFS_OK;
 }
@@ -919,8 +922,11 @@ do_get_file_info (GnomeVFSMethod *method
 	file_info->permissions =
 		GNOME_VFS_PERM_USER_READ |
 		GNOME_VFS_PERM_OTHER_READ |
-		GNOME_VFS_PERM_GROUP_READ;
-	file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+		GNOME_VFS_PERM_GROUP_READ |
+		GNOME_VFS_PERM_ACCESS_READABLE;
+	file_info->valid_fields |= 
+		GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+		GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 	
 	return GNOME_VFS_OK;
 }
Index: modules/dns-sd-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/dns-sd-method.c,v
retrieving revision 1.3
diff -u -p -r1.3 dns-sd-method.c
--- modules/dns-sd-method.c	31 Jan 2005 19:47:50 -0000	1.3
+++ modules/dns-sd-method.c	21 Mar 2005 03:43:30 -0000
@@ -820,8 +820,11 @@ do_read_directory (GnomeVFSMethod *metho
 	file_info->permissions =
 		GNOME_VFS_PERM_USER_READ |
 		GNOME_VFS_PERM_OTHER_READ |
-		GNOME_VFS_PERM_GROUP_READ;
-	file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+		GNOME_VFS_PERM_GROUP_READ |
+		GNOME_VFS_PERM_ACCESS_READABLE;
+	file_info->valid_fields |= 
+		GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+		GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 	
 	return GNOME_VFS_OK;
 }
@@ -856,8 +859,11 @@ do_get_file_info (GnomeVFSMethod *method
 	file_info->permissions =
 		GNOME_VFS_PERM_USER_READ |
 		GNOME_VFS_PERM_OTHER_READ |
-		GNOME_VFS_PERM_GROUP_READ;
-	file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+		GNOME_VFS_PERM_GROUP_READ |
+		GNOME_VFS_PERM_ACCESS_READABLE;
+	file_info->valid_fields |= 
+		GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+		GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 	
 	return GNOME_VFS_OK;
 }
Index: modules/network-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/network-method.c,v
retrieving revision 1.6
diff -u -p -r1.6 network-method.c
--- modules/network-method.c	7 Oct 2004 15:08:38 -0000	1.6
+++ modules/network-method.c	21 Mar 2005 03:43:30 -0000
@@ -862,8 +862,11 @@ do_read_directory (GnomeVFSMethod *metho
 		file_info->permissions =
 			GNOME_VFS_PERM_USER_READ |
 			GNOME_VFS_PERM_OTHER_READ |
-			GNOME_VFS_PERM_GROUP_READ;
-		file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+			GNOME_VFS_PERM_GROUP_READ |
+			GNOME_VFS_PERM_ACCESS_READABLE;
+		file_info->valid_fields |= 
+			GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+			GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 		
 		return GNOME_VFS_OK;
 	}
@@ -918,8 +921,11 @@ do_get_file_info (GnomeVFSMethod *method
 		file_info->permissions =
 			GNOME_VFS_PERM_USER_READ |
 			GNOME_VFS_PERM_OTHER_READ |
-			GNOME_VFS_PERM_GROUP_READ;
-		file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+			GNOME_VFS_PERM_GROUP_READ |
+			GNOME_VFS_PERM_ACCESS_READABLE;
+		file_info->valid_fields |= 
+			GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+			GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 		
 		return GNOME_VFS_OK;
 	}
@@ -939,8 +945,11 @@ do_get_file_info (GnomeVFSMethod *method
 		file_info->permissions =
 			GNOME_VFS_PERM_USER_READ |
 			GNOME_VFS_PERM_OTHER_READ |
-			GNOME_VFS_PERM_GROUP_READ;
-		file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+			GNOME_VFS_PERM_GROUP_READ |
+			GNOME_VFS_PERM_ACCESS_READABLE;
+		file_info->valid_fields |= 
+			GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS |
+			GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 		
 		return GNOME_VFS_OK;
 	}
Index: modules/nfs-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/nfs-method.c,v
retrieving revision 1.9
diff -u -p -r1.9 nfs-method.c
--- modules/nfs-method.c	2 Nov 2001 11:15:50 -0000	1.9
+++ modules/nfs-method.c	21 Mar 2005 03:43:30 -0000
@@ -931,7 +931,9 @@ nfs_attr_to_file_info(fattr f, GnomeVFSF
 		GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT |
 		GNOME_VFS_FILE_INFO_FIELDS_SIZE |
 		GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT |
-		GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE;
+		GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE |
+		GNOME_VFS_FILE_INFO_FIELDS_UID |
+		GNOME_VFS_FILE_INFO_FIELDS_GID;
 
 	return GNOME_VFS_OK;
 }
Index: modules/sftp-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/sftp-method.c,v
retrieving revision 1.32
diff -u -p -r1.32 sftp-method.c
--- modules/sftp-method.c	21 Mar 2005 02:49:08 -0000	1.32
+++ modules/sftp-method.c	21 Mar 2005 03:43:30 -0000
@@ -485,7 +485,9 @@ buffer_read_file_info (Buffer *buf, Gnom
 		info->size = buffer_read_gint64 (buf);
 	}
 	if (flags & SSH2_FILEXFER_ATTR_UIDGID) {
+		info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_UID;
 		info->uid = buffer_read_gint32 (buf);
+		info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_GID;
 		info->gid = buffer_read_gint32 (buf);
 	}
 	if (flags & SSH2_FILEXFER_ATTR_PERMISSIONS) {
@@ -519,10 +521,6 @@ buffer_read_file_info (Buffer *buf, Gnom
 
 	info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE;
 	info->io_block_size = default_req_len;
-
-	/* Set the uid and gid fields naively to the current user to trick Nautilus */
-	info->uid = getuid ();
-	info->gid = getgid ();
 
 	DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read file info from %p", buf));
 }
Index: modules/smb-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/smb-method.c,v
retrieving revision 1.25
diff -u -p -r1.25 smb-method.c
--- modules/smb-method.c	2 Mar 2005 23:44:11 -0000	1.25
+++ modules/smb-method.c	21 Mar 2005 03:43:30 -0000
@@ -1633,11 +1633,14 @@ do_get_file_info (GnomeVFSMethod *method
 		 * while e.g. browsing smb://server
 		 */
 		if (type != SMB_URI_SHARE) {
-			file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+			file_info->valid_fields = file_info->valid_fields
+				| GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS 
+				| GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 			file_info->permissions =
  				GNOME_VFS_PERM_USER_READ |
  				GNOME_VFS_PERM_OTHER_READ |
- 				GNOME_VFS_PERM_GROUP_READ;
+ 				GNOME_VFS_PERM_GROUP_READ |
+				GNOME_VFS_PERM_ACCESS_READABLE;
 		}
 		return GNOME_VFS_OK;
 	}
@@ -1648,13 +1651,15 @@ do_get_file_info (GnomeVFSMethod *method
 		file_info->valid_fields = file_info->valid_fields
 			| GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE
 			| GNOME_VFS_FILE_INFO_FIELDS_TYPE
-			| GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
+			| GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS
+			| GNOME_VFS_FILE_INFO_FIELDS_ACCESS;
 		file_info->type = GNOME_VFS_FILE_TYPE_REGULAR;
 		file_info->mime_type = g_strdup ("application/x-desktop");
 		file_info->permissions =
 			GNOME_VFS_PERM_USER_READ |
 			GNOME_VFS_PERM_OTHER_READ |
-			GNOME_VFS_PERM_GROUP_READ;
+			GNOME_VFS_PERM_GROUP_READ |
+			GNOME_VFS_PERM_ACCESS_READABLE;
 		return GNOME_VFS_OK;
 	}
 
Index: modules/tar-method.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/modules/tar-method.c,v
retrieving revision 1.2
diff -u -p -r1.2 tar-method.c
--- modules/tar-method.c	20 Jul 2004 21:07:51 -0000	1.2
+++ modules/tar-method.c	21 Mar 2005 03:43:30 -0000
@@ -622,7 +622,9 @@ do_get_file_info (GnomeVFSMethod *method
 			   	  GNOME_VFS_FILE_INFO_FIELDS_ATIME |
 			   	  GNOME_VFS_FILE_INFO_FIELDS_MTIME |
 			   	  GNOME_VFS_FILE_INFO_FIELDS_CTIME |
-			   	  GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE;
+			   	  GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE |
+				  GNOME_VFS_FILE_INFO_FIELDS_UID |
+				  GNOME_VFS_FILE_INFO_FIELDS_GID;
 
 	g_free (name);
 	tar_file_unref (tar);
Index: programs/gnomevfs-info.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/programs/gnomevfs-info.c,v
retrieving revision 1.3
diff -u -p -r1.3 gnomevfs-info.c
--- programs/gnomevfs-info.c	15 Apr 2004 19:51:19 -0000	1.3
+++ programs/gnomevfs-info.c	21 Mar 2005 03:43:30 -0000
@@ -92,9 +92,11 @@ show_file_info (GnomeVFSFileInfo *info)
 
 	if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT)
 		printf ("Link count        : %d\n", info->link_count);
+	if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_UID)
+		printf ("UID               : %d\n", info->uid);
 
-	printf ("UID               : %d\n", info->uid);
-	printf ("GID               : %d\n", info->gid);
+	if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_GID)
+		printf ("GID               : %d\n", info->gid);
 
 	if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_ATIME)
 		printf ("Access time       : %s", ctime (&info->atime));
