static void search_results_exec (SearchResultsMsg *msg, GCancellable *cancellable, GError **error) { GList *folders = NULL, *link; for (link = msg->stores_list; link != NULL; link = link->next) { CamelStore *store = CAMEL_STORE (link->data); if (g_cancellable_is_cancelled (cancellable)) break; add_folders_from_store (&folders, store, cancellable, error); } if (!g_cancellable_is_cancelled (cancellable)) { CamelVeeFolder *vfolder = CAMEL_VEE_FOLDER (msg->folder); folders = g_list_reverse (folders); camel_vee_folder_set_folders (vfolder, folders, cancellable); } g_list_free_full (folders, g_object_unref); }
static void vfolder_setup_exec (struct _setup_msg *m, GCancellable *cancellable, GError **error) { GList *l, *list = NULL; CamelFolder *folder; camel_vee_folder_set_expression ((CamelVeeFolder *) m->folder, m->query); l = m->sources_uri; while (l && !vfolder_shutdown) { d(printf(" Adding uri: %s\n", (gchar *)l->data)); /* FIXME Not passing a GCancellable or GError here. */ folder = e_mail_session_uri_to_folder_sync ( m->session, l->data, 0, NULL, NULL); if (folder != NULL) list = g_list_append (list, folder); l = l->next; } l = m->sources_folder; while (l && !vfolder_shutdown) { g_object_ref (l->data); list = g_list_append (list, l->data); l = l->next; } if (!vfolder_shutdown) camel_vee_folder_set_folders ((CamelVeeFolder *) m->folder, list); l = list; while (l) { g_object_unref (l->data); l = l->next; } g_list_free (list); }