#endif
#include <lib-lib/mem.h>
-
+#include <lib-lib/file.h>
#include <lib-lib/macros.h>
#include <lib-lib/ascii.h>
+#include <lib-mime/mime.h>
+
#include "mutt.h"
#include "enter.h"
#include "recvattach.h"
#include "mutt_curses.h"
#include "mutt_menu.h"
-#include "mime.h"
#include "sort.h"
#include "copy.h"
#include "mx.h"
#include "pager.h"
-#include "mutt_crypt.h"
+#include <lib-crypt/crypt.h>
#include "mutt_idna.h"
#include "rfc1524.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#ifdef USE_IMAP
-#include "imap.h"
-#endif
+#include <imap/imap.h>
#ifdef BUFFY_SIZE
#include "buffy.h"
#include <sys/types.h>
#include <utime.h>
-extern char *ReleaseDate;
-
/* The folder the user last saved to. Used by ci_save_message() */
static char LastSaveFolder[_POSIX_PATH_MAX] = "";
}
}
- if (!Pager || str_cmp (Pager, "builtin") == 0)
+ if (!Pager || m_strcmp(Pager, "builtin") == 0)
builtin = 1;
else {
mutt_make_string (buf, sizeof (buf), NONULL (PagerFmt), Context, cur);
if (res != -1) {
/* see if crytpo is needed for this message. if so, we should exit curses */
- if (WithCrypto && cur->security) {
+ if (cur->security) {
if (cur->security & ENCRYPT) {
if (cur->security & APPLICATION_SMIME)
crypt_smime_getkeys (cur->env);
safe_fclose (&fpfilterout); /* XXX - check result? */
- if (WithCrypto) {
- /* update crypto information for this message */
- cur->security &= ~(GOODSIGN|BADSIGN);
- cur->security |= crypt_query (cur->content);
+ /* update crypto information for this message */
+ cur->security &= ~(GOODSIGN|BADSIGN);
+ cur->security |= crypt_query (cur->content);
- /* Remove color cache for this message, in case there
- are color patterns for both ~g and ~V */
- cur->pair = 0;
- }
+ /* Remove color cache for this message, in case there
+ are color patterns for both ~g and ~V */
+ cur->pair = 0;
if (builtin) {
pager_t info;
- if (WithCrypto
- && (cur->security & APPLICATION_SMIME) && (cmflags & M_CM_VERIFY)) {
+ if ((cur->security & APPLICATION_SMIME) && (cmflags & M_CM_VERIFY)) {
if (cur->security & GOODSIGN) {
if (!crypt_smime_verify_sender (cur))
mutt_message (_("S/MIME signature successfully verified."));
mutt_error (_("S/MIME signature could NOT be verified."));
}
- if (WithCrypto
- && (cur->security & APPLICATION_PGP) && (cmflags & M_CM_VERIFY)) {
+ if ((cur->security & APPLICATION_PGP) && (cmflags & M_CM_VERIFY)) {
if (cur->security & GOODSIGN)
mutt_message (_("PGP signature successfully verified."));
else if (cur->security & PARTSIGN)
{
char prompt[SHORT_STRING];
char buf[HUGE_STRING] = { 0 };
- ADDRESS *adr = NULL;
+ address_t *adr = NULL;
char *err = NULL;
int rc;
if (h)
- 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: "));
rc = mutt_get_field (prompt, buf, sizeof (buf), M_ALIAS);
if (mutt_addrlist_to_idna (adr, &err) < 0) {
mutt_error (_("Bad IDN: '%s'"), err);
p_delete(&err);
- rfc822_free_address (&adr);
+ address_delete (&adr);
return;
}
buf);
if (mutt_strwidth (prompt) > COLS - extra_space) {
- mutt_format_string (prompt, sizeof (prompt),
- 0, COLS - extra_space, 0, 0,
- prompt, sizeof (prompt), 0);
- str_cat (prompt, sizeof (prompt), "...?");
+ mutt_format_string(prompt, sizeof(prompt), 0, COLS - extra_space, 0, 0,
+ prompt, sizeof(prompt), 0);
+ m_strcat(prompt, sizeof(prompt), "...?");
+ } else {
+ m_strcat(prompt, sizeof(prompt), "?");
}
- else
- str_cat (prompt, sizeof (prompt), "?");
if (query_quadoption (OPT_BOUNCE, prompt) != M_YES) {
- rfc822_free_address (&adr);
+ address_delete (&adr);
CLEARLINE (LINES - 1);
mutt_message (h ? _("Message not bounced.") : _("Messages not bounced."));
return;
CLEARLINE (LINES - 1);
rc = mutt_bounce_message (NULL, h, adr);
- rfc822_free_address (&adr);
+ address_delete (&adr);
/* If no error, or background, display message. */
if ((rc == 0) || (rc == S_BKG))
mutt_message (h ? _("Message bounced.") : _("Messages bounced."));
pipe_set_flags (decode, print, &cmflags, &chflags);
- if (WithCrypto && decode && h->security & ENCRYPT) {
+ if (decode && h->security & ENCRYPT) {
if (!crypt_valid_passphrase (h->security))
return;
endwin ();
mutt_message_hook (Context, h, M_MESSAGEHOOK);
- if (WithCrypto && decode) {
+ if (decode) {
mutt_parse_mime_message (Context, h);
if (h->security & ENCRYPT && !crypt_valid_passphrase (h->security))
return 1;
}
else { /* handle tagged messages */
- if (WithCrypto && decode) {
+ if (decode) {
for (i = 0; i < Context->vcount; i++)
if (Context->hdrs[Context->v2r[i]]->tagged) {
mutt_message_hook (Context, Context->hdrs[Context->v2r[i]],
buf[0] = 0;
if (mutt_get_field (_("Shell command: "), buf, sizeof (buf), M_CMD) == 0) {
if (!buf[0] && Shell)
- strfcpy (buf, Shell, sizeof (buf));
+ m_strcpy(buf, sizeof(buf), Shell);
if (buf[0]) {
CLEARLINE (LINES - 1);
mutt_endwin (NULL);
{
const char *pfx = NULL;
char buf[SHORT_STRING];
- ADDRESS *adr = NULL;
+ address_t *adr = NULL;
adr = mutt_get_address(env, &pfx);
*cmflags = 0;
*chflags = CH_UPDATE_LEN;
- if (WithCrypto && !decode && decrypt && (hdr->security & ENCRYPT)) {
- if ((WithCrypto & APPLICATION_PGP)
- && mutt_is_multipart_encrypted (hdr->content)) {
+ if (!decode && decrypt && (hdr->security & ENCRYPT)) {
+ if (mutt_is_multipart_encrypted (hdr->content)) {
*chflags = CH_NONEWLINE | CH_XMIT | CH_MIME;
*cmflags = M_CM_DECODE_PGP;
}
- else if ((WithCrypto & APPLICATION_PGP)
- && mutt_is_application_pgp (hdr->content) & ENCRYPT)
+ else if (mutt_is_application_pgp (hdr->content) & ENCRYPT)
decode = 1;
- else if ((WithCrypto & APPLICATION_SMIME)
- && mutt_is_application_smime (hdr->content) & ENCRYPT) {
+ else if (mutt_is_application_smime (hdr->content) & ENCRYPT) {
*chflags = CH_NONEWLINE | CH_XMIT | CH_MIME;
*cmflags = M_CM_DECODE_SMIME;
}
if (h) {
- if (WithCrypto) {
- need_passphrase = h->security & ENCRYPT;
- app = h->security;
- }
+ need_passphrase = h->security & ENCRYPT;
+ app = h->security;
mutt_message_hook (Context, h, M_MESSAGEHOOK);
mutt_default_save (buf, sizeof (buf), h);
}
if (h) {
mutt_message_hook (Context, h, M_MESSAGEHOOK);
mutt_default_save (buf, sizeof (buf), h);
- if (WithCrypto) {
- need_passphrase = h->security & ENCRYPT;
- app = h->security;
- }
+ need_passphrase = h->security & ENCRYPT;
+ app = h->security;
h = NULL;
}
}
/* This is an undocumented feature of ELM pointed out to me by Felix von
* Leitner <leitner@prz.fu-berlin.de>
*/
- if (str_cmp (buf, ".") == 0)
- strfcpy (buf, LastSaveFolder, sizeof (buf));
+ if (m_strcmp(buf, ".") == 0)
+ m_strcpy(buf, sizeof(buf), LastSaveFolder);
else
- strfcpy (LastSaveFolder, buf, sizeof (LastSaveFolder));
+ m_strcpy(LastSaveFolder, sizeof(LastSaveFolder), buf);
mutt_expand_path (buf, sizeof (buf));
if (mutt_save_confirm (buf, &st) != 0)
return -1;
- if (WithCrypto && need_passphrase && (decode || decrypt)
+ if (need_passphrase && (decode || decrypt)
&& !crypt_valid_passphrase (app))
return -1;
mutt_message (_("Copying to %s..."), buf);
-#ifdef USE_IMAP
if (Context->magic == M_IMAP && !(decode || decrypt) && mx_get_magic (buf) == M_IMAP) {
switch (imap_copy_messages (Context, h, buf, delete)) {
/* success */
return -1;
}
}
-#endif
if (mx_open_mailbox (buf, M_APPEND, &ctx) != NULL) {
if (h) {
short type_changed = 0;
cp = mutt_get_parameter ("charset", b->parameter);
- strfcpy (charset, NONULL (cp), sizeof (charset));
+ m_strcpy(charset, sizeof(charset), NONULL(cp));
snprintf (buf, sizeof (buf), "%s/%s", TYPE (b), b->subtype);
- strfcpy (obuf, buf, sizeof (obuf));
+ m_strcpy(obuf, sizeof(obuf), buf);
if (b->parameter) {
size_t l;
for (p = b->parameter; p; p = p->next) {
l = m_strlen(buf);
- rfc822_cat (tmp, sizeof (tmp), p->value, MimeSpecials);
+ rfc822_strcpy(tmp, sizeof(tmp), p->value, MimeSpecials);
snprintf (buf + l, sizeof (buf) - l, "; %s=%s", p->attribute, tmp);
}
}
return;
/* clean up previous junk */
- mutt_free_parameter (&b->parameter);
+ parameter_delete(&b->parameter);
p_delete(&b->subtype);
mutt_parse_content_type (buf, b);
mutt_free_body (&b->parts);
if (!mutt_is_message_type (b->type, b->subtype) && b->hdr) {
b->hdr->content = NULL;
- mutt_free_header (&b->hdr);
+ header_delete(&b->hdr);
}
if (fp && (is_multipart (b) || mutt_is_message_type (b->type, b->subtype)))
mutt_parse_part (fp, b);
- if (WithCrypto && h) {
+ if (h) {
if (h->content == b)
h->security = 0;