Use m_tempfile and better errors msg
[apps/madmutt.git] / headers.c
index 058ec94..8b69cc5 100644 (file)
--- a/headers.c
+++ b/headers.c
@@ -7,14 +7,6 @@
  * please see the file GPL in the top level source directory.
  */
 
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <sys/stat.h>
-#include <string.h>
-#include <ctype.h>
-
 #include <lib-lib/lib-lib.h>
 #include <lib-ui/curses.h>
 
@@ -37,8 +29,8 @@ void mutt_edit_headers (const char *editor,
   struct stat st;
   string_list_t *cur, **last = NULL, *tmp;
 
-  mutt_mktemp (path);
-  if ((ofp = safe_fopen (path, "w")) == NULL) {
+  ofp = m_tempfile(path, sizeof(path), NONULL(Tempdir), NULL);
+  if (!ofp) {
     mutt_perror (path);
     return;
   }
@@ -55,8 +47,8 @@ void mutt_edit_headers (const char *editor,
 
   mutt_copy_stream (ifp, ofp);
 
-  fclose (ifp);
-  fclose (ofp);
+  m_fclose(&ifp);
+  m_fclose(&ofp);
 
   if (stat (path, &st) == -1) {
     mutt_perror (path);
@@ -84,7 +76,7 @@ void mutt_edit_headers (const char *editor,
 
   if ((ofp = safe_fopen (body, "w")) == NULL) {
     /* intentionally leak a possible temporary file here */
-    fclose (ifp);
+    m_fclose(&ifp);
     mutt_perror (body);
     return;
   }
@@ -92,8 +84,8 @@ void mutt_edit_headers (const char *editor,
   n = mutt_read_rfc822_header (ifp, NULL, 1, 0);
   while ((i = fread (buffer, 1, sizeof (buffer), ifp)) > 0)
     fwrite (buffer, 1, i, ofp);
-  fclose (ofp);
-  fclose (ifp);
+  m_fclose(&ofp);
+  m_fclose(&ifp);
   mutt_unlink (path);
 
   /* restore old info. */