}
else if (a->type == TYPETEXT) {
/* On text, default to editor */
- mutt_edit_file (NONULL (Editor), a->filename);
+ mutt_edit_file(a->filename);
} else {
rfc1524_entry_delete(&entry);
mutt_error (_("No mailcap edit entry for %s"), type);
}
/* returns 1 on success, 0 on error */
-int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path,
- char *outfile)
+int mutt_pipe_attachment(FILE * fp, BODY * b, const char *path, int out)
{
pid_t thepid;
- int out = -1;
int rv = 0;
- if (outfile && *outfile)
- if ((out = safe_open (outfile, O_CREAT | O_EXCL | O_WRONLY)) < 0) {
- mutt_perror ("open");
- return 0;
- }
-
mutt_endwin (NULL);
if (fp) {
STATE s;
p_clear(&s, 1);
- if (outfile && *outfile)
+ if (out >= 0)
thepid = mutt_create_filter_fd(path, &s.fpout, NULL, NULL, -1, out, -1);
else
thepid = mutt_create_filter(path, &s.fpout, NULL, NULL);
s.fpin = fp;
mutt_decode_attachment (b, &s);
m_fclose(&s.fpout);
- }
- else {
+ } else {
/* send case */
FILE *ifp, *ofp;
if ((ifp = fopen (b->filename, "r")) == NULL) {
mutt_perror ("fopen");
- if (outfile && *outfile) {
- close (out);
- unlink (outfile);
- }
return 0;
}
- if (outfile && *outfile)
- thepid = mutt_create_filter_fd (path, &ofp, NULL, NULL, -1, out, -1);
+ if (out >= 0)
+ thepid = mutt_create_filter_fd(path, &ofp, NULL, NULL, -1, out, -1);
else
- thepid = mutt_create_filter (path, &ofp, NULL, NULL);
+ thepid = mutt_create_filter(path, &ofp, NULL, NULL);
if (thepid < 0) {
mutt_perror (_("Can't create filter"));
bail:
- if (outfile && *outfile)
- close (out);
+ if (out >= 0)
+ close(out);
/*
* check for error exit from child process
*/
- if (mutt_wait_filter (thepid) != 0)
+ if (mutt_wait_filter(thepid) != 0)
rv = 0;
- if (rv == 0 || option (OPTWAITKEY))
+ if (rv == 0 || option(OPTWAITKEY))
mutt_any_key_to_continue (NULL);
return rv;
}
tok = mime_which_token(type, -1);
if (tok == MIME_TEXT_PLAIN || tok == MIME_APPLICATION_POSTSCRIPT) {
- return (mutt_pipe_attachment (fp, a, NONULL (PrintCmd), NULL));
+ return mutt_pipe_attachment(fp, a, NONULL (PrintCmd), -1);
}
if (mutt_can_decode (a)) {