X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mx.c;h=8e645c1120562361ccb64939845dce6102a8ca2a;hp=28ba348763a127363298429c2a16552f1ea67452;hb=7d6add87dcf687d93906c297d335029effbed909;hpb=b8c71f93b0296f815a6538182343ba67e88c0012 diff --git a/mx.c b/mx.c index 28ba348..8e645c1 100644 --- a/mx.c +++ b/mx.c @@ -12,11 +12,26 @@ # include "config.h" #endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include #include #include #include #include +#include +#include + +#include #include @@ -29,7 +44,6 @@ #include "thread.h" #include "copy.h" #include "keymap.h" -#include "url.h" #include "sidebar.h" #include "compress.h" @@ -48,21 +62,9 @@ #include "dotlock.h" #endif -#include "mutt_crypt.h" +#include #include "lib/list.h" -#include "lib/debug.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include static list2_t* MailboxFormats = NULL; #define MX_COMMAND(idx,cmd) ((mx_t*) MailboxFormats->data[idx])->cmd @@ -592,7 +594,7 @@ void mx_fastclose_mailbox (CONTEXT * ctx) hash_destroy (&ctx->id_hash, NULL); mutt_clear_threads (ctx); for (i = 0; i < ctx->msgcount; i++) - mutt_free_header (&ctx->hdrs[i]); + header_delete(&ctx->hdrs[i]); p_delete(&ctx->hdrs); p_delete(&ctx->v2r); @@ -947,7 +949,7 @@ void mx_update_tables (CONTEXT * ctx, int committing) if (ctx->id_hash && ctx->hdrs[i]->env->message_id) hash_delete (ctx->id_hash, ctx->hdrs[i]->env->message_id, ctx->hdrs[i], NULL); - mutt_free_header (&ctx->hdrs[i]); + header_delete(&ctx->hdrs[i]); } } #undef this_body @@ -1423,3 +1425,27 @@ int mx_rebuild_cache (void) { return (0); #endif } + +void mutt_parse_mime_message (CONTEXT * ctx, HEADER * cur) +{ + MESSAGE *msg; + int flags = 0; + + do { + if (cur->content->type != TYPEMESSAGE + && cur->content->type != TYPEMULTIPART) + break; /* nothing to do */ + + if (cur->content->parts) + break; /* The message was parsed earlier. */ + + if ((msg = mx_open_message (ctx, cur->msgno))) { + mutt_parse_part (msg->fp, cur->content); + + cur->security = crypt_query (cur->content); + + mx_close_message (&msg); + } + } while (0); + mutt_count_body_parts (cur, flags | M_PARTS_RECOUNT); +}