# include "config.h"
#endif
+#include <lib-lib/macros.h>
#include <lib-lib/mem.h>
#include <lib-lib/str.h>
+#include <lib-lib/file.h>
#include <lib-lib/ascii.h>
+#include <lib-mime/mime.h>
+
#include "mutt.h"
#include "handler.h"
#include "mx.h"
#include "copy.h"
-#include "rfc2047.h"
-#include "mime.h"
-#include "mutt_crypt.h"
+#include <lib-crypt/crypt.h>
#include "mutt_idna.h"
#include "lib/debug.h"
/* Is it the begining of a header? */
if (nl && buf[0] != ' ' && buf[0] != '\t') {
ignore = 1;
- if (!from && str_ncmp ("From ", buf, 5) == 0) {
+ if (!from && m_strncmp("From ", buf, 5) == 0) {
if ((flags & CH_FROM) == 0)
continue;
from = 1;
ignore = 1;
this_is_from = 0;
- if (!from && str_ncmp ("From ", buf, 5) == 0) {
+ if (!from && m_strncmp("From ", buf, 5) == 0) {
if ((flags & CH_FROM) == 0)
continue;
this_is_from = from = 1;
fputs ("Content-Type: text/plain; charset=", out);
mutt_canonical_charset (chsbuf, sizeof (chsbuf),
Charset ? Charset : "us-ascii");
- rfc822_cat (buffer, sizeof (buffer), chsbuf, MimeSpecials);
+ rfc822_strcpy(buffer, sizeof(buffer), chsbuf, MimeSpecials);
fputs (buffer, out);
fputc ('\n', out);
}
if (flags & CH_UPDATE_LEN && (flags & CH_NOLEN) == 0) {
- fprintf (out, "Content-Length: %zd\n", h->content->length);
+ fprintf (out, "Content-Length: %lld\n", h->content->length);
if (h->lines != 0 || h->content->length == 0)
fprintf (out, "Lines: %d\n", h->lines);
}
if (flags & M_CM_PREFIX) {
if (option (OPTTEXTFLOWED))
- strfcpy (prefix, ">", sizeof (prefix));
+ m_strcpy(prefix, sizeof(prefix), ">");
else
_mutt_make_string (prefix, sizeof (prefix), NONULL (Prefix), Context,
hdr, 0);
if (mutt_copy_header (fpin, hdr, fpout,
chflags | CH_NOLEN | CH_NONEWLINE, NULL))
return -1;
- fprintf (fpout, "Content-Length: %zd\n", new_length);
+ fprintf (fpout, "Content-Length: %lld\n", new_length);
if (new_lines <= 0)
new_lines = 0;
else
if (flags & M_CM_DECODE) {
/* now make a text/plain version of the message */
- memset (&s, 0, sizeof (STATE));
+ p_clear(&s, 1);
s.fpin = fpin;
s.fpout = fpout;
if (flags & M_CM_PREFIX)
if (flags & M_CM_REPLYING)
s.flags |= M_REPLYING;
- if (WithCrypto && flags & M_CM_VERIFY)
+ if (flags & M_CM_VERIFY)
s.flags |= M_VERIFY;
rc = mutt_body_handler (body, &s);
}
- else if (WithCrypto
- && (flags & M_CM_DECODE_CRYPT) && (hdr->security & ENCRYPT)) {
+ else if ((flags & M_CM_DECODE_CRYPT) && (hdr->security & ENCRYPT)) {
BODY *cur;
FILE *fp;
- if ((WithCrypto & APPLICATION_PGP)
- && (flags & M_CM_DECODE_PGP) && (hdr->security & APPLICATION_PGP) &&
+ if ((flags & M_CM_DECODE_PGP) && (hdr->security & APPLICATION_PGP) &&
hdr->content->type == TYPEMULTIPART) {
if (crypt_pgp_decrypt_mime (fpin, &fp, hdr->content, &cur))
return (-1);
fputs ("MIME-Version: 1.0\n", fpout);
}
- if ((WithCrypto & APPLICATION_SMIME)
- && (flags & M_CM_DECODE_SMIME) && (hdr->security & APPLICATION_SMIME)
+ if ((flags & M_CM_DECODE_SMIME) && (hdr->security & APPLICATION_SMIME)
&& hdr->content->type == TYPEAPPLICATION) {
if (crypt_smime_decrypt_mime (fpin, &fp, hdr->content, &cur))
return (-1);
*/
int
-_mutt_append_message (CONTEXT * dest, FILE * fpin, CONTEXT * src,
+_mutt_append_message (CONTEXT * dest, FILE * fpin, CONTEXT * src __attribute__ ((unused)),
HEADER * hdr, BODY * body, int flags, int chflags) {
char buf[STRING];
MESSAGE *msg;
if (part->deleted) {
fprintf (fpout,
"Content-Type: message/external-body; access-type=x-mutt-deleted;\n"
- "\texpiration=%s; length=%zd\n"
+ "\texpiration=%s; length=%lld\n"
"\n", date + 5, part->length);
if (ferror (fpout))
return -1;
* XXX - fix that.
*/
-static void format_address_header (char **h, ADDRESS * a)
+static void format_address_header (char **h, address_t * a)
{
char buf[HUGE_STRING];
char cbuf[STRING];
p_realloc(h, buflen);
for (count = 0; a; a = a->next, count++) {
- ADDRESS *tmp = a->next;
+ address_t *tmp = a->next;
a->next = NULL;
*buf = *cbuf = *c2buf = '\0';
char *s = *h;
int l;
- ADDRESS *a = NULL;
+ address_t *a = NULL;
switch (tolower ((unsigned char) *s)) {
case 'r':
format_address_header (h, a);
- rfc822_free_address (&a);
+ address_delete (&a);
p_delete(&s);
return 1;