diff options
-rw-r--r-- | mail/e-mail-folder-utils.c | 9 | ||||
-rw-r--r-- | mail/em-folder-utils.c | 6 |
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; } |