mutt_*mktemp--
[apps/madmutt.git] / commands.c
index 6a05985..d8a10d7 100644 (file)
@@ -8,24 +8,9 @@
  * please see the file GPL in the top level source directory.
  */
 
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <sys/types.h>
+#include <lib-lib/lib-lib.h>
 #include <utime.h>
 
-#include <lib-lib/mem.h>
-#include <lib-lib/file.h>
-#include <lib-lib/macros.h>
-#include <lib-lib/ascii.h>
-
 #include <lib-mime/mime.h>
 
 #include <lib-sys/exit.h>
 #include <lib-ui/curses.h>
 #include <lib-ui/enter.h>
 #include <lib-ui/menu.h>
+#include <lib-mx/mx.h>
 
 #include "mutt.h"
 #include "alias.h"
 #include "recvattach.h"
 #include "sort.h"
 #include "copy.h"
-#include "mx.h"
 #include "pager.h"
 #include <lib-crypt/crypt.h>
 #include "mutt_idna.h"
 
 #include <imap/imap.h>
 
-#ifdef BUFFY_SIZE
-#include "buffy.h"
-#endif
-
 /* The folder the user last saved to.  Used by ci_save_message() */
 static char LastSaveFolder[_POSIX_PATH_MAX] = "";
 
@@ -74,11 +55,10 @@ int mutt_display_message (HEADER * cur)
   mutt_parse_mime_message (Context, cur);
   mutt_message_hook (Context, cur, M_MESSAGEHOOK);
 
-  mutt_mktemp (tempfile);
-  if ((fpout = safe_fopen (tempfile, "w")) == NULL) {
+  fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!fpout) {
     mutt_error _("Could not create temporary file!");
-
-    return (0);
+    return 0;
   }
 
   if (DisplayFilter && *DisplayFilter) {
@@ -89,7 +69,7 @@ int mutt_display_message (HEADER * cur)
                                        -1, fileno (fpfilterout), -1);
     if (filterpid < 0) {
       mutt_error (_("Cannot create display filter"));
-      safe_fclose (&fpfilterout);
+      m_fclose(&fpfilterout);
       unlink (tempfile);
       return 0;
     }
@@ -148,11 +128,11 @@ int mutt_display_message (HEADER * cur)
     mx_close_message (&msg);
   }
 
-  if ((safe_fclose (&fpout) != 0 && errno != EPIPE) || res == -1) {
+  if ((m_fclose(&fpout) != 0 && errno != EPIPE) || res == -1) {
     mutt_error (_("Could not copy message"));
     if (fpfilterout != NULL) {
       mutt_wait_filter (filterpid);
-      safe_fclose (&fpfilterout);
+      m_fclose(&fpfilterout);
     }
 #if 0
     /* this is maybe just plain wrong but it makes the pager display
@@ -169,7 +149,7 @@ int mutt_display_message (HEADER * cur)
   if (fpfilterout != NULL && mutt_wait_filter (filterpid) != 0)
     mutt_any_key_to_continue (NULL);
 
-  safe_fclose (&fpfilterout);   /* XXX - check result? */
+  m_fclose(&fpfilterout);   /* XXX - check result? */
 
 
   /* update crypto information for this message */
@@ -376,7 +356,7 @@ static int _mutt_pipe_message(HEADER * h, char *cmd, int decode, int print,
     }
 
     pipe_msg (h, fpout, decode, print);
-    fclose (fpout);
+    m_fclose(&fpout);
     rc = mutt_wait_filter (thepid);
   }
   else {                        /* handle tagged messages */
@@ -409,7 +389,7 @@ static int _mutt_pipe_message(HEADER * h, char *cmd, int decode, int print,
           /* add the message separator */
           if (sep)
             fputs (sep, fpout);
-          safe_fclose (&fpout);
+          m_fclose(&fpout);
           if (mutt_wait_filter (thepid) != 0)
             rc = 1;
         }
@@ -432,7 +412,7 @@ static int _mutt_pipe_message(HEADER * h, char *cmd, int decode, int print,
             fputs (sep, fpout);
         }
       }
-      safe_fclose (&fpout);
+      m_fclose(&fpout);
       if (mutt_wait_filter (thepid) != 0)
         rc = 1;
     }
@@ -674,12 +654,7 @@ int mutt_save_message (HEADER * h, int delete,
   char prompt[SHORT_STRING], buf[_POSIX_PATH_MAX];
   CONTEXT ctx;
   struct stat st;
-
-#ifdef BUFFY_SIZE
-  BUFFY *tmp = NULL;
-#else
   struct utimbuf ut;
-#endif
 
   *redraw = 0;
 
@@ -793,20 +768,14 @@ int mutt_save_message (HEADER * h, int delete,
     mx_close_mailbox (&ctx, NULL);
 
     if (need_buffy_cleanup) {
-#ifdef BUFFY_SIZE
-      tmp = buffy_find_mailbox (buf);
-      if (tmp && tmp->new <= 0)
-        buffy_update_mailbox (tmp);
-#else
       /* fix up the times so buffy won't get confused */
       if (st.st_mtime > st.st_atime) {
         ut.actime = st.st_atime;
         ut.modtime = time (NULL);
         utime (buf, &ut);
-      }
-      else
+      } else {
         utime (buf, NULL);
-#endif
+      }
     }
 
     mutt_clear_error ();