X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=attach.c;h=54bfc732e209e3187dc5f7c8547ec75f4b736c73;hp=febe91eeab5c3c69e176aa0fb8989547423fdab5;hb=916e4872caf252a5850e64f79427b9dd7808435d;hpb=7b392ef7b50798f9eb3e7c869e634c5fef0092d1 diff --git a/attach.c b/attach.c index febe91e..54bfc73 100644 --- a/attach.c +++ b/attach.c @@ -56,10 +56,8 @@ int mutt_get_tmp_attachment (BODY * a) else mutt_perror(fpin ? tempfile : a->filename); - if (fpin) - fclose (fpin); - if (fpout) - fclose (fpout); + m_fclose(&fpin); + m_fclose(&fpout); return a->unlink ? 0 : -1; } @@ -147,8 +145,8 @@ int mutt_compose_attachment (BODY * a) goto bailout; } mutt_copy_stream (fp, tfp); - fclose (fp); - fclose (tfp); + m_fclose(&fp); + m_fclose(&tfp); mutt_unlink (a->filename); if (mutt_rename_file (tempfile, a->filename) != 0) { mutt_perror (_("Failure to rename file.")); @@ -375,6 +373,7 @@ int mutt_view_attachment (FILE * fp, BODY * a, int flag, HEADER * hdr, rfc1524_entry *entry = NULL; int rc = -1; int unlink_tempfile = 0; + int pagerfd = -1; is_message = mutt_is_message_type (a->type, a->subtype); if (is_message && a->hdr && (a->hdr->security & ENCRYPT) && @@ -449,23 +448,21 @@ int mutt_view_attachment (FILE * fp, BODY * a, int flag, HEADER * hdr, if (fp && !use_mailcap && a->filename) { /* recv case */ m_strcpy(pagerfile, sizeof(pagerfile), a->filename); - mutt_adv_mktemp (NULL, pagerfile, sizeof (pagerfile)); + pagerfd = m_tempfd(pagerfile, sizeof(pagerfile), NONULL(Tempdir), pagerfile); } else { - mutt_mktemp (pagerfile); + pagerfd = m_tempfd(pagerfile, sizeof(pagerfile), NONULL(Tempdir), NULL); } } if (use_mailcap) { pid_t thepid = 0; - int tempfd = -1, pagerfd = -1; + int tempfd = -1; if (!use_pager) mutt_endwin (NULL); if (use_pager || use_pipe) { - if (use_pager - && ((pagerfd = safe_open (pagerfile, O_CREAT | O_EXCL | O_WRONLY)) - == -1)) { + if (use_pager && pagerfd == -1) { mutt_perror ("open"); goto return_error; } @@ -614,7 +611,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 */ @@ -638,13 +635,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; @@ -742,13 +739,12 @@ int mutt_save_attachment (FILE * fp, BODY * m, char *path, int flags, fseeko ((s.fpin = fp), m->offset, 0); mutt_decode_attachment (m, &s); - if (fclose (s.fpout) != 0) { + if (m_fclose(&s.fpout) != 0) { mutt_perror ("fclose"); return (-1); } } - } - else { + } else { /* In send mode, just copy file */ FILE *ofp, *nfp; @@ -760,19 +756,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; @@ -809,7 +805,7 @@ int mutt_decode_save_attachment (FILE * fp, BODY * m, char *path, if (stat (m->filename, &st) == -1) { mutt_perror ("stat"); - fclose (s.fpout); + m_fclose(&s.fpout); return (-1); } @@ -838,7 +834,7 @@ int mutt_decode_save_attachment (FILE * fp, BODY * m, char *path, mutt_body_handler (m, &s); - fclose (s.fpout); + m_fclose(&s.fpout); if (fp == NULL) { m->length = 0; m->encoding = saved_encoding; @@ -847,7 +843,7 @@ int mutt_decode_save_attachment (FILE * fp, BODY * m, char *path, m->parts = saved_parts; m->hdr = saved_hdr; } - fclose (s.fpin); + m_fclose(&s.fpin); } return (0); @@ -915,12 +911,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); } @@ -968,16 +964,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; } @@ -1010,7 +1006,7 @@ int mutt_attach_check (HEADER* hdr) { p++; } } - fclose (fp); + m_fclose(&fp); return (found); }