From d697b27b4d9b396d3e27621ba0220564d6d3d013 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Tue, 3 Oct 2000 05:06:11 +0000 Subject: destroy our tree_model and remove the root node. also, release_unref our 2000-10-02 Chris Toshok * subscribe-dialog.c (subscribe_dialog_destroy): destroy our tree_model and remove the root node. also, release_unref our control and view, and unref the listener. * mail-tools.c (mail_tool_uri_to_folder): news url's contain host names too, now. svn path=/trunk/; revision=5690 --- mail/ChangeLog | 9 +++++++++ mail/mail-tools.c | 19 +++++++++++++++---- mail/subscribe-dialog.c | 12 ++++++++++-- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index 722aa5abba..5b020c59aa 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2000-10-02 Chris Toshok + + * subscribe-dialog.c (subscribe_dialog_destroy): destroy our + tree_model and remove the root node. also, release_unref our + control and view, and unref the listener. + + * mail-tools.c (mail_tool_uri_to_folder): news url's contain host + names too, now. + 2000-10-02 Chris Toshok * subscribe-dialog.c, subscribe-dialog.h: add a diff --git a/mail/mail-tools.c b/mail/mail-tools.c index 6c28372541..0c89fb4cdd 100644 --- a/mail/mail-tools.c +++ b/mail/mail-tools.c @@ -459,9 +459,16 @@ mail_tool_get_root_of_store (const char *source_uri, CamelException *ex) CamelStore *store; CamelFolder *folder; + mail_tool_camel_lock_up(); + + if (!strncmp (source_uri, "news://", 7)) + store = (CamelStore*)camel_session_get_service (session, source_uri, + CAMEL_PROVIDER_STORE, ex); + else + store = camel_session_get_store (session, source_uri, ex); + mail_tool_camel_lock_up (); - store = camel_session_get_store (session, source_uri, ex); if (!store) { mail_tool_camel_lock_down (); return NULL; @@ -530,10 +537,14 @@ mail_tool_uri_to_folder (const char *uri, CamelException *ex) mail_tool_camel_lock_up(); store = camel_session_get_store (session, uri, ex); if (store) { - const char *folder_path; + const char *folder_path, *ptr; - folder_path = uri + 5; - folder = camel_store_get_folder (store, folder_path, FALSE, ex); + for (ptr = (char *)(uri + 7); *ptr && *ptr != '/'; ptr++); + if (*ptr == '/') { + ptr++; + folder_path = ptr; + folder = camel_store_get_folder (store, folder_path, FALSE, ex); + } } mail_tool_camel_lock_down(); diff --git a/mail/subscribe-dialog.c b/mail/subscribe-dialog.c index 496a9f4c1d..ef1daa72f6 100644 --- a/mail/subscribe-dialog.c +++ b/mail/subscribe-dialog.c @@ -581,9 +581,17 @@ subscribe_dialog_gui_init (SubscribeDialog *sc) static void subscribe_dialog_destroy (GtkObject *object) { - SubscribeDialog *subscribe_dialog; + SubscribeDialog *sc; + + sc = SUBSCRIBE_DIALOG (object); + + gtk_object_unref (GTK_OBJECT (sc->listener)); + + bonobo_object_release_unref (sc->storage_set_control, NULL); + bonobo_object_release_unref (sc->storage_set_view, NULL); - subscribe_dialog = SUBSCRIBE_DIALOG (object); + e_tree_model_node_remove (sc->model, sc->root); + gtk_object_unref (GTK_OBJECT (sc->model)); subscribe_dialog_parent_class->destroy (object); } -- cgit v1.2.3