* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <lib-lib/lib-lib.h>
+#include <lib-ui/curses.h>
#include "mutt.h"
-#include "mutt_crypt.h"
+#include "alias.h"
+#include <lib-crypt/crypt.h>
#include "mutt_idna.h"
-#include "lib/intl.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)
+ HEADER * msg, char *fcc, ssize_t fcclen)
{
char path[_POSIX_PATH_MAX]; /* tempfile used to edit headers + body */
char buffer[LONG_STRING];
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;
}
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) {
n->references = msg->env->references;
msg->env->references = NULL;
- mutt_free_envelope (&msg->env);
+ envelope_delete(&msg->env);
msg->env = n;
n = NULL;
#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);
* message based upon this one.
*/
if (fcc && ascii_strncasecmp ("fcc:", cur->data, 4) == 0) {
- p = cur->data + 4;
- SKIPWS (p);
+ p = vskipspaces(cur->data + 4);
if (*p) {
- strfcpy (fcc, p, fcclen);
+ m_strcpy(fcc, fcclen, p);
mutt_pretty_mailbox (fcc);
}
keep = 0;
}
else if (ascii_strncasecmp ("attach:", cur->data, 7) == 0) {
- BODY *body;
+ BODY *bbody;
BODY *parts;
char *q;
- p = cur->data + 7;
- SKIPWS (p);
+ p = vskipspaces(cur->data + 7);
if (*p) {
if ((q = strpbrk (p, " \t"))) {
- str_substrcpy (path, p, q, sizeof (path));
- SKIPWS (q);
+ m_strncpy(path, sizeof(path), p, q - p);
+ q = vskipspaces(q);
}
else
- strfcpy (path, p, sizeof (path));
+ m_strcpy(path, sizeof(path), p);
mutt_expand_path (path, sizeof (path));
- if ((body = mutt_make_file_attach (path))) {
- body->description = str_dup (q);
+ if ((bbody = mutt_make_file_attach (path))) {
+ bbody->description = m_strdup(q);
for (parts = msg->content; parts->next; parts = parts->next);
- parts->next = body;
+ parts->next = bbody;
}
else {
mutt_pretty_mailbox (path);
}
- else if ((WithCrypto & APPLICATION_PGP)
- && ascii_strncasecmp ("pgp:", cur->data, 4) == 0) {
+ else if (ascii_strncasecmp("pgp:", cur->data, 4) == 0) {
msg->security = mutt_parse_crypt_hdr (cur->data + 4, 0);
if (msg->security)
msg->security |= APPLICATION_PGP;
*last = cur->next;
cur = cur->next;
tmp->next = NULL;
- mutt_free_list (&tmp);
+ string_list_wipe(&tmp);
}
}
}