0.9.6claws76
[claws.git] / src / procmime.c
index 6ac5a5a7c86b861c547575dff9f4407de9ef0248..41630a6bc3eeba15c4228d91c4bcccc36202cecd 100644 (file)
@@ -59,7 +59,7 @@ MimeInfo *procmime_mimeinfo_new(void)
 
        mimeinfo->parameters = g_hash_table_new(g_str_hash, g_str_equal);
        mimeinfo->node       = g_node_new(mimeinfo);
-
+       
        return mimeinfo;
 }
 
@@ -195,7 +195,8 @@ MimeInfo *procmime_scan_message(MsgInfo *msginfo)
        filename = procmsg_get_message_file(msginfo);
        if(!filename)
                return NULL;
-       if (msginfo->folder->stype != F_QUEUE)
+       if (msginfo->folder->stype != F_QUEUE && 
+           msginfo->folder->stype != F_DRAFT)
                mimeinfo = procmime_scan_file(filename);
        else
                mimeinfo = procmime_scan_queue_file(filename);
@@ -997,13 +998,13 @@ void procmime_parse_multipart(MimeInfo *mimeinfo)
        FILE *fp;
 
        boundary = g_hash_table_lookup(mimeinfo->parameters, "boundary");
-       if(!boundary)
+       if (!boundary)
                return;
        boundary_len = strlen(boundary);
 
-       if(mimeinfo->encoding_type != ENC_BINARY && 
-          mimeinfo->encoding_type != ENC_7BIT && 
-          mimeinfo->encoding_type != ENC_8BIT)
+       if (mimeinfo->encoding_type != ENC_BINARY && 
+           mimeinfo->encoding_type != ENC_7BIT && 
+           mimeinfo->encoding_type != ENC_8BIT)
                procmime_decode_content(mimeinfo);
 
        fp = fopen(mimeinfo->filename, "rb");
@@ -1013,7 +1014,7 @@ void procmime_parse_multipart(MimeInfo *mimeinfo)
                        break;
 
                if (IS_BOUNDARY(buf, boundary, boundary_len)) {
-                       if(lastoffset != -1) {
+                       if (lastoffset != -1) {
                                procmime_parse_mimepart(mimeinfo,
                                                        hentry[0].body, hentry[1].body,
                                                        hentry[2].body, hentry[3].body, 
@@ -1033,6 +1034,10 @@ void procmime_parse_multipart(MimeInfo *mimeinfo)
                        lastoffset = ftell(fp);
                }
        }
+       for (i = 0; i < 4; i++) {
+               g_free(hentry[i].body);
+               hentry[i].body = NULL;
+       }
        fclose(fp);
 }