#include <lib-lib/file.h>
#include <lib-lib/mapping.h>
+#include <lib-mime/mime.h>
+
+#include <lib-ui/curses.h>
+#include <lib-ui/enter.h>
+#include <lib-ui/menu.h>
+
#include "mutt.h"
-#include "enter.h"
#include "handler.h"
#include "recvattach.h"
-#include "mutt_curses.h"
-#include "mutt_menu.h"
#include "rfc1524.h"
-#include "mime.h"
#include "attach.h"
#include "mx.h"
#include "copy.h"
-#include "mutt_crypt.h"
+#include <lib-crypt/crypt.h>
#include <ctype.h>
for (x = 0; x < idxlen; x++) {
idx[x]->num = x;
- if (2 * (idx[x]->level + 2) < sizeof (buf)) {
+ if (2 * (idx[x]->level + 2) < ssizeof (buf)) {
if (idx[x]->level) {
s = buf + 2 * (idx[x]->level - 1);
*s++ = (idx[x]->content->next) ? M_TREE_LTEE : M_TREE_LLCORNER;
if (idx[x]->tree) {
if (m_strcmp(idx[x]->tree, buf) != 0)
- str_replace (&idx[x]->tree, buf);
+ m_strreplace(&idx[x]->tree, buf);
}
else
idx[x]->tree = m_strdup(buf);
- if (2 * (idx[x]->level + 2) < sizeof (buf) && idx[x]->level) {
+ if (2 * (idx[x]->level + 2) < ssizeof (buf) && idx[x]->level) {
s = buf + 2 * (idx[x]->level - 1);
*s++ = (idx[x]->content->next) ? '\005' : '\006';
*s++ = '\006';
&& (compose
|| (parent_type == -1
&& ascii_strcasecmp ("alternative", m->subtype)))
- && (!(WithCrypto & APPLICATION_PGP)
- || !mutt_is_multipart_encrypted (m))
+ && (!mutt_is_multipart_encrypted (m))
) {
idx =
mutt_gen_attach_list (m->parts, m->type, idx, idxlen, idxmax, level,
new->level = level;
/* We don't support multipart messages in the compose menu yet */
- if (!compose && !m->collapsed &&
- ((m->type == TYPEMULTIPART && (!(WithCrypto & APPLICATION_PGP)
- || !mutt_is_multipart_encrypted (m))
- )
- || mutt_is_message_type (m->type, m->subtype))) {
- idx =
- mutt_gen_attach_list (m->parts, m->type, idx, idxlen, idxmax,
- level + 1, compose);
+ if (!compose && !m->collapsed
+ && ((m->type == TYPEMULTIPART && !mutt_is_multipart_encrypted(m))
+ || mutt_is_message_type (m->type, m->subtype)))
+ {
+ idx = mutt_gen_attach_list (m->parts, m->type, idx, idxlen, idxmax,
+ level + 1, compose);
}
}
}
return (src);
}
-static void attach_entry (char *b, size_t blen, MUTTMENU * menu, int num)
+static void attach_entry (char *b, ssize_t blen, MUTTMENU * menu, int num)
{
int w=(COLS-SW)>blen?blen:(COLS-SW);
mutt_FormatString (b, w, NONULL (AttachFormat), mutt_attach_fmt,
}
static void
-mutt_query_pipe_attachment (char *command, FILE * fp, BODY * body, int filter)
+mutt_query_pipe_attachment (char *command, FILE * fp, BODY * body, int afilter)
{
char tfile[_POSIX_PATH_MAX];
char warning[STRING + _POSIX_PATH_MAX];
- if (filter) {
+ if (afilter) {
snprintf (warning, sizeof (warning),
_("WARNING! You are about to overwrite %s, continue?"),
body->filename);
tfile[0] = 0;
if (mutt_pipe_attachment (fp, body, command, tfile)) {
- if (filter) {
+ if (afilter) {
mutt_unlink (body->filename);
mutt_rename_file (tfile, body->filename);
mutt_update_encoding (body);
}
}
else {
- if (filter && tfile[0])
+ if (afilter && tfile[0])
mutt_unlink (tfile);
}
}
static void
pipe_attachment_list (char *command, FILE * fp, int tag, BODY * top,
- int filter, STATE * state)
+ int afilter, STATE * state)
{
for (; top; top = top->next) {
if (!tag || top->tagged) {
- if (!filter && !option (OPTATTACHSPLIT))
+ if (!afilter && !option (OPTATTACHSPLIT))
pipe_attachment (fp, top, state);
else
- mutt_query_pipe_attachment (command, fp, top, filter);
+ mutt_query_pipe_attachment (command, fp, top, afilter);
}
else if (top->parts)
- pipe_attachment_list (command, fp, tag, top->parts, filter, state);
+ pipe_attachment_list (command, fp, tag, top->parts, afilter, state);
if (!tag)
break;
}
}
-void mutt_pipe_attachment_list (FILE * fp, int tag, BODY * top, int filter)
+void mutt_pipe_attachment_list (FILE * fp, int tag, BODY * top, int afilter)
{
STATE state;
char buf[SHORT_STRING];
pid_t thepid;
if (fp)
- filter = 0; /* sanity check: we can't filter in the recv case yet */
+ afilter = 0; /* sanity check: we can't filter in the recv case yet */
buf[0] = 0;
p_clear(&state, 1);
- if (mutt_get_field ((filter ? _("Filter through: ") : _("Pipe to: ")),
+ if (mutt_get_field ((afilter ? _("Filter through: ") : _("Pipe to: ")),
buf, sizeof (buf), M_CMD) != 0 || !buf[0])
return;
mutt_expand_path (buf, sizeof (buf));
- if (!filter && !option (OPTATTACHSPLIT)) {
+ if (!afilter && !option (OPTATTACHSPLIT)) {
mutt_endwin (NULL);
thepid = mutt_create_filter (buf, &state.fpout, NULL, NULL);
- pipe_attachment_list (buf, fp, tag, top, filter, &state);
+ pipe_attachment_list (buf, fp, tag, top, afilter, &state);
fclose (state.fpout);
if (mutt_wait_filter (thepid) != 0 || option (OPTWAITKEY))
mutt_any_key_to_continue (NULL);
}
else
- pipe_attachment_list (buf, fp, tag, top, filter, &state);
+ pipe_attachment_list (buf, fp, tag, top, afilter, &state);
}
static int can_print (BODY * top, int tag)
break;
/* functions which are passed through from the pager */
case OP_CHECK_TRADITIONAL:
- if (!(WithCrypto & APPLICATION_PGP)
- || (hdr && hdr->security & PGP_TRADITIONAL_CHECKED)) {
+ if (hdr && hdr->security & PGP_TRADITIONAL_CHECKED) {
op = OP_NULL;
break;
}
return;
- if (WithCrypto && ((hdr->security & ENCRYPT) ||
- (mutt_is_application_smime (hdr->content) &
- SMIMEOPAQUE))) {
+ if ((hdr->security & ENCRYPT) ||
+ (mutt_is_application_smime (hdr->content) & SMIMEOPAQUE))
+ {
need_secured = 1;
if ((hdr->security & ENCRYPT) && !crypt_valid_passphrase (hdr->security)) {
mx_close_message (&msg);
return;
}
- if ((WithCrypto & APPLICATION_SMIME)
- && (hdr->security & APPLICATION_SMIME)) {
+ if (hdr->security & APPLICATION_SMIME) {
if (hdr->env)
crypt_smime_getkeys (hdr->env);
else
need_secured = 0;
}
- if ((WithCrypto & APPLICATION_PGP) && (hdr->security & APPLICATION_PGP)) {
+ if (hdr->security & APPLICATION_PGP) {
if (mutt_is_multipart_encrypted (hdr->content))
secured = !crypt_pgp_decrypt_mime (msg->fp, &fp, hdr->content, &cur);
else
}
}
- if (!WithCrypto || !need_secured) {
+ if (!need_secured) {
fp = msg->fp;
cur = hdr->content;
}
break;
case OP_EXTRACT_KEYS:
- if ((WithCrypto & APPLICATION_PGP)) {
- crypt_pgp_extract_keys_from_attachment_list (fp, menu->tagprefix,
- menu->
- tagprefix ? cur :
- idx[menu->current]->
- content);
- menu->redraw = REDRAW_FULL;
- }
+ crypt_pgp_extract_keys_from_attachment_list (fp, menu->tagprefix,
+ menu->
+ tagprefix ? cur :
+ idx[menu->current]->
+ content);
+ menu->redraw = REDRAW_FULL;
break;
case OP_CHECK_TRADITIONAL:
- if ((WithCrypto & APPLICATION_PGP)
- && crypt_pgp_check_traditional (fp, menu->tagprefix ? cur
+ if (crypt_pgp_check_traditional (fp, menu->tagprefix ? cur
: idx[menu->current]->content,
- menu->tagprefix)) {
+ menu->tagprefix))
+ {
hdr->security = crypt_query (cur);
menu->redraw = REDRAW_FULL;
}
case OP_DELETE:
CHECK_READONLY;
-#ifdef USE_POP
if (Context->magic == M_POP) {
mutt_flushinp ();
mutt_error _("Can't delete attachment from POP server.");
break;
}
-#endif
#ifdef USE_NNTP
if (Context->magic == M_NNTP) {
}
#endif
- if (WithCrypto && (hdr->security & (~PGP_TRADITIONAL_CHECKED))) {
+ if (hdr->security & (~PGP_TRADITIONAL_CHECKED)) {
mutt_message
- _
- ("Deletion of attachments from encrypted messages is unsupported.");
+ _("Deletion of attachments from encrypted messages is unsupported.");
}
else {
if (!menu->tagprefix) {
p_delete(&idx);
idxmax = 0;
- if (WithCrypto && need_secured && secured) {
+ if (need_secured && secured) {
fclose (fp);
mutt_free_body (&cur);
}