X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=recvattach.c;h=1c2d85b8e2a28afacdc5de6ead3cf5228e2c8e65;hp=301b12e8a3690aa12ba8cc5b5089011d5ba0a40a;hb=c855a6e8e9522ac9add840b18a869c831030f569;hpb=b23d5033080fe9f9fba038e3cf1e3ec2b0a0d33d diff --git a/recvattach.c b/recvattach.c index 301b12e..1c2d85b 100644 --- a/recvattach.c +++ b/recvattach.c @@ -17,9 +17,9 @@ #include #include #include -#include #include "mutt.h" +#include "crypt.h" #include "handler.h" #include "recvattach.h" #include "attach.h" @@ -333,7 +333,7 @@ int mutt_tag_attach (MUTTMENU * menu, int n, int m) static int mutt_query_save_attachment (FILE * fp, BODY * body, HEADER * hdr, char **directory) { - char *prompt; + const char *prompt; char buf[_POSIX_PATH_MAX], tfile[_POSIX_PATH_MAX]; int is_message; int append = 0; @@ -486,33 +486,32 @@ 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 afilter) +mutt_query_pipe_attachment(char *command, FILE * fp, BODY * body, int afilter) { char tfile[_POSIX_PATH_MAX]; char warning[STRING + _POSIX_PATH_MAX]; + int tempfd = -1; if (afilter) { - snprintf (warning, sizeof (warning), - _("WARNING! You are about to overwrite %s, continue?"), - body->filename); + snprintf(warning, sizeof (warning), + _("WARNING! You are about to overwrite %s, continue?"), + body->filename); if (mutt_yesorno (warning, M_NO) != M_YES) { CLEARLINE (LINES - 1); return; } - mutt_mktemp (tfile); - } else { - tfile[0] = '\0'; + tempfd = m_tempfd(tfile, sizeof(tfile), NONULL(MCore.tmpdir), NULL); } - if (mutt_pipe_attachment (fp, body, command, tfile)) { + if (mutt_pipe_attachment(fp, body, command, tempfd)) { if (afilter) { mutt_unlink (body->filename); mutt_rename_file (tfile, body->filename); mutt_update_encoding (body); mutt_message _("Attachment filtered."); } - } else { - if (afilter && tfile[0]) + } else if (afilter) { + close(tempfd); mutt_unlink (tfile); } } @@ -633,10 +632,10 @@ static void print_attachment_list (FILE * fp, int tag, BODY * top, char newfile[_POSIX_PATH_MAX] = ""; FILE *ifp; + int newfile_fd; - mutt_mktemp (newfile); - if (mutt_decode_save_attachment (fp, top, newfile, M_PRINTING, 0) == - 0) { + newfile_fd = m_tempfd(newfile, sizeof(newfile), NONULL(MCore.tmpdir), NULL); + if (mutt_decode_save_attachment (fp, top, newfile_fd, M_PRINTING) == 0) { if ((ifp = fopen (newfile, "r")) != NULL) { mutt_copy_stream (ifp, state->fpout); m_fclose(&ifp); @@ -826,14 +825,7 @@ void mutt_view_attachments (HEADER * hdr) { need_secured = 1; - if ((hdr->security & ENCRYPT) && !crypt_valid_passphrase (hdr->security)) { - mx_close_message (&msg); - return; - } if (hdr->security & APPLICATION_SMIME) { - if (hdr->env) - crypt_smime_getkeys (hdr->env); - if (mutt_is_application_smime (hdr->content)) { secured = !crypt_smime_decrypt_mime (msg->fp, &fp, hdr->content, &cur); @@ -936,10 +928,6 @@ void mutt_view_attachments (HEADER * hdr) mutt_update_attach_index (cur, &idx, &idxlen, &idxmax, menu); break; - case OP_FORGET_PASSPHRASE: - crypt_forget_passphrase (); - break; - case OP_EXTRACT_KEYS: crypt_pgp_extract_keys_from_attachment_list (fp, menu->tagprefix, menu-> @@ -1161,5 +1149,7 @@ void mutt_view_attachments (HEADER * hdr) op = OP_NULL; } +#undef CHECK_READONLY +#undef CHECK_ATTACH /* not reached */ }