- if (!account) {
- g_printerr ("modest: failed to get tny account folder'\n", account_name);
- } else {
- gchar * from = modest_account_mgr_get_from_string (account_mgr,
- account_name);
- if (!from) {
- g_printerr ("modest: no from address for account '%s'\n", account_name);
- } else {
- const gchar *cc = NULL;
- const gchar *bcc = NULL;
- const gchar *subject = NULL;
- const gchar *body = NULL;
-
- /* Get the relevant items from the list: */
- GSList *list = list_names_and_values;
- while (list) {
- const gchar * name = (const gchar*)list->data;
- GSList *list_value = g_slist_next (list);
- const gchar * value = (const gchar*)list_value->data;
-
- if (strcmp (name, "cc") == 0) {
- cc = value;
- } else if (strcmp (name, "bcc") == 0) {
- bcc = value;
- } else if (strcmp (name, "subject") == 0) {
- subject = value;
- } else if (strcmp (name, "body") == 0) {
- body = value;
- }
-
- /* Go to the next pair: */
- if (list_value) {
- list = g_slist_next (list_value);
- } else
- list = NULL;
- }
-
- /* Create the message: */
- TnyMsg *msg = modest_tny_msg_new (to, from,
- cc, bcc, subject, body,
- NULL /* attachments */);
-
- if (!msg) {
- g_printerr ("modest: failed to create message\n");
- } else
- {
- /* Add the message to a folder and show its UI for editing: */
- TnyFolder *folder = modest_tny_account_get_special_folder (account,
- TNY_FOLDER_TYPE_DRAFTS);
- if (!folder) {
- g_printerr ("modest: failed to find Drafts folder\n");
- } else {
-
- tny_folder_add_msg (folder, msg, NULL); /* TODO: check err */
- gdk_threads_enter ();