* 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/macros.h>
-#include <lib-lib/ascii.h>
-#include <lib-lib/file.h>
-#include <lib-lib/debug.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"
-void mutt_edit_headers (const char *editor,
- const char *body,
- HEADER * msg, char *fcc, ssize_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];
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(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. */
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;
if ((ofp = safe_fopen (body, "w")) == NULL) {
/* intentionally leak a possible temporary file here */
- fclose (ifp);
+ m_fclose(&ifp);
mutt_perror (body);
return;
}
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. */
n = NULL;
if (!msg->env->in_reply_to)
-#ifdef USE_NNTP
- if (!option (OPTNEWSSEND))
-#endif
- string_list_wipe(&msg->env->references);
+ string_list_wipe(&msg->env->references);
mutt_expand_aliases_env (msg->env);