X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=attach.c;h=1d1ce6655d5c69bff037dcbd9650e27463da9055;hp=88272b9683e3caab2c0492162799cc26df5d728d;hb=942efc4dec4e092c10aaf50b93e316131b6a1aa8;hpb=0dbe922d4298aed78dcba64b7c770f315a64505e diff --git a/attach.c b/attach.c index 88272b9..1d1ce66 100644 --- a/attach.c +++ b/attach.c @@ -8,31 +8,13 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include +#include #include - #include - #include #include +#include #include "mutt.h" #include "handler.h" @@ -40,7 +22,6 @@ #include "keymap.h" #include "pager.h" #include "copy.h" -#include "mx.h" #include int mutt_get_tmp_attachment (BODY * a) @@ -130,7 +111,6 @@ int mutt_compose_attachment (BODY * a) if (r != -1 && entry->composetypecommand) { BODY *b; FILE *fp, *tfp; - char tempfile[_POSIX_PATH_MAX]; if ((fp = safe_fopen (a->filename, "r")) == NULL) { mutt_perror (_("Failure to open file to parse headers.")); @@ -140,6 +120,8 @@ int mutt_compose_attachment (BODY * a) b = mutt_read_mime_header (fp, 0); if (b) { + char tempfile[_POSIX_PATH_MAX]; + if (b->parameter) { parameter_list_wipe(&a->parameter); a->parameter = b->parameter; @@ -159,10 +141,9 @@ int mutt_compose_attachment (BODY * a) /* Remove headers by copying out data to another file, then * copying the file back */ fseeko (fp, b->offset, 0); - mutt_mktemp (tempfile); - if ((tfp = safe_fopen (tempfile, "w")) == NULL) { + tfp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!tfp) { mutt_perror (_("Failure to open file to strip headers.")); - goto bailout; } mutt_copy_stream (fp, tfp); @@ -358,7 +339,7 @@ int mutt_is_autoview (BODY * b, const char *type) mutt_check_lookup_list (b, _type, sizeof (_type)); type = _type; - if (mutt_needs_mailcap (b)) { + if (rfc1524_mailcap_isneeded(b)) { if (option (OPTIMPLICITAUTOVIEW)) return 1; @@ -400,7 +381,7 @@ int mutt_view_attachment (FILE * fp, BODY * a, int flag, HEADER * hdr, !crypt_valid_passphrase (a->hdr->security)) return (rc); use_mailcap = (flag == M_MAILCAP || - (flag == M_REGULAR && mutt_needs_mailcap (a))); + (flag == M_REGULAR && rfc1524_mailcap_isneeded(a))); snprintf (type, sizeof (type), "%s/%s", TYPE (a), a->subtype); if (use_mailcap) { @@ -469,9 +450,9 @@ int mutt_view_attachment (FILE * fp, BODY * a, int flag, HEADER * hdr, /* recv case */ m_strcpy(pagerfile, sizeof(pagerfile), a->filename); mutt_adv_mktemp (NULL, pagerfile, sizeof (pagerfile)); - } - else + } else { mutt_mktemp (pagerfile); + } } if (use_mailcap) { @@ -633,7 +614,7 @@ int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path, s.fpin = fp; mutt_decode_attachment (b, &s); - safe_fclose (&s.fpout); + m_fclose(&s.fpout); } else { /* send case */ @@ -657,13 +638,13 @@ int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path, if (thepid < 0) { mutt_perror (_("Can't create filter")); - safe_fclose (&ifp); + m_fclose(&ifp); goto bail; } mutt_copy_stream (ifp, ofp); - safe_fclose (&ofp); - safe_fclose (&ifp); + m_fclose(&ofp); + m_fclose(&ifp); } rv = 1; @@ -779,19 +760,19 @@ int mutt_save_attachment (FILE * fp, BODY * m, char *path, int flags, if ((nfp = mutt_save_attachment_open (path, flags)) == NULL) { mutt_perror ("fopen"); - safe_fclose (&ofp); + m_fclose(&ofp); return (-1); } if (mutt_copy_stream (ofp, nfp) == -1) { mutt_error _("Write fault!"); - safe_fclose (&ofp); - safe_fclose (&nfp); + m_fclose(&ofp); + m_fclose(&nfp); return (-1); } - safe_fclose (&ofp); - safe_fclose (&nfp); + m_fclose(&ofp); + m_fclose(&nfp); } return 0; @@ -934,12 +915,12 @@ int mutt_print_attachment (FILE * fp, BODY * a) mutt_perror (_("Can't create filter")); rfc1524_entry_delete(&entry); - safe_fclose (&ifp); + m_fclose(&ifp); return 0; } mutt_copy_stream (ifp, fpout); - safe_fclose (&fpout); - safe_fclose (&ifp); + m_fclose(&fpout); + m_fclose(&ifp); if (mutt_wait_filter (thepid) || option (OPTWAITKEY)) mutt_any_key_to_continue (NULL); } @@ -987,16 +968,16 @@ int mutt_print_attachment (FILE * fp, BODY * a) mutt_copy_stream (ifp, fpout); - safe_fclose (&fpout); - safe_fclose (&ifp); + m_fclose(&fpout); + m_fclose(&ifp); if (mutt_wait_filter (thepid) != 0 || option (OPTWAITKEY)) mutt_any_key_to_continue (NULL); rc = 1; } bail0: - safe_fclose (&ifp); - safe_fclose (&fpout); + m_fclose(&ifp); + m_fclose(&fpout); mutt_unlink (newfile); return rc; }