Re: [evolution-patches] bug48538 : Evolution can not move & rename contact folders



Hi, Chris
 
 Please let me explain some detail about this bug.

 This bug exists both on evolution 1.4 and HEAD. 
 
 The bug prevent the use to move contact folders and rename contact
folder, which  makes the user a lot of grief.
 
 Although the bug is severe, the reason of this bug is simple. When a
new folder is created, there is no addressbook.db.summary in the
profile. If at this time users do moving or renaming, then  in the
xfer_folder function, it  will cause an unexpected error.
The worse thing is the operation of moving and renaming will create an
invalid the subfolder which will prevent the user from  renaming or
moving forever. 

 Please review the bug. The patch is against evolution 1.4 branch. 

Thanks
Gilbert 
  


On Thu, 2003-09-18 at 14:58, Gilbert Fang wrote:
> Hi, Toshok
>   
>   This bug is an serious one for us. 
>   Please review the patch for the bug
> 
> 
> ChangeLog
> +2003-09-18  Gilbert Fang  <gilbert fang sun com>
> +
> +	* addressbook/gui/component/addressbook-component.c (): remove the 
> +	"addressbook.db.summary" correctly. #48538
> +
> 
> Best regards
> Gilbert
Index: addressbook/gui/component/addressbook-component.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/addressbook-component.c,v
retrieving revision 1.89.4.1
diff -u -r1.89.4.1 addressbook-component.c
--- addressbook/gui/component/addressbook-component.c	17 Jul 2003 16:58:02 -0000	1.89.4.1
+++ addressbook/gui/component/addressbook-component.c	18 Sep 2003 06:39:31 -0000
@@ -299,6 +299,7 @@
 	GnomeVFSURI *src_uri;
 	GnomeVFSURI *dest_uri;
 	GnomeVFSResult result;
+	GNOME_Evolution_ShellComponentListener_Result e_result;
 
 	CORBA_exception_init (&ev);
 	
@@ -342,17 +343,19 @@
 		return;
 	}
 
-	result = xfer_file (src_uri, dest_uri, "addressbook.db", remove_source);
+	e_result = xfer_file (src_uri, dest_uri, "addressbook.db", remove_source);
 
-	if ((result == GNOME_Evolution_ShellComponentListener_OK) && remove_source) {
+	if ((e_result == GNOME_Evolution_ShellComponentListener_OK) && remove_source) {
 		char *summary_uri;
 
 		summary_uri = g_strconcat (source_physical_uri, "/addressbook.db.summary", NULL);
 		result = gnome_vfs_unlink (summary_uri);
+		if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_NOT_FOUND)
+			e_result = GNOME_Evolution_ShellComponentListener_PERMISSION_DENIED;
 		g_free (summary_uri);
 	}
 
-	GNOME_Evolution_ShellComponentListener_notifyResult (listener, result, &ev);
+	GNOME_Evolution_ShellComponentListener_notifyResult (listener, e_result, &ev);
 
 	gnome_vfs_uri_unref (src_uri);
 	gnome_vfs_uri_unref (dest_uri);
Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/ChangeLog,v
retrieving revision 1.1435.2.12
diff -u -r1.1435.2.12 ChangeLog
--- addressbook/ChangeLog	17 Sep 2003 20:09:02 -0000	1.1435.2.12
+++ addressbook/ChangeLog	18 Sep 2003 06:39:37 -0000
@@ -1,3 +1,8 @@
+2003-09-18  Gilbert Fang  <gilbert fang sun com>
+
+	* addressbook/gui/component/addressbook-component.c (): remove the 
+	"addressbook.db.summary" correctly. #48538
+
 2003-09-17  Chris Toshok  <toshok ximian com>
 
 	* gui/component/addressbook.c (addressbook_new_control): don't use


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]