X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=headers.c;h=e9775d579cb35c438c5901d8f97ec684565a66bd;hp=1e95ed6cbbb592a64dee3c236e8f36ea994d2ccd;hb=8336b26fc23c7943bf6681ba2c290bb5cd2c54b8;hpb=10b7d54ecaa5c54622bf1239b57fa2e3359db0e1 diff --git a/headers.c b/headers.c index 1e95ed6..e9775d5 100644 --- a/headers.c +++ b/headers.c @@ -7,27 +7,17 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include +#include +#include #include "mutt.h" -#include "mutt_crypt.h" +#include "alias.h" +#include #include "mutt_idna.h" -#include "lib/debug.h" - -#include -#include -#include - void mutt_edit_headers (const char *editor, const char *body, - HEADER * msg, char *fcc, size_t fcclen) + HEADER * msg, char *fcc, ssize_t fcclen) { char path[_POSIX_PATH_MAX]; /* tempfile used to edit headers + body */ char buffer[LONG_STRING]; @@ -37,10 +27,10 @@ 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(Tempdir), NULL); + if (!ofp) { mutt_perror (path); return; } @@ -57,27 +47,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); 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 +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; } @@ -95,15 +84,15 @@ 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. */ n->references = msg->env->references; msg->env->references = NULL; - mutt_free_envelope (&msg->env); + envelope_delete(&msg->env); msg->env = n; n = NULL; @@ -111,7 +100,7 @@ void mutt_edit_headers (const char *editor, #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 +169,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); } } }