Revert "Remove plaintext_file member of struct MsgInfo."
[claws.git] / src / procmsg.c
index a398b64babd6305168e70effcd75e62cc653d725..5ff5f4d7d994b7c41de80a047c5038f4eac58a70 100644 (file)
@@ -402,8 +402,17 @@ next_folder:
 
 gchar *procmsg_get_message_file_path(MsgInfo *msginfo)
 {
+       gchar *file;
+
        cm_return_val_if_fail(msginfo != NULL, NULL);
-       return folder_item_fetch_msg(msginfo->folder, msginfo->msgnum);
+
+       if (msginfo->plaintext_file)
+               file = g_strdup(msginfo->plaintext_file);
+       else {
+               file = folder_item_fetch_msg(msginfo->folder, msginfo->msgnum);
+       }
+
+       return file;
 }
 
 gchar *procmsg_get_message_file(MsgInfo *msginfo)
@@ -1286,6 +1295,7 @@ MsgInfo *procmsg_msginfo_copy(MsgInfo *msginfo)
         newmsginfo->references = g_slist_reverse(newmsginfo->references);
 
        MEMBCOPY(score);
+       MEMBDUP(plaintext_file);
 
        return newmsginfo;
 }
@@ -1422,6 +1432,8 @@ void procmsg_msginfo_free(MsgInfo *msginfo)
        slist_free_strings_full(msginfo->references);
        g_slist_free(msginfo->tags);
 
+       g_free(msginfo->plaintext_file);
+
        g_free(msginfo);
 }
 
@@ -2339,6 +2351,7 @@ MsgInfo *procmsg_msginfo_new_from_mimeinfo(MsgInfo *src_msginfo, MimeInfo *mimei
        if (tmp_msginfo != NULL) {
                if (src_msginfo)
                        tmp_msginfo->folder = src_msginfo->folder;
+               tmp_msginfo->plaintext_file = g_strdup(tmpfile);
        } else {
                g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
        }