#include <lib-lib/ascii.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 "handler.h"
#include "mutt_menu.h"
#include "rfc1524.h"
-#include "mime.h"
-#include "mapping.h"
#include "sort.h"
#include "thread.h"
#include "mx.h"
-#ifdef USE_IMAP
-#include "imap.h"
-#include "imap/mx_imap.h"
-#endif
-#include "mutt_crypt.h"
+#include <lib-crypt/crypt.h>
+
+#include <imap/imap.h>
+#include <imap/mx_imap.h>
#include "lib/debug.h"
if (!Postponed)
return 0;
-#ifdef USE_IMAP
/* LastModify is useless for IMAP */
if (imap_is_magic (Postponed, NULL) == M_IMAP) {
if (force) {
}
return PostCount;
}
-#endif
if (stat (Postponed, &st) == -1) {
PostCount = 0;
if (ctx) {
/* if a mailbox is currently open, look to see if the orignal message
the user attempted to reply to is in this mailbox */
- p = tmp->data + 18;
- SKIPWS (p);
+ p = vskipspaces(tmp->data + 18);
if (!ctx->id_hash)
ctx->id_hash = mutt_make_id_hash (ctx);
*cur = hash_find (ctx->id_hash, p);
code |= SENDREPLY;
}
else if (ascii_strncasecmp ("X-Mutt-Fcc:", tmp->data, 11) == 0) {
- p = tmp->data + 11;
- SKIPWS (p);
- strfcpy (fcc, p, fcclen);
+ p = vskipspaces(tmp->data + 11);
+ m_strcpy(fcc, fcclen, p);
mutt_pretty_mailbox (fcc);
/* remove the X-Mutt-Fcc: header field */
mutt_free_list (&tmp);
tmp = next;
}
- else if ((WithCrypto & APPLICATION_PGP)
- && (m_strncmp("Pgp:", tmp->data, 4) == 0 /* this is generated
- * by old mutt versions
- */
+ else if ((m_strncmp("Pgp:", tmp->data, 4) == 0 /* this is generated
+ * by old mutt versions
+ */
|| m_strncmp("X-Mutt-PGP:", tmp->data, 11) == 0)) {
hdr->security = mutt_parse_crypt_hdr (strchr (tmp->data, ':') + 1, 1);
hdr->security |= APPLICATION_PGP;
mutt_free_list (&tmp);
tmp = next;
}
- else if ((WithCrypto & APPLICATION_SMIME)
- && m_strncmp("X-Mutt-SMIME:", tmp->data, 13) == 0) {
+ else if (m_strncmp("X-Mutt-SMIME:", tmp->data, 13) == 0) {
hdr->security = mutt_parse_crypt_hdr (strchr (tmp->data, ':') + 1, 1);
hdr->security |= APPLICATION_SMIME;
char pgp_sign_as[LONG_STRING] = "\0", *q;
char smime_cryptalg[LONG_STRING] = "\0";
- if (!WithCrypto)
- return 0;
-
- SKIPWS (p);
- for (; *p; p++) {
-
+ for (p = vskipspaces(p); *p; p++) {
switch (*p) {
case 'e':
case 'E':
}
/* the cryptalg field must not be empty */
- if ((WithCrypto & APPLICATION_SMIME) && *smime_cryptalg)
- str_replace (&SmimeCryptAlg, smime_cryptalg);
+ if (*smime_cryptalg)
+ m_strreplace(&SmimeCryptAlg, smime_cryptalg);
- if ((WithCrypto & APPLICATION_PGP) && (set_signas || *pgp_sign_as))
- str_replace (&PgpSignAs, pgp_sign_as);
+ if (set_signas || *pgp_sign_as)
+ m_strreplace(&PgpSignAs, pgp_sign_as);
return pgp;
}
/* decrypt pgp/mime encoded messages */
- if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME) & hdr->security)
- && mutt_is_multipart_encrypted (newhdr->content)) {
- int ccap =
- WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME) & hdr->security;
+ if ((APPLICATION_PGP | APPLICATION_SMIME) & hdr->security
+ && mutt_is_multipart_encrypted (newhdr->content))
+ {
+ int ccap = (APPLICATION_PGP | APPLICATION_SMIME) & hdr->security;
newhdr->security |= ENCRYPT | ccap;
if (!crypt_valid_passphrase (ccap))
goto err;
* resending messages
*/
- if (WithCrypto && mutt_is_multipart_signed (newhdr->content)) {
+ if (mutt_is_multipart_signed (newhdr->content)) {
newhdr->security |= SIGN;
- if ((WithCrypto & APPLICATION_PGP)
- &&
- ascii_strcasecmp (mutt_get_parameter
+ if (ascii_strcasecmp (mutt_get_parameter
("protocol", newhdr->content->parameter),
"application/pgp-signature") == 0)
newhdr->security |= APPLICATION_PGP;
- else if ((WithCrypto & APPLICATION_SMIME))
+ else
newhdr->security |= APPLICATION_SMIME;
/* destroy the signature */
file[0] = '\0';
if (b->filename) {
- strfcpy (file, b->filename, sizeof (file));
+ m_strcpy(file, sizeof(file), b->filename);
b->d_filename = m_strdup(b->filename);
}
else {
goto bail;
- if ((WithCrypto & APPLICATION_PGP)
- && (mutt_is_application_pgp (b) & (ENCRYPT | SIGN))) {
+ if (mutt_is_application_pgp (b) & (ENCRYPT | SIGN)) {
mutt_body_handler (b, &s);
newhdr->security |= mutt_is_application_pgp (newhdr->content);
b->type = TYPETEXT;
- str_replace (&b->subtype, "plain");
+ m_strreplace(&b->subtype, "plain");
mutt_delete_parameter ("x-action", &b->parameter);
}
else
if (safe_fclose (&s.fpout) != 0)
goto bail;
- str_replace (&b->filename, file);
+ m_strreplace(&b->filename, file);
b->unlink = 1;
mutt_stamp_attachment (b);
/* Fix encryption flags. */
/* No inline if multipart. */
- if (WithCrypto && (newhdr->security & INLINE) && newhdr->content->next)
+ if ((newhdr->security & INLINE) && newhdr->content->next)
newhdr->security &= ~INLINE;
- /* Do we even support multiple mechanisms? */
- newhdr->security &= WithCrypto | ~(APPLICATION_PGP | APPLICATION_SMIME);
-
/* Theoretically, both could be set. Take the one the user wants to set by default. */
if ((newhdr->security & APPLICATION_PGP)
&& (newhdr->security & APPLICATION_SMIME)) {