#include "keymap.h"
#include "copy.h"
#include "charset.h"
-#include <lib-crypt/crypt.h>
+#include "crypt.h"
#include "state.h"
#include "attach.h"
#include "lib.h"
b->parts = mutt_parse_multipart(s->fpin,
parameter_getval(a->parameter, "boundary"),
(long)st.st_size,
- !ascii_strcasecmp("digest", a->subtype));
+ mime_which_token(a->subtype, -1) == MIME_DIGEST);
}
else
b = a;
b = a;
while (b) {
if (b->type == TYPETEXT) {
- if (!ascii_strcasecmp ("plain", b->subtype) && type <= TXTPLAIN) {
- choice = b;
- type = TXTPLAIN;
- }
- else if (!ascii_strcasecmp ("enriched", b->subtype)
- && type <= TXTENRICHED) {
- choice = b;
- type = TXTENRICHED;
- }
- else if (!ascii_strcasecmp ("html", b->subtype) && type <= TXTHTML) {
- choice = b;
- type = TXTHTML;
+ switch (mime_which_token(b->subtype, -1)) {
+ case MIME_PLAIN:
+ if (type <= TXTPLAIN) {
+ choice = b;
+ type = TXTPLAIN;
+ }
+ break;
+ case MIME_ENRICHED:
+ if (type <= TXTENRICHED) {
+ choice = b;
+ type = TXTENRICHED;
+ }
+ break;
+ case MIME_HTML:
+ if (type <= TXTHTML) {
+ choice = b;
+ type = TXTHTML;
+ }
+ break;
+ default:
+ break;
}
}
b = b->next;
return (1);
else if (a->type == TYPEMULTIPART) {
BODY *p;
+ int tok = mime_which_token(a->subtype, -1);
- if (ascii_strcasecmp (a->subtype, "signed") == 0 ||
- ascii_strcasecmp (a->subtype, "encrypted") == 0)
- return (1);
+ if (tok == MIME_SIGNED || tok == MIME_ENCRYPTED)
+ return 1;
for (p = a->parts; p; p = p->next) {
if (mutt_can_decode (p))
return (1);
}
-
}
else if (a->type == TYPEAPPLICATION) {
if (mutt_is_application_pgp(a))
b->parts = mutt_parse_multipart(s->fpin,
parameter_getval(a->parameter, "boundary"),
(long)st.st_size,
- !ascii_strcasecmp("digest", a->subtype));
- }
- else
+ mime_which_token(a->subtype, -1) == MIME_DIGEST);
+ } else {
b = a;
+ }
for (p = b->parts, count = 1; p; p = p->next, count++) {
if (s->flags & M_DISPLAY) {
else
expire = -1;
- if (!ascii_strcasecmp (access_type, "x-mutt-deleted")) {
+ if (mime_which_token(access_type, -1) == MIME_X_MUTT_DELETED) {
if (s->flags & (M_DISPLAY | M_PRINTING)) {
char *length;
char pretty_size[10];
const char *charset = parameter_getval(b->parameter, "charset");
if (!charset)
- charset = charset_getfirst(AssumedCharset);
- if (charset && Charset)
- cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM);
+ charset = charset_getfirst(MCharset.assumed_charset);
+ if (charset && MCharset.charset)
+ cd = mutt_iconv_open (MCharset.charset, charset, M_ICONV_HOOK_FROM);
} else {
if (b->file_charset)
- cd = mutt_iconv_open (Charset, b->file_charset, M_ICONV_HOOK_FROM);
+ cd = mutt_iconv_open (MCharset.charset, b->file_charset, M_ICONV_HOOK_FROM);
}
}
int rc = 0;
int oflags = s->flags;
+ int tok = mime_which_token(b->subtype, -1);
/* first determine which handler to use to process this part */
rfc1524_entry_delete(&entry);
}
else if (b->type == TYPETEXT) {
- if (ascii_strcasecmp ("plain", b->subtype) == 0) {
+ if (tok == MIME_PLAIN) {
/* avoid copying this part twice since removing the transfer-encoding is
* the only operation needed.
*/
else
plaintext = 1;
}
- else if (ascii_strcasecmp ("enriched", b->subtype) == 0)
+ else if (tok == MIME_ENRICHED)
handler = text_enriched_handler;
else /* text body type without a handler */
plaintext = 1;
else if (b->type == TYPEMESSAGE) {
if (mutt_is_message_type (b))
handler = message_handler;
- else if (!ascii_strcasecmp ("delivery-status", b->subtype))
+ else if (tok == MIME_DELIVERY_STATUS)
plaintext = 1;
- else if (!ascii_strcasecmp ("external-body", b->subtype))
+ else if (tok == MIME_EXTERNAL_BODY)
handler = external_body_handler;
}
else if (b->type == TYPEMULTIPART) {
char *p;
- if (ascii_strcasecmp ("alternative", b->subtype) == 0)
+ if (tok == MIME_ALTERNATIVE)
handler = alternative_handler;
- else if (ascii_strcasecmp ("signed", b->subtype) == 0) {
+ else if (tok == MIME_SIGNED) {
p = parameter_getval(b->parameter, "protocol");
if (!p)
else if (s->flags & M_VERIFY)
handler = mutt_signed_handler;
}
- else if (m_strcasecmp("encrypted", b->subtype) == 0) {
+ else if (tok == MIME_ENCRYPTED) {
p = parameter_getval(b->parameter, "protocol");
if (!p)
- mutt_error (_
- ("Error: multipart/encrypted has no protocol parameter!"));
-
- else if (ascii_strcasecmp ("application/pgp-encrypted", p) == 0)
+ mutt_error(_("Error: multipart/encrypted has no protocol parameter!"));
+ else if (mime_which_token(p, -1) == MIME_APPLICATION_PGP_ENCRYPTED)
handler = crypt_pgp_encrypted_handler;
}
handler = crypt_smime_application_smime_handler;
}
-
if (plaintext || handler) {
fseeko (s->fpin, b->offset, 0);
if (!plaintext) {
/* decode to a tempfile, saving the original destination */
fp = s->fpout;
- s->fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ s->fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(MCore.tmpdir), NULL);
if (!s->fpout) {
mutt_error _("Unable to open temporary file!");
goto bail;