X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=recvattach.c;h=d9b6d61058123c54a15f591562a6b67b81c72231;hp=1121d2d259409024ba317a4f2d1bb8a63635f9e1;hb=9eb3b25249e78d778b6d0583b06a7c5615709e63;hpb=91d0c04349c9345f0ee29a61cc18dfc144b60edc diff --git a/recvattach.c b/recvattach.c index 1121d2d..d9b6d61 100644 --- a/recvattach.c +++ b/recvattach.c @@ -19,18 +19,20 @@ #include #include +#include + +#include +#include +#include + #include "mutt.h" -#include "enter.h" #include "handler.h" #include "recvattach.h" -#include "mutt_curses.h" -#include "mutt_menu.h" #include "rfc1524.h" -#include "mime.h" #include "attach.h" #include "mx.h" #include "copy.h" -#include "mutt_crypt.h" +#include #include @@ -90,7 +92,7 @@ void mutt_update_tree (ATTACHPTR ** idx, short idxlen) for (x = 0; x < idxlen; x++) { idx[x]->num = x; - if (2 * (idx[x]->level + 2) < sizeof (buf)) { + if (2 * (idx[x]->level + 2) < ssizeof (buf)) { if (idx[x]->level) { s = buf + 2 * (idx[x]->level - 1); *s++ = (idx[x]->content->next) ? M_TREE_LTEE : M_TREE_LLCORNER; @@ -104,12 +106,12 @@ void mutt_update_tree (ATTACHPTR ** idx, short idxlen) if (idx[x]->tree) { if (m_strcmp(idx[x]->tree, buf) != 0) - str_replace (&idx[x]->tree, buf); + m_strreplace(&idx[x]->tree, buf); } else idx[x]->tree = m_strdup(buf); - if (2 * (idx[x]->level + 2) < sizeof (buf) && idx[x]->level) { + if (2 * (idx[x]->level + 2) < ssizeof (buf) && idx[x]->level) { s = buf + 2 * (idx[x]->level - 1); *s++ = (idx[x]->content->next) ? '\005' : '\006'; *s++ = '\006'; @@ -137,8 +139,7 @@ ATTACHPTR **mutt_gen_attach_list (BODY * m, && (compose || (parent_type == -1 && ascii_strcasecmp ("alternative", m->subtype))) - && (!(WithCrypto & APPLICATION_PGP) - || !mutt_is_multipart_encrypted (m)) + && (!mutt_is_multipart_encrypted (m)) ) { idx = mutt_gen_attach_list (m->parts, m->type, idx, idxlen, idxmax, level, @@ -155,14 +156,12 @@ ATTACHPTR **mutt_gen_attach_list (BODY * m, new->level = level; /* We don't support multipart messages in the compose menu yet */ - if (!compose && !m->collapsed && - ((m->type == TYPEMULTIPART && (!(WithCrypto & APPLICATION_PGP) - || !mutt_is_multipart_encrypted (m)) - ) - || mutt_is_message_type (m->type, m->subtype))) { - idx = - mutt_gen_attach_list (m->parts, m->type, idx, idxlen, idxmax, - level + 1, compose); + if (!compose && !m->collapsed + && ((m->type == TYPEMULTIPART && !mutt_is_multipart_encrypted(m)) + || mutt_is_message_type (m->type, m->subtype))) + { + idx = mutt_gen_attach_list (m->parts, m->type, idx, idxlen, idxmax, + level + 1, compose); } } } @@ -189,7 +188,7 @@ ATTACHPTR **mutt_gen_attach_list (BODY * m, * %u = unlink */ const char *mutt_attach_fmt (char *dest, - size_t destlen, + ssize_t destlen, char op, const char *src, const char *prefix, @@ -202,7 +201,7 @@ const char *mutt_attach_fmt (char *dest, char charset[SHORT_STRING]; ATTACHPTR *aptr = (ATTACHPTR *) data; int optional = (flags & M_FORMAT_OPTIONAL); - size_t l; + ssize_t l; switch (op) { case 'C': @@ -369,7 +368,7 @@ const char *mutt_attach_fmt (char *dest, return (src); } -static void attach_entry (char *b, size_t blen, MUTTMENU * menu, int num) +static void attach_entry (char *b, ssize_t blen, MUTTMENU * menu, int num) { int w=(COLS-SW)>blen?blen:(COLS-SW); mutt_FormatString (b, w, NONULL (AttachFormat), mutt_attach_fmt, @@ -566,12 +565,12 @@ void mutt_save_attachment_list (FILE * fp, int tag, BODY * top, HEADER * hdr, } static void -mutt_query_pipe_attachment (char *command, FILE * fp, BODY * body, int filter) +mutt_query_pipe_attachment (char *command, FILE * fp, BODY * body, int afilter) { char tfile[_POSIX_PATH_MAX]; char warning[STRING + _POSIX_PATH_MAX]; - if (filter) { + if (afilter) { snprintf (warning, sizeof (warning), _("WARNING! You are about to overwrite %s, continue?"), body->filename); @@ -585,7 +584,7 @@ mutt_query_pipe_attachment (char *command, FILE * fp, BODY * body, int filter) tfile[0] = 0; if (mutt_pipe_attachment (fp, body, command, tfile)) { - if (filter) { + if (afilter) { mutt_unlink (body->filename); mutt_rename_file (tfile, body->filename); mutt_update_encoding (body); @@ -593,7 +592,7 @@ mutt_query_pipe_attachment (char *command, FILE * fp, BODY * body, int filter) } } else { - if (filter && tfile[0]) + if (afilter && tfile[0]) mutt_unlink (tfile); } } @@ -622,50 +621,50 @@ static void pipe_attachment (FILE * fp, BODY * b, STATE * state) static void pipe_attachment_list (char *command, FILE * fp, int tag, BODY * top, - int filter, STATE * state) + int afilter, STATE * state) { for (; top; top = top->next) { if (!tag || top->tagged) { - if (!filter && !option (OPTATTACHSPLIT)) + if (!afilter && !option (OPTATTACHSPLIT)) pipe_attachment (fp, top, state); else - mutt_query_pipe_attachment (command, fp, top, filter); + mutt_query_pipe_attachment (command, fp, top, afilter); } else if (top->parts) - pipe_attachment_list (command, fp, tag, top->parts, filter, state); + pipe_attachment_list (command, fp, tag, top->parts, afilter, state); if (!tag) break; } } -void mutt_pipe_attachment_list (FILE * fp, int tag, BODY * top, int filter) +void mutt_pipe_attachment_list (FILE * fp, int tag, BODY * top, int afilter) { STATE state; char buf[SHORT_STRING]; pid_t thepid; if (fp) - filter = 0; /* sanity check: we can't filter in the recv case yet */ + afilter = 0; /* sanity check: we can't filter in the recv case yet */ buf[0] = 0; p_clear(&state, 1); - if (mutt_get_field ((filter ? _("Filter through: ") : _("Pipe to: ")), + if (mutt_get_field ((afilter ? _("Filter through: ") : _("Pipe to: ")), buf, sizeof (buf), M_CMD) != 0 || !buf[0]) return; mutt_expand_path (buf, sizeof (buf)); - if (!filter && !option (OPTATTACHSPLIT)) { + if (!afilter && !option (OPTATTACHSPLIT)) { mutt_endwin (NULL); thepid = mutt_create_filter (buf, &state.fpout, NULL, NULL); - pipe_attachment_list (buf, fp, tag, top, filter, &state); + pipe_attachment_list (buf, fp, tag, top, afilter, &state); fclose (state.fpout); if (mutt_wait_filter (thepid) != 0 || option (OPTWAITKEY)) mutt_any_key_to_continue (NULL); } else - pipe_attachment_list (buf, fp, tag, top, filter, &state); + pipe_attachment_list (buf, fp, tag, top, afilter, &state); } static int can_print (BODY * top, int tag) @@ -840,8 +839,7 @@ mutt_attach_display_loop (MUTTMENU * menu, int op, FILE * fp, HEADER * hdr, break; /* functions which are passed through from the pager */ case OP_CHECK_TRADITIONAL: - if (!(WithCrypto & APPLICATION_PGP) - || (hdr && hdr->security & PGP_TRADITIONAL_CHECKED)) { + if (hdr && hdr->security & PGP_TRADITIONAL_CHECKED) { op = OP_NULL; break; } @@ -929,17 +927,16 @@ void mutt_view_attachments (HEADER * hdr) return; - if (WithCrypto && ((hdr->security & ENCRYPT) || - (mutt_is_application_smime (hdr->content) & - SMIMEOPAQUE))) { + if ((hdr->security & ENCRYPT) || + (mutt_is_application_smime (hdr->content) & SMIMEOPAQUE)) + { need_secured = 1; if ((hdr->security & ENCRYPT) && !crypt_valid_passphrase (hdr->security)) { mx_close_message (&msg); return; } - if ((WithCrypto & APPLICATION_SMIME) - && (hdr->security & APPLICATION_SMIME)) { + if (hdr->security & APPLICATION_SMIME) { if (hdr->env) crypt_smime_getkeys (hdr->env); @@ -963,7 +960,7 @@ void mutt_view_attachments (HEADER * hdr) else need_secured = 0; } - if ((WithCrypto & APPLICATION_PGP) && (hdr->security & APPLICATION_PGP)) { + if (hdr->security & APPLICATION_PGP) { if (mutt_is_multipart_encrypted (hdr->content)) secured = !crypt_pgp_decrypt_mime (msg->fp, &fp, hdr->content, &cur); else @@ -978,7 +975,7 @@ void mutt_view_attachments (HEADER * hdr) } } - if (!WithCrypto || !need_secured) { + if (!need_secured) { fp = msg->fp; cur = hdr->content; } @@ -1037,21 +1034,19 @@ void mutt_view_attachments (HEADER * hdr) break; case OP_EXTRACT_KEYS: - if ((WithCrypto & APPLICATION_PGP)) { - crypt_pgp_extract_keys_from_attachment_list (fp, menu->tagprefix, - menu-> - tagprefix ? cur : - idx[menu->current]-> - content); - menu->redraw = REDRAW_FULL; - } + crypt_pgp_extract_keys_from_attachment_list (fp, menu->tagprefix, + menu-> + tagprefix ? cur : + idx[menu->current]-> + content); + menu->redraw = REDRAW_FULL; break; case OP_CHECK_TRADITIONAL: - if ((WithCrypto & APPLICATION_PGP) - && crypt_pgp_check_traditional (fp, menu->tagprefix ? cur + if (crypt_pgp_check_traditional (fp, menu->tagprefix ? cur : idx[menu->current]->content, - menu->tagprefix)) { + menu->tagprefix)) + { hdr->security = crypt_query (cur); menu->redraw = REDRAW_FULL; } @@ -1084,14 +1079,12 @@ void mutt_view_attachments (HEADER * hdr) case OP_DELETE: CHECK_READONLY; -#ifdef USE_POP if (Context->magic == M_POP) { mutt_flushinp (); mutt_error _("Can't delete attachment from POP server."); break; } -#endif #ifdef USE_NNTP if (Context->magic == M_NNTP) { @@ -1102,10 +1095,9 @@ void mutt_view_attachments (HEADER * hdr) } #endif - if (WithCrypto && (hdr->security & (~PGP_TRADITIONAL_CHECKED))) { + if (hdr->security & (~PGP_TRADITIONAL_CHECKED)) { mutt_message - _ - ("Deletion of attachments from encrypted messages is unsupported."); + _("Deletion of attachments from encrypted messages is unsupported."); } else { if (!menu->tagprefix) { @@ -1251,7 +1243,7 @@ void mutt_view_attachments (HEADER * hdr) p_delete(&idx); idxmax = 0; - if (WithCrypto && need_secured && secured) { + if (need_secured && secured) { fclose (fp); mutt_free_body (&cur); }