+
+
+
+static void
+free_element (gpointer data, gpointer user_data)
+{
+ g_free (data);
+}
+
+
+gboolean
+modest_init_default_account_maybe (void)
+{
+ ModestAccountMgr *acc_mgr;
+
+ GSList *all_accounts = NULL;
+ gchar *default_account;
+ gboolean retval = TRUE;
+
+ acc_mgr = get_account_mgr ();
+ if (!acc_mgr) {
+ g_printerr ("modest: cannot get modest account mgr\n");
+ return FALSE;
+ }
+
+ all_accounts = modest_account_mgr_account_names (acc_mgr, NULL);
+ if (all_accounts) { /* if there are any accounts, there should be a default one */
+ default_account =
+ modest_account_mgr_get_default_account (acc_mgr);
+ if (!default_account) {
+ gchar *first_account;
+ g_printerr ("modest: no default account defined\n");
+ first_account = (gchar*)all_accounts->data;
+ if ((retval = modest_account_mgr_set_default_account (acc_mgr, first_account)))
+ g_printerr ("modest: set '%s' as the default account\n",
+ first_account);
+ else
+ g_printerr ("modest: failed to set '%s' as the default account\n",
+ first_account);
+ g_free (default_account);
+ }
+ g_slist_foreach (all_accounts, free_element, NULL);
+ g_slist_free (all_accounts);
+ }
+ return retval;
+}