quote arguments before giving them to command line. fixed quote of string in matcher...
[claws.git] / src / messageview.c
index d0ad10b43994832d7a7f8daf1587dc38749c6902..f70850a3331042feae278230b3ca87d01b0e5812 100644 (file)
@@ -646,7 +646,8 @@ void messageview_show(MessageView *messageview, MsgInfo *msginfo,
 {
        gchar *file;
        MimeInfo *mimeinfo, *encinfo;
-
+       MimeInfo * decrypted;
+       
        g_return_if_fail(msginfo != NULL);
 
        mimeinfo = procmime_scan_message(msginfo);
@@ -654,10 +655,17 @@ void messageview_show(MessageView *messageview, MsgInfo *msginfo,
 
        while ((encinfo = find_encrypted_part(mimeinfo)) != NULL) {
                debug_print("decrypting message part\n");
-               if (privacy_mimeinfo_decrypt(encinfo) < 0)
+               decrypted = privacy_mimeinfo_decrypt(encinfo);
+               if (decrypted == NULL) {
+                       break;
+               }
+               else if (procmime_mimeinfo_parent(decrypted) == NULL) {
+                       procmime_mimeinfo_free_all(mimeinfo);
+                       mimeinfo = decrypted;
                        break;
+               }
        }
-       
+
        file = procmsg_get_message_file_path(msginfo);
        if (!file) {
                g_warning("can't get message file path.\n");