CVS: sylpheed-claws/src imap.c,1.179.2.110,1.179.2.111 imap.h,1.34.2.5,1.34.2.6 imap_gtk.c,1.1.2.29,1.1.2.30

Colin Leroy <[email protected]>
Newsgroups gmane.mail.sylpheed.claws.cvs
Message-ID <[email protected]>
Update of /cvsroot/sylpheed-claws/sylpheed-claws/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30639a/src

Modified Files:
      Tag: gtk2
	imap.c imap.h imap_gtk.c 
Log Message:
2006-05-03 [colin]	2.1.1cvs45

	* src/imap.c
	* src/imap.h
	* src/imap_gtk.c
		Fix preventing renaming with namespace 
		separator.

Index: imap.c
===================================================================
RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/imap.c,v
retrieving revision 1.179.2.110
retrieving revision 1.179.2.111
diff -u -r1.179.2.110 -r1.179.2.111
--- imap.c	24 Apr 2006 17:01:06 -0000	1.179.2.110
+++ imap.c	3 May 2006 17:05:47 -0000	1.179.2.111
@@ -2248,6 +2248,24 @@
 	return NULL;
 }
 
+gchar imap_get_path_separator_for_item(FolderItem *item)
+{
+	Folder *folder = NULL;
+	IMAPFolder *imap_folder = NULL;
+	if (!item)
+		return '/';
+	folder = item->folder;
+	
+	if (!folder)
+		return '/';
+	
+	imap_folder = IMAP_FOLDER(folder);
+	
+	if (!imap_folder)
+		return '/';
+	
+	return imap_get_path_separator(imap_folder, item->path);
+}
 
 static gchar imap_get_path_separator(IMAPFolder *folder, const gchar *path)
 {
@@ -4259,6 +4277,11 @@
 	return -1;
 }
 
+gchar imap_get_path_separator_for_item(FolderItem *item)
+{
+	return '/';
+}
+
 FolderClass *imap_get_class(void)
 {
 	if (imap_class.idstr == NULL) {

Index: imap.h
===================================================================
RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/imap.h,v
retrieving revision 1.34.2.5
retrieving revision 1.34.2.6
diff -u -r1.34.2.5 -r1.34.2.6
--- imap.h	20 Apr 2006 16:46:32 -0000	1.34.2.5
+++ imap.h	3 May 2006 17:05:47 -0000	1.34.2.6
@@ -33,5 +33,6 @@
 guint imap_folder_get_refcnt(Folder *folder);
 void imap_folder_ref(Folder *folder);
 void imap_folder_unref(Folder *folder);
+gchar imap_get_path_separator_for_item	(FolderItem *item);
 
 #endif /* __IMAP_H__ */

Index: imap_gtk.c
===================================================================
RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/imap_gtk.c,v
retrieving revision 1.1.2.29
retrieving revision 1.1.2.30
diff -u -r1.1.2.29 -r1.1.2.30
--- imap_gtk.c	16 Jan 2006 10:43:57 -0000	1.1.2.29
+++ imap_gtk.c	3 May 2006 17:05:47 -0000	1.1.2.30
@@ -121,7 +121,8 @@
 	gchar *new_folder;
 	gchar *name;
 	gchar *p;
-
+	gchar separator = '/';
+	
 	if (!folderview->selected) return;
 
 	item = gtk_ctree_node_get_row_data(ctree, folderview->selected);
@@ -138,10 +139,18 @@
 	if (!new_folder) return;
 	AUTORELEASE_STR(new_folder, {g_free(new_folder); return;});
 
-	p = strchr(new_folder, G_DIR_SEPARATOR);
+	separator = imap_get_path_separator_for_item(item);
+
+	p = strchr(new_folder, separator);
 	if (p && *(p + 1) != '\0') {
 		alertpanel_error(_("'%c' can't be included in folder name."),
-				 G_DIR_SEPARATOR);
+				 separator);
+		return;
+	}
+	p = strchr(new_folder, '/');
+	if (p && *(p + 1) != '\0') {
+		alertpanel_error(_("'%c' can't be included in folder name."),
+				 '/');
 		return;
 	}
 
@@ -173,6 +182,7 @@
 	gchar *old_id;
 	gchar *new_id;
 	gchar *base;
+	gchar separator = '/';
 
 	item = folderview_get_selected_item(folderview);
 	g_return_if_fail(item != NULL);
@@ -189,14 +199,18 @@
 	if (!new_folder) return;
 	AUTORELEASE_STR(new_folder, {g_free(new_folder); return;});
 
-/*
-	TODO: check new name for IMAP namespace separator
-	if (strchr(new_folder, G_DIR_SEPARATOR) != NULL) {
+	separator = imap_get_path_separator_for_item(item);
+	if (strchr(new_folder, separator) != NULL) {
 		alertpanel_error(_("`%c' can't be included in folder name."),
-				 G_DIR_SEPARATOR);
+				 separator);
 		return;
 	}
-*/
+	if (strchr(new_folder, '/') != NULL) {
+		alertpanel_error(_("`%c' can't be included in folder name."),
+				 '/');
+		return;
+	}
+
 	if (folder_find_child_item_by_name(folder_item_parent(item), new_folder)) {
 		name = trim_string(new_folder, 32);
 		alertpanel_error(_("The folder '%s' already exists."), name);



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.