projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use better error msgs for tempfile
[apps/madmutt.git]
/
attach.c
diff --git
a/attach.c
b/attach.c
index
9114d86
..
54bfc73
100644
(file)
--- a/
attach.c
+++ b/
attach.c
@@
-56,10
+56,8
@@
int mutt_get_tmp_attachment (BODY * a)
else
mutt_perror(fpin ? tempfile : a->filename);
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;
}
return a->unlink ? 0 : -1;
}
@@
-147,8
+145,8
@@
int mutt_compose_attachment (BODY * a)
goto bailout;
}
mutt_copy_stream (fp, tfp);
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."));
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;
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) &&
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);
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 {
+ pagerfd = m_tempfd(pagerfile, sizeof(pagerfile), NONULL(Tempdir), NULL);
}
}
- else
- mutt_mktemp (pagerfile);
}
if (use_mailcap) {
pid_t thepid = 0;
}
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)
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;
}
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);
s.fpin = fp;
mutt_decode_attachment (b, &s);
-
safe_fclose
(&s.fpout);
+
m_fclose
(&s.fpout);
}
else {
/* send case */
}
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"));
if (thepid < 0) {
mutt_perror (_("Can't create filter"));
-
safe_fclose
(&ifp);
+
m_fclose
(&ifp);
goto bail;
}
mutt_copy_stream (ifp, ofp);
goto bail;
}
mutt_copy_stream (ifp, ofp);
-
safe_fclose
(&ofp);
-
safe_fclose
(&ifp);
+
m_fclose
(&ofp);
+
m_fclose
(&ifp);
}
rv = 1;
}
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);
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);
}
}
mutt_perror ("fclose");
return (-1);
}
}
- }
- else {
+ } else {
/* In send mode, just copy file */
FILE *ofp, *nfp;
/* 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");
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!");
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);
}
return (-1);
}
-
safe_fclose
(&ofp);
-
safe_fclose
(&nfp);
+
m_fclose
(&ofp);
+
m_fclose
(&nfp);
}
return 0;
}
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");
if (stat (m->filename, &st) == -1) {
mutt_perror ("stat");
-
fclose (
s.fpout);
+
m_fclose(&
s.fpout);
return (-1);
}
return (-1);
}
@@
-838,7
+834,7
@@
int mutt_decode_save_attachment (FILE * fp, BODY * m, char *path,
mutt_body_handler (m, &s);
mutt_body_handler (m, &s);
-
fclose (
s.fpout);
+
m_fclose(&
s.fpout);
if (fp == NULL) {
m->length = 0;
m->encoding = saved_encoding;
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;
}
m->parts = saved_parts;
m->hdr = saved_hdr;
}
-
fclose (
s.fpin);
+
m_fclose(&
s.fpin);
}
return (0);
}
return (0);
@@
-915,12
+911,12
@@
int mutt_print_attachment (FILE * fp, BODY * a)
mutt_perror (_("Can't create filter"));
rfc1524_entry_delete(&entry);
mutt_perror (_("Can't create filter"));
rfc1524_entry_delete(&entry);
-
safe_fclose
(&ifp);
+
m_fclose
(&ifp);
return 0;
}
mutt_copy_stream (ifp, fpout);
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);
}
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);
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:
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;
}
mutt_unlink (newfile);
return rc;
}
@@
-1010,7
+1006,7
@@
int mutt_attach_check (HEADER* hdr) {
p++;
}
}
p++;
}
}
-
fclose (
fp);
+
m_fclose(&
fp);
return (found);
}
return (found);
}