Use m_tempfile instead of mktemp in attach/recvattach
[apps/madmutt.git] / attach.c
index d4aa0d3..f917c1f 100644 (file)
--- a/attach.c
+++ b/attach.c
@@ -571,18 +571,11 @@ return_error:
 
 /* returns 1 on success, 0 on error */
 int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path,
-                          char *outfile)
+                          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) {
@@ -590,7 +583,7 @@ int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path,
     STATE s;
     p_clear(&s, 1);
 
-    if (outfile && *outfile)
+    if (out)
       thepid = mutt_create_filter_fd(path, &s.fpout, NULL, NULL, -1, out, -1);
     else
       thepid = mutt_create_filter(path, &s.fpout, NULL, NULL);
@@ -612,14 +605,10 @@ int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path,
 
     if ((ifp = fopen (b->filename, "r")) == NULL) {
       mutt_perror ("fopen");
-      if (outfile && *outfile) {
-        close (out);
-        unlink (outfile);
-      }
       return 0;
     }
 
-    if (outfile && *outfile)
+    if (out)
       thepid = mutt_create_filter_fd (path, &ofp, NULL, NULL, -1, out, -1);
     else
       thepid = mutt_create_filter (path, &ofp, NULL, NULL);
@@ -640,7 +629,7 @@ int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path,
 
 bail:
 
-  if (outfile && *outfile)
+  if (out)
     close (out);
 
   /*
@@ -924,7 +913,7 @@ int mutt_print_attachment (FILE * fp, BODY * a)
 
   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), 0));
   }
 
   if (mutt_can_decode (a)) {