*/
#include <lib-lib/lib-lib.h>
-#include <utime.h>
#include <lib-mime/mime.h>
#include <lib-mime/rfc3676.h>
+#include <lib-sys/unix.h>
#include <lib-ui/curses.h>
#include <lib-ui/enter.h>
+#include <lib-mx/mx.h>
-#include "mutt.h"
#include "alias.h"
#include "keymap.h"
#include "copy.h"
-#include "mx.h"
#include <lib-crypt/crypt.h>
#include "mutt_idna.h"
#include "attach.h"
#ifdef USE_NNTP
-#include "nntp.h"
+#include <nntp/nntp.h>
#endif
-#ifdef MIXMASTER
#include "remailer.h"
-#endif
-
static void append_signature (FILE * f)
{
else if (SignOffString)
fputs ("\n", f);
mutt_copy_stream (tmpfp, f);
- fclose (tmpfp);
+ m_fclose(&tmpfp);
if (thepid != -1)
mutt_wait_filter (thepid);
}
}
#ifdef USE_NNTP
-char *nntp_get_header(const char *s)
+static char *nntp_get_header(const char *s)
{
return m_strdup(skipspaces(s));
}
}
/* the CC field can get cluttered, especially with lists */
- address_list_uniq(&env->to);
- address_list_uniq(&env->cc);
+ address_list_uniq(env->to);
+ address_list_uniq(env->cc);
env->cc = mutt_remove_xrefs (env->to, env->cc);
if (env->cc && !env->to) {
m_strreplace(&env->subject, buffer);
}
-void mutt_make_misc_reply_headers (ENVELOPE * env, CONTEXT * ctx,
- HEADER * cur, ENVELOPE * curenv)
+void mutt_make_misc_reply_headers (ENVELOPE * env,
+ CONTEXT * ctx __attribute__ ((unused)),
+ HEADER * cur __attribute__ ((unused)),
+ ENVELOPE * curenv)
{
/* This takes precedence over a subject that might have
* been taken from a List-Post header. Is that correct?
if (curenv->real_subj) {
p_delete(&env->subject);
env->subject = p_new(char, m_strlen(curenv->real_subj) + 5);
- sprintf (env->subject, "Re: %s", curenv->real_subj); /* __SPRINTF_CHECKED__ */
+ sprintf (env->subject, "Re: %s", curenv->real_subj);
}
else if (!env->subject)
env->subject = m_strdup("Re: your mail");
return -1;
}
else if (flags & SENDKEY) {
- BODY *tmp;
+ BODY *btmp;
- if ((tmp = crypt_pgp_make_key_attachment (NULL)) == NULL)
+ if ((btmp = crypt_pgp_make_key_attachment (NULL)) == NULL)
return -1;
- tmp->next = msg->content;
- msg->content = tmp;
+ btmp->next = msg->content;
+ msg->content = btmp;
}
mutt_clear_error ();
}
}
- address_list_uniq(&e->mail_followup_to);
+ address_list_uniq(e->mail_followup_to);
}
}
else if (option (OPTUSEDOMAIN)) {
adr = address_new ();
adr->mailbox = p_new(char, m_strlen(Username) + m_strlen(fqdn) + 2);
- sprintf (adr->mailbox, "%s@%s", NONULL (Username), NONULL (fqdn)); /* __SPRINTF_CHECKED__ */
+ sprintf (adr->mailbox, "%s@%s", NONULL (Username), NONULL (fqdn));
}
else {
adr = address_new ();
int i;
/* Write out the message in MIME form. */
- mutt_mktemp (tempfile);
- if ((tempfp = safe_fopen (tempfile, "w")) == NULL)
- return (-1);
+ tempfp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ if (!tempfp)
+ return -1;
-#ifdef MIXMASTER
mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0,
msg->chain ? 1 : 0);
-#endif
-#ifndef MIXMASTER
- mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0, 0);
-#endif
-
fputc ('\n', tempfp); /* tie off the header. */
if ((mutt_write_mime_body (msg->content, tempfp) == -1)) {
- fclose (tempfp);
+ m_fclose(&tempfp);
unlink (tempfile);
return (-1);
}
- if (fclose (tempfp) != 0) {
- mutt_perror (tempfile);
+ if (m_fclose(&tempfp) != 0) {
+ mutt_perror (_("Can't create temporary file"));
unlink (tempfile);
return (-1);
}
-#ifdef MIXMASTER
if (msg->chain)
return mix_send_message (msg->chain, tempfile);
-#endif
i = mutt_invoke_mta (msg->env->from, msg->env->to, msg->env->cc,
msg->env->bcc, tempfile,
fseeko (fp, -1, SEEK_END);
if ((c = fgetc (fp)) != '\n')
fputc ('\n', fp);
- safe_fclose (&fp);
+ m_fclose(&fp);
}
int mutt_resend_message (FILE * fp, CONTEXT * ctx, HEADER * cur)
{
HEADER *msg = header_new();
- if (mutt_prepare_template (fp, ctx, msg, cur, 1) < 0)
+ if (mutt_prepare_template (fp, ctx, msg, cur, option(OPTWEED)) < 0)
return -1;
return ci_send_message (SENDRESEND, msg, NULL, ctx, cur);
CONTEXT * ctx, /* current mailbox */
HEADER * cur)
{ /* current message */
- char buffer[LONG_STRING];
char fcc[_POSIX_PATH_MAX] = ""; /* where to copy this message */
FILE *tempfp = NULL;
BODY *pbody;
}
if (!tempfile) {
- mutt_mktemp (buffer);
- tempfp = safe_fopen (buffer, "w+");
+ char buffer[_POSIX_PATH_MAX];
+ tempfp = m_tempfile(buffer, sizeof(buffer), NONULL(Tempdir), NULL);
msg->content->filename = m_strdup(buffer);
- }
- else {
- tempfp = safe_fopen (tempfile, "a+");
+ } else {
+ tempfp = safe_fopen(tempfile, "a+");
msg->content->filename = m_strdup(tempfile);
}
msg->env->from->personal = m_strdup(Realname);
if (!(flags & SENDKEY))
- safe_fclose (&tempfp);
+ m_fclose(&tempfp);
if (!(flags & SENDBATCH)) {
struct stat st;
- time_t mtime = mutt_decrease_mtime (msg->content->filename, NULL);
+ time_t mtime = m_decrease_mtime(msg->content->filename, NULL);
mutt_update_encoding (msg->content);
}
}
- safe_fclose (&tempfp);
+ m_fclose(&tempfp);
header_delete(&msg);
return rv;