Revert "On creating forward, don't include purged parts (fixes NB#124831)."
[modest] / src / modest-utils.c
index 5f934c1..4447e5e 100644 (file)
 #include <tny-fs-stream.h>
 #include <tny-camel-account.h>
 #include <tny-status.h>
+#include <tny-camel-send-queue.h>
 #include <tny-camel-transport-account.h>
 #include <tny-camel-imap-store-account.h>
 #include <tny-camel-pop-store-account.h>
-
+#include <locale.h>
 #include <modest-defs.h>
 #include "modest-utils.h"
 #include "modest-platform.h"
@@ -742,28 +743,6 @@ modest_utils_get_account_name_from_recipient (const gchar *from_header, gchar **
                        break;
                }
 
-               from = 
-                       modest_account_mgr_get_from_string (mgr, node->data, NULL);
-                       
-               if (from) {
-                       gchar *from_email = 
-                               modest_text_utils_get_email_address (from);
-                       gchar *from_header_email =
-                               modest_text_utils_get_email_address (from_header);
-                               
-                       if (from_email && from_header_email) {
-                               if (!modest_text_utils_utf8_strcmp (from_header_email, from_email, TRUE)) {
-                                       account_name = g_strdup (node->data);
-                                       g_free (from);
-                                       g_free (from_email);
-                                       break;
-                               }
-                       }
-                       g_free (from_email);
-                       g_free (from_header_email);
-                       g_free (from);
-               }
-
                transport_account = modest_account_mgr_get_server_account_name (modest_runtime_get_account_mgr (),
                                                                                (const gchar *) node->data,
                                                                                TNY_ACCOUNT_TYPE_TRANSPORT);
@@ -800,6 +779,29 @@ modest_utils_get_account_name_from_recipient (const gchar *from_header, gchar **
                }
                if (mailbox && *mailbox)
                        break;
+
+               from = 
+                       modest_account_mgr_get_from_string (mgr, node->data, NULL);
+                       
+               if (from) {
+                       gchar *from_email = 
+                               modest_text_utils_get_email_address (from);
+                       gchar *from_header_email =
+                               modest_text_utils_get_email_address (from_header);
+                               
+                       if (from_email && from_header_email) {
+                               if (!modest_text_utils_utf8_strcmp (from_header_email, from_email, TRUE)) {
+                                       account_name = g_strdup (node->data);
+                                       g_free (from);
+                                       g_free (from_email);
+                                       break;
+                               }
+                       }
+                       g_free (from_email);
+                       g_free (from_header_email);
+                       g_free (from);
+               }
+
                        
        }
        g_slist_foreach (accounts, (GFunc) g_free, NULL);
@@ -836,12 +838,12 @@ modest_utils_open_mcc_mapping_file (gboolean from_lc_messages, gboolean *transla
        gchar **parts, **node;
 
        if (from_lc_messages) {
-               env_list = getenv ("LC_MESSAGES");
+               env_list = setlocale (LC_MESSAGES, NULL);
        } else {
                env_list = getenv ("LANG");
        }
        parts = g_strsplit (env_list, ":", 0);
-       gchar *path1;
+       gchar *path1 = NULL;
        const gchar* path2 = MODEST_MCC_MAPPING;
 
        if (translated)
@@ -1042,7 +1044,7 @@ modest_utils_fill_country_model (GtkTreeModel *model, gint *locale_mcc)
 
                if (mcc == previous_mcc ||
                    g_hash_table_lookup (country_hash, country)) {
-                       g_message ("already seen: '%s' %d", country, mcc);
+                       g_debug ("already seen: '%s' %d", country, mcc);
                        continue;
                }
                previous_mcc = mcc;
@@ -1139,3 +1141,27 @@ modest_utils_free_notification_list (GList *notification_list)
        g_list_foreach (notification_list, free_notification_data, NULL);
        g_list_free (notification_list);
 }
+
+void
+modest_utils_flush_send_queue (const gchar *account_id)
+{
+       TnyTransportAccount *account;
+
+       /* Get the transport account */
+       account = (TnyTransportAccount *)
+               modest_tny_account_store_get_server_account (modest_runtime_get_account_store (),
+                                                            account_id,
+                                                            TNY_ACCOUNT_TYPE_TRANSPORT);
+       if (account) {
+               ModestMailOperation *wakeup_op;
+               ModestTnySendQueue *send_queue = modest_runtime_get_send_queue (account, TRUE);
+
+               /* Flush it! */
+               wakeup_op = modest_mail_operation_new (NULL);
+               modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
+                                                wakeup_op);
+               modest_mail_operation_queue_wakeup (wakeup_op, send_queue);
+
+               g_object_unref (account);
+       }
+}