drop mod_ssl.starttls setting.
[apps/madmutt.git] / headers.c
index e4709ac..b083ded 100644 (file)
--- a/headers.c
+++ b/headers.c
@@ -7,27 +7,16 @@
  * please see the file GPL in the top level source directory.
  */
 
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <lib-lib/macros.h>
-#include <lib-lib/ascii.h>
-#include <lib-lib/file.h>
+#include <lib-lib/lib-lib.h>
+#include <lib-ui/lib-ui.h>
 
 #include "mutt.h"
-#include <lib-crypt/crypt.h>
+#include "alias.h"
+#include "crypt.h"
 #include "mutt_idna.h"
 
-#include "lib/debug.h"
-
-#include <sys/stat.h>
-#include <string.h>
-#include <ctype.h>
-
-void mutt_edit_headers (const char *editor,
-                        const char *body,
-                        HEADER * msg, char *fcc, size_t fcclen)
+void mutt_edit_headers(const char *body,
+                       HEADER * msg, char *fcc, ssize_t fcclen)
 {
   char path[_POSIX_PATH_MAX];   /* tempfile used to edit headers + body */
   char buffer[LONG_STRING];
@@ -37,16 +26,16 @@ void mutt_edit_headers (const char *editor,
   ENVELOPE *n;
   time_t mtime;
   struct stat st;
-  LIST *cur, **last = NULL, *tmp;
+  string_list_t *cur, **last = NULL, *tmp;
 
-  mutt_mktemp (path);
-  if ((ofp = safe_fopen (path, "w")) == NULL) {
+  ofp = m_tempfile(path, sizeof(path), NONULL(mod_core.tmpdir), NULL);
+  if (!ofp) {
     mutt_perror (path);
     return;
   }
 
   mutt_env_to_local (msg->env);
-  mutt_write_rfc822_header (ofp, msg->env, NULL, 1, 0);
+  mutt_write_rfc822_header (ofp, msg->env, NULL, 1);
   fputc ('\n', ofp);            /* tie off the header. */
 
   /* now copy the body of the message. */
@@ -57,27 +46,26 @@ 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);
     return;
   }
 
-  mtime = mutt_decrease_mtime (path, &st);
+  mtime = m_decrease_mtime(path, &st);
 
-  mutt_edit_file (editor, path);
+  mutt_edit_file(path);
   stat (path, &st);
   if (mtime == st.st_mtime) {
-    debug_print (1, ("temp file was not modified.\n"));
     /* the file has not changed! */
     mutt_unlink (path);
     return;
   }
 
   mutt_unlink (body);
-  mutt_free_list (&msg->env->userhdrs);
+  string_list_wipe(&msg->env->userhdrs);
 
   /* Read the temp file back in */
   if ((ifp = fopen (path, "r")) == NULL) {
@@ -87,7 +75,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;
   }
@@ -95,8 +83,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. */
@@ -108,10 +96,7 @@ void mutt_edit_headers (const char *editor,
   n = NULL;
 
   if (!msg->env->in_reply_to)
-#ifdef USE_NNTP
-    if (!option (OPTNEWSSEND))
-#endif
-      mutt_free_list (&msg->env->references);
+    string_list_wipe(&msg->env->references);
 
   mutt_expand_aliases_env (msg->env);
 
@@ -180,7 +165,7 @@ void mutt_edit_headers (const char *editor,
       *last = cur->next;
       cur = cur->next;
       tmp->next = NULL;
-      mutt_free_list (&tmp);
+      string_list_wipe(&tmp);
     }
   }
 }