safe_fclose -> m_fclose, and is now inlined.
[apps/madmutt.git] / lib-mx / mbox.c
index 79658fa..d1b2746 100644 (file)
@@ -546,15 +546,9 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused))
     return (-1);
 
   /* Create a temporary file to write the new version of the mailbox in. */
-  mutt_mktemp (tempfile);
-  if ((i = open (tempfile, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 ||
-      (fp = fdopen (i, "w")) == NULL) {
-    if (-1 != i) {
-      close (i);
-      unlink (tempfile);
-    }
+  fp = m_tempfile(tempfile, _POSIX_PATH_MAX, NONULL(Tempdir), NULL);
+  if (fp == NULL) {
     mutt_error _("Could not create temporary file!");
-
     mutt_sleep (5);
     goto bail;
   }
@@ -616,7 +610,6 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused))
           unlink (tempfile);
           goto bail;
         }
-
       }
 
       /* save the new offset for this message.  we add `offset' because the
@@ -727,9 +720,8 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused))
 
     char savefile[_POSIX_PATH_MAX];
 
-    snprintf (savefile, sizeof (savefile), "%s/mutt.%s-%s-%u",
-              NONULL (Tempdir), NONULL (Username), NONULL (Hostname),
-              (unsigned int) getpid ());
+    snprintf(savefile, sizeof (savefile), "%s/mutt.%s-%u",
+             NONULL(Tempdir), NONULL(Username), (unsigned int)getpid());
     rename (tempfile, savefile);
     mutt_unblock_signals ();
     mx_fastclose_mailbox (ctx);
@@ -771,7 +763,7 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused))
 
 bail:                          /* Come here in case of disaster */
 
-  safe_fclose (&fp);
+  m_fclose(&fp);
 
   /* restore offsets, as far as they are valid */
   if (first >= 0 && oldOffset) {
@@ -1017,7 +1009,7 @@ int mbox_is_magic (const char* path, struct stat* st) {
       magic = M_MBOX;
     else if (m_strcmp(MMDF_SEP, tmp) == 0)
       magic = M_MMDF;
-    safe_fclose (&f);
+    m_fclose(&f);
 
     /* need to restore the times here, the file was not really accessed,
      * only the type was accessed.  This is important, because detection