Do not use UTF-8 functions to measure string lengths
[modest] / src / widgets / modest-gtkhtml-msg-view.c
index d7f5238..0f6d1cd 100644 (file)
@@ -55,6 +55,7 @@
 #include <widgets/modest-ui-constants.h>
 #include <modest-icon-names.h>
 #include <tny-camel-bs-mime-part.h>
+#include <modest-runtime.h>
 
 /* FIXNE: we should have no maemo-deps in widgets/ */
 #ifndef MODEST_TOOLKIT_GTK
@@ -1593,6 +1594,7 @@ request_fetch_images (ModestGtkhtmlMsgView *self)
        /* The message could have not been downloaded yet */
        if (priv->msg) {
                modest_mime_part_view_set_view_images (MODEST_MIME_PART_VIEW (priv->body_view), TRUE);
+               priv->has_blocked_bs_images = FALSE;
                part = tny_mime_part_view_get_part (TNY_MIME_PART_VIEW (priv->body_view));
                if (part) {
                        tny_mime_part_view_set_part (TNY_MIME_PART_VIEW (priv->body_view), part);
@@ -1684,6 +1686,14 @@ find_cid_image (TnyMsg *msg, const gchar *cid)
                if (part_cid && strcmp (cid, part_cid) == 0)
                        break;
 
+               if (part_cid && part_cid[0] == '<') {
+                       const gchar *end;
+                       end = g_strrstr_len (part_cid, -1, ">");
+
+                       if (end && strncmp (part_cid + 1, cid, end - part_cid - 1) == 0)
+                               break;
+               }
+
                if (tny_mime_part_content_type_is (part, "multipart/related")) {
                        TnyList *related_parts = TNY_LIST (tny_simple_list_new ());
                        TnyIterator *related_iter = NULL;
@@ -1766,7 +1776,8 @@ on_fetch_url (GtkWidget *widget, const gchar *uri,
                }
        } else if (TNY_IS_CAMEL_BS_MIME_PART (part) && 
                   !tny_camel_bs_mime_part_is_fetched (TNY_CAMEL_BS_MIME_PART (part))){
-               if (!modest_mime_part_view_get_view_images (MODEST_MIME_PART_VIEW (priv->body_view))) {
+         if (!modest_mime_part_view_get_view_images (MODEST_MIME_PART_VIEW (priv->body_view)) || 
+             !tny_device_is_online (modest_runtime_get_device ())) {
                        priv->has_blocked_bs_images = TRUE;
                        tny_stream_close (stream);
                        return TRUE;