From 76bfed61ee6c9bd8bc468d269e724461b2aecc95 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Tue, 13 Feb 2001 00:03:34 +0000 Subject: Strip the leading "/" from the Namespace/Path entry if the provider 2001-02-12 Jeffrey Stedfast * mail-account-editor.c (construct): Strip the leading "/" from the Namespace/Path entry if the provider doesn't require absolute pathnames. svn path=/trunk/; revision=8194 --- mail/ChangeLog | 6 ++++++ mail/mail-account-editor.c | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index db02cf0c80..07bfc4b533 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,9 @@ +2001-02-12 Jeffrey Stedfast + + * mail-account-editor.c (construct): Strip the leading "/" from + the Namespace/Path entry if the provider doesn't require absolute + pathnames. + 2001-02-12 Kjartan Maraas * Makefile.am: xml-i18n-tools setup. diff --git a/mail/mail-account-editor.c b/mail/mail-account-editor.c index 886b696218..5ce5db255b 100644 --- a/mail/mail-account-editor.c +++ b/mail/mail-account-editor.c @@ -708,7 +708,38 @@ construct (MailAccountEditor *editor, const MailConfigAccount *account) editor->source_passwd = GTK_ENTRY (glade_xml_get_widget (gui, "txtSourcePasswd")); gtk_entry_set_text (editor->source_passwd, url && url->passwd ? url->passwd : ""); editor->source_path = GTK_ENTRY (glade_xml_get_widget (gui, "txtSourcePath")); - gtk_entry_set_text (editor->source_path, url && url->path ? url->path : ""); + if (url && url->path && *(url->path)) { + GList *providers; + CamelProvider *provider = NULL; + + providers = camel_session_list_providers (session, TRUE); + while (providers) { + provider = providers->data; + + if (strcmp (provider->domain, "mail")) { + provider = NULL; + providers = providers->next; + continue; + } + + if (provider->object_types[CAMEL_PROVIDER_STORE] && provider->flags & CAMEL_PROVIDER_IS_SOURCE) + if (!url || !g_strcasecmp (provider->protocol, url->protocol)) + break; + + provider = NULL; + providers = providers->next; + } + + if (provider) { + if (provider->url_flags & CAMEL_URL_PATH_IS_ABSOLUTE) + gtk_entry_set_text (editor->source_path, url->path); + else + gtk_entry_set_text (editor->source_path, url->path + 1); + } else { + /* we've got a serious problem if we ever get to here */ + g_assert_not_reached (); + } + } editor->save_passwd = GTK_CHECK_BUTTON (glade_xml_get_widget (gui, "chkSavePasswd")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->save_passwd), account->source->save_passwd); editor->source_auth = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuSourceAuth")); -- cgit v1.2.3