aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-05-11 23:38:16 +0800
committerMilan Crha <mcrha@redhat.com>2011-05-11 23:38:16 +0800
commitf9a3112069857536ec14921746f506ffae5bd64d (patch)
treec72dd950c936082f0ddfcbf9cc3733d0e743ae6f
parente72c7e8dda826fbb089832f778585191ea784bee (diff)
downloadgsoc2013-evolution-f9a3112069857536ec14921746f506ffae5bd64d.tar.gz
gsoc2013-evolution-f9a3112069857536ec14921746f506ffae5bd64d.tar.zst
gsoc2013-evolution-f9a3112069857536ec14921746f506ffae5bd64d.zip
Bug #649939 - Cann't create new folder (second shot)
The previous patch worked for local account only, for anything which has '@' in account's UID it still failed.
-rw-r--r--mail/e-mail-folder-utils.c9
-rw-r--r--mail/em-folder-utils.c6
2 files changed, 12 insertions, 3 deletions
diff --git a/mail/e-mail-folder-utils.c b/mail/e-mail-folder-utils.c
index 6332e9c1ae..f6c295d040 100644
--- a/mail/e-mail-folder-utils.c
+++ b/mail/e-mail-folder-utils.c
@@ -248,8 +248,13 @@ e_mail_folder_uri_parse (CamelSession *session,
if (g_strcmp0 (url->protocol, "folder") == 0) {
if (url->host != NULL) {
- gchar *uid = g_strdup (url->host);
- camel_url_decode (uid);
+ gchar *uid;
+
+ if (!url->user || !*url->user)
+ uid = g_strdup (url->host);
+ else
+ uid = g_strconcat (url->user, "@", url->host, NULL);
+
service = camel_session_get_service (session, uid);
g_free (uid);
}
diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c
index 1a80d79ccb..c13337bf68 100644
--- a/mail/em-folder-utils.c
+++ b/mail/em-folder-utils.c
@@ -723,6 +723,7 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs,
const gchar *uri, *path;
CamelStore *store = NULL;
struct _EMCreateFolderTempData *emcftd;
+ GError *error = NULL;
if (response != GTK_RESPONSE_OK) {
gtk_widget_destroy ((GtkWidget *) emfs);
@@ -736,7 +737,10 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs,
session = em_folder_tree_get_session (folder_tree);
- if (!e_mail_folder_uri_parse (CAMEL_SESSION (session), uri, &store, NULL, NULL)) {
+ if (!e_mail_folder_uri_parse (CAMEL_SESSION (session), uri, &store, NULL, &error)) {
+ g_warning ("%s: Failed to parse folder uri: %s", G_STRFUNC, error ? error->message : "Unknown error");
+ if (error)
+ g_error_free (error);
return;
}