static void refresh_folders_free (struct _refresh_folders_msg *m) { int i; for (i=0;i<m->folders->len;i++) g_free(m->folders->pdata[i]); g_ptr_array_free(m->folders, TRUE); camel_store_free_folder_info (m->store, m->finfo); camel_object_unref(m->store); }
gboolean e_mail_store_create_folder_sync (CamelStore *store, const gchar *full_name, GCancellable *cancellable, GError **error) { CamelFolderInfo *folder_info; gchar *copied_full_name; gchar *display_name; const gchar *parent; gboolean success = TRUE; g_return_val_if_fail (CAMEL_IS_STORE (store), FALSE); g_return_val_if_fail (full_name != NULL, FALSE); copied_full_name = g_strdup (full_name); display_name = strrchr (copied_full_name, '/'); if (display_name == NULL) { display_name = copied_full_name; parent = ""; } else { *display_name++ = '\0'; parent = copied_full_name; } folder_info = camel_store_create_folder_sync ( store, parent, display_name, cancellable, error); g_free (copied_full_name); if (folder_info == NULL) return FALSE; if (CAMEL_IS_SUBSCRIBABLE (store)) success = camel_subscribable_subscribe_folder_sync ( CAMEL_SUBSCRIBABLE (store), full_name, cancellable, error); camel_store_free_folder_info (store, folder_info); return success; }