# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/file.h>
+#include <lib-lib/mapping.h>
+
+#include <lib-mime/mime.h>
+
#include "mutt.h"
+#include "enter.h"
+#include "state.h"
+#include "handler.h"
+#include "recvattach.h"
#include "mutt_curses.h"
#include "mutt_menu.h"
#include "rfc1524.h"
-#include "mime.h"
-#include "mailbox.h"
#include "attach.h"
-#include "mapping.h"
#include "mx.h"
#include "copy.h"
#include "mutt_idna.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
/* some helper functions to verify that we are exclusively operating
* on message/rfc822 attachments
**
**/
-void mutt_attach_bounce (FILE * fp, HEADER * hdr,
+void mutt_attach_bounce (FILE * fp, HEADER * hdr __attribute__ ((unused)),
ATTACHPTR ** idx, short idxlen, BODY * cur)
{
short i;
char prompt[STRING];
char buf[HUGE_STRING];
- char *err = NULL;
- ADDRESS *adr = NULL;
+ const char *err = NULL;
+ address_t *adr = NULL;
int ret = 0;
int p = 0;
p = (cur || count_tagged (idx, idxlen) == 1);
if (p)
- strfcpy (prompt, _("Bounce message to: "), sizeof (prompt));
+ m_strcpy(prompt, sizeof(prompt), _("Bounce message to: "));
else
- strfcpy (prompt, _("Bounce tagged messages to: "), sizeof (prompt));
+ m_strcpy(prompt, sizeof(prompt), _("Bounce tagged messages to: "));
buf[0] = '\0';
if (mutt_get_field (prompt, buf, sizeof (buf), M_ALIAS)
if (mutt_addrlist_to_idna (adr, &err) < 0) {
mutt_error (_("Bad IDN: '%s'"), err);
- FREE (&err);
- rfc822_free_address (&adr);
+ p_delete(&err);
+ address_delete (&adr);
return;
}
mutt_format_string (prompt, sizeof (prompt) - 4,
0, COLS - extra_space, 0, 0,
prompt, sizeof (prompt), 0);
- safe_strcat (prompt, sizeof (prompt), "...?");
+ m_strcat(prompt, sizeof(prompt), "...?");
+ } else {
+ m_strcat(prompt, sizeof(prompt), "?");
}
- else
- safe_strcat (prompt, sizeof (prompt), "?");
if (query_quadoption (OPT_BOUNCE, prompt) != M_YES) {
- rfc822_free_address (&adr);
+ address_delete (&adr);
CLEARLINE (LINES - 1);
mutt_message (p ? _("Message not bounced.") : _("Messages not bounced."));
return;
**
**/
-void mutt_attach_resend (FILE * fp, HEADER * hdr, ATTACHPTR ** idx,
+void mutt_attach_resend (FILE * fp, HEADER * hdr __attribute__ ((unused)), ATTACHPTR ** idx,
short idxlen, BODY * cur)
{
short i;
if (quote) {
if (_prefix)
- strfcpy (prefix, _prefix, sizeof (prefix));
+ m_strcpy(prefix, sizeof(prefix), _prefix);
else if (!option (OPTTEXTFLOWED))
_mutt_make_string (prefix, sizeof (prefix), NONULL (Prefix),
Context, hdr, 0);
else
- strfcpy (prefix, ">", sizeof (prefix));
+ m_strcpy(prefix, sizeof(prefix), ">");
chflags |= CH_PREFIX;
}
parent = hdr;
- tmphdr = mutt_new_header ();
- tmphdr->env = mutt_new_envelope ();
+ tmphdr = header_new();
+ tmphdr->env = envelope_new();
mutt_make_forward_subject (tmphdr->env, Context, parent);
mutt_mktemp (tmpbody);
_mutt_make_string (prefix, sizeof (prefix), NONULL (Prefix), Context,
parent, 0);
else
- strfcpy (prefix, ">", sizeof (prefix));
+ m_strcpy(prefix, sizeof(prefix), ">");
}
include_header (option (OPTFORWQUOTE), fp, parent, tmpfp, prefix);
/* initialize a state structure */
- memset (&st, 0, sizeof (st));
+ p_clear(&st, 1);
if (option (OPTFORWQUOTE))
st.prefix = prefix;
mutt_unlink (tmpbody);
}
- mutt_free_header (&tmphdr);
+ header_delete(&tmphdr);
}
* the attachment index.
*/
-static void attach_forward_msgs (FILE * fp, HEADER * hdr,
+static void attach_forward_msgs (FILE * fp, HEADER * hdr __attribute__ ((unused)),
ATTACHPTR ** idx, short idxlen, BODY * cur,
int flags)
{
}
}
- tmphdr = mutt_new_header ();
- tmphdr->env = mutt_new_envelope ();
+ tmphdr = header_new();
+ tmphdr->env = envelope_new();
mutt_make_forward_subject (tmphdr->env, Context, curhdr);
mutt_mktemp (tmpbody);
if (!(tmpfp = safe_fopen (tmpbody, "w"))) {
mutt_error (_("Can't create %s."), tmpbody);
- mutt_free_header (&tmphdr);
+ header_delete(&tmphdr);
return;
}
}
}
else
- mutt_free_header (&tmphdr);
+ header_delete(&tmphdr);
ci_send_message (flags, tmphdr, *tmpbody ? tmpbody : NULL, NULL, curhdr);
if ((flags & SENDNEWS)) {
/* in case followup set Newsgroups: with Followup-To: if it present */
if (!env->newsgroups && curenv &&
- safe_strcasecmp (curenv->followup_to, "poster"))
- env->newsgroups = safe_strdup (curenv->followup_to);
+ m_strcasecmp(curenv->followup_to, "poster"))
+ env->newsgroups = m_strdup(curenv->followup_to);
}
else
#endif
/* This is _very_ similar to send.c's include_reply(). */
static void attach_include_reply (FILE * fp, FILE * tmpfp, HEADER * cur,
- int flags)
+ int flags __attribute__ ((unused)))
{
int cmflags = M_CM_PREFIX | M_CM_DECODE | M_CM_CHARCONV;
int chflags = CH_DECODE;
else if (nattach == 1)
mime_reply_any = 1;
- tmphdr = mutt_new_header ();
- tmphdr->env = mutt_new_envelope ();
+ tmphdr = header_new();
+ tmphdr->env = envelope_new();
if (attach_reply_envelope_defaults (tmphdr->env, idx, idxlen,
parent ? parent : (cur ? cur->
hdr : NULL),
flags) == -1) {
- mutt_free_header (&tmphdr);
+ header_delete(&tmphdr);
return;
}
mutt_mktemp (tmpbody);
if ((tmpfp = safe_fopen (tmpbody, "w")) == NULL) {
mutt_error (_("Can't create %s."), tmpbody);
- mutt_free_header (&tmphdr);
+ header_delete(&tmphdr);
return;
}
else {
mutt_make_attribution (Context, parent, tmpfp);
- memset (&st, 0, sizeof (STATE));
+ p_clear(&st, 1);
st.fpin = fp;
st.fpout = tmpfp;
_mutt_make_string (prefix, sizeof (prefix), NONULL (Prefix),
Context, parent, 0);
else
- strfcpy (prefix, ">", sizeof (prefix));
+ m_strcpy(prefix, sizeof(prefix), ">");
st.prefix = prefix;
st.flags = M_CHARCONV;
if (mime_reply_any && !cur &&
copy_problematic_attachments (fp, &tmphdr->content, idx, idxlen,
0) == NULL) {
- mutt_free_header (&tmphdr);
+ header_delete(&tmphdr);
fclose (tmpfp);
return;
}