*/
#include <lib-lib/lib-lib.h>
-#include <utime.h>
#include <lib-mime/mime.h>
#include <lib-mime/rfc3676.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);
}
do {
buf[0] = 0;
mutt_addrlist_to_local (*a);
- rfc822_write_address (buf, sizeof (buf), *a, 0);
+ rfc822_addrcat(buf, sizeof(buf), *a, 0);
if (mutt_get_field (field, buf, sizeof (buf), M_ALIAS) != 0)
return (-1);
address_list_wipe(a);
fputs ("----- Forwarded message from ", fp);
buffer[0] = 0;
- rfc822_write_address (buffer, sizeof (buffer), cur->env->from, 1);
+ rfc822_addrcat(buffer, sizeof(buffer), cur->env->from, 1);
fputs (buffer, fp);
fputs (" -----\n\n", fp);
}
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 ();
void mutt_set_followup_to (ENVELOPE * e)
{
- address_t *from;
-
- /*
- * Only generate the Mail-Followup-To if the user has requested it, and
- * it hasn't already been set
- */
+ /*
+ * Only generate the Mail-Followup-To if the user has requested it, and
+ * it hasn't already been set
+ */
+ if (!option(OPTFOLLOWUPTO))
+ return;
- if (!option (OPTFOLLOWUPTO))
- return;
#ifdef USE_NNTP
- if (option (OPTNEWSSEND)) {
- if (!e->followup_to && e->newsgroups && (strrchr (e->newsgroups, ',')))
- e->followup_to = m_strdup(e->newsgroups);
- return;
- }
+ if (option(OPTNEWSSEND)) {
+ if (!e->followup_to && e->newsgroups && strrchr(e->newsgroups, ','))
+ e->followup_to = m_strdup(e->newsgroups);
+ return;
+ }
#endif
- if (!e->mail_followup_to) {
+ if (e->mail_followup_to)
+ return;
+
if (mutt_is_list_cc (0, e->to, e->cc)) {
- address_t **tmp;
- /*
- * this message goes to known mailing lists, so create a proper
- * mail-followup-to header
- */
+ address_t **tmp;
- tmp = address_list_append(&e->mail_followup_to, address_list_dup(e->to));
- address_list_append(tmp, address_list_dup(e->cc));
+ /*
+ * this message goes to known mailing lists, so create a proper
+ * mail-followup-to header
+ */
+ tmp = address_list_append(&e->mail_followup_to, address_list_dup(e->to));
+ address_list_append(tmp, address_list_dup(e->cc));
}
/* remove ourselves from the mail-followup-to header */
- e->mail_followup_to = remove_user (e->mail_followup_to, 0);
+ e->mail_followup_to = remove_user(e->mail_followup_to, 0);
/*
* If we are not subscribed to any of the lists in question,
- * re-add ourselves to the mail-followup-to header. The
+ * re-add ourselves to the mail-followup-to header. The
* mail-followup-to header generated is a no-op with group-reply,
* but makes sure list-reply has the desired effect.
*/
+ if (e->mail_followup_to && !mutt_is_list_recipient(0, e->to, e->cc)) {
+ address_t *from;
- if (e->mail_followup_to && !mutt_is_list_recipient (0, e->to, e->cc)) {
- if (e->reply_to)
- from = address_list_dup (e->reply_to);
- else if (e->from)
- from = address_list_dup (e->from);
- else
- from = mutt_default_from ();
+ if (e->reply_to)
+ from = address_list_dup(e->reply_to);
+ else if (e->from)
+ from = address_list_dup(e->from);
+ else
+ from = mutt_default_from();
- if (from) {
- address_list_append(&from->next, e->mail_followup_to);
+ address_list_append(&from, e->mail_followup_to);
e->mail_followup_to = from;
- }
}
address_list_uniq(e->mail_followup_to);
-
- }
}
from field */
static address_t *set_reverse_name (ENVELOPE * env)
{
- address_t *tmp;
+ address_t *tmp;
- for (tmp = env->to; tmp; tmp = tmp->next) {
- if (mutt_addr_is_user (tmp))
- break;
- }
- if (!tmp) {
+ for (tmp = env->to; tmp; tmp = tmp->next) {
+ if (mutt_addr_is_user(tmp))
+ goto found;
+ }
for (tmp = env->cc; tmp; tmp = tmp->next) {
- if (mutt_addr_is_user (tmp))
- break;
+ if (mutt_addr_is_user(tmp))
+ goto found;
}
- }
- if (!tmp && mutt_addr_is_user (env->from))
- tmp = env->from;
- if (tmp) {
- tmp = address_dup (tmp);
- if (!option (OPTREVREAL))
- p_delete(&tmp->personal);
- if (!tmp->personal)
- tmp->personal = m_strdup(Realname);
- }
- return (tmp);
+
+ if (!mutt_addr_is_user(env->from))
+ return NULL;
+
+ found:
+ tmp = address_dup(tmp);
+ if (!option(OPTREVREAL) || !tmp->personal) {
+ p_delete(&tmp->personal);
+ tmp->personal = m_strdup(Realname);
+ }
+ return tmp;
}
address_t *mutt_default_from (void)
{
address_t *adr;
- const char *fqdn = mutt_fqdn (1);
- /*
- * Note: We let $from override $realname here. Is this the right
- * thing to do?
+ /*
+ * Note: We let $from override $realname here.
+ * Is this the right thing to do?
*/
if (From)
- adr = address_dup (From);
+ adr = address_dup(From);
else if (option (OPTUSEDOMAIN)) {
- adr = address_new ();
+ const char *fqdn = mutt_fqdn (1);
+ 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__ */
- }
- else {
+ sprintf(adr->mailbox, "%s@%s", NONULL(Username), NONULL(fqdn));
+ } else {
adr = address_new ();
- adr->mailbox = m_strdup(NONULL (Username));
+ adr->mailbox = m_strdup(NONULL(Username));
}
return (adr);
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,
{
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);
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);