projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
oops, we don't need that. fix a regression in <esc>e
[apps/madmutt.git]
/
postpone.c
diff --git
a/postpone.c
b/postpone.c
index
23ae41c
..
0d97216
100644
(file)
--- a/
postpone.c
+++ b/
postpone.c
@@
-12,21
+12,29
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+#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 "mutt.h"
+#include "enter.h"
+#include "handler.h"
#include "mutt_menu.h"
#include "rfc1524.h"
#include "mutt_menu.h"
#include "rfc1524.h"
-#include "mime.h"
-#include "mapping.h"
#include "sort.h"
#include "sort.h"
-#i
fdef USE_IMAP
+#i
nclude "thread.h"
#include "mx.h"
#include "mx.h"
-#include "imap.h"
-#endif
-#include "mutt_crypt.h"
+#include <lib-crypt/crypt.h>
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
+#include <imap/imap.h>
+#include <imap/mx_imap.h>
+
+#include "lib/debug.h"
#include <ctype.h>
#include <unistd.h>
#include <ctype.h>
#include <unistd.h>
@@
-34,11
+42,11
@@
#include <sys/stat.h>
static struct mapping_t PostponeHelp[] = {
#include <sys/stat.h>
static struct mapping_t PostponeHelp[] = {
- {N_("Exit"), OP_EXIT},
- {N_("Del"), OP_DELETE},
+ {N_("Exit"),
OP_EXIT},
+ {N_("Del"),
OP_DELETE},
{N_("Undel"), OP_UNDELETE},
{N_("Undel"), OP_UNDELETE},
- {N_("Help"), OP_HELP},
- {NULL}
+ {N_("Help"),
OP_HELP},
+ {NULL
, OP_NULL
}
};
};
@@
-73,28
+81,21
@@
int mutt_num_postponed (int force)
if (!Postponed)
return 0;
if (!Postponed)
return 0;
-#ifdef USE_IMAP
/* LastModify is useless for IMAP */
/* LastModify is useless for IMAP */
- if (
mx_get_magic (Postponed
) == M_IMAP) {
+ if (
imap_is_magic (Postponed, NULL
) == M_IMAP) {
if (force) {
short newpc;
newpc = imap_mailbox_check (Postponed, 0);
if (newpc >= 0) {
PostCount = newpc;
if (force) {
short newpc;
newpc = imap_mailbox_check (Postponed, 0);
if (newpc >= 0) {
PostCount = newpc;
- dprint (2,
- (debugfile,
- "mutt_num_postponed: %d postponed IMAP messages found.\n",
- PostCount));
+ debug_print (2, ("%d postponed IMAP messages found.\n", PostCount));
}
else
}
else
- dprint (2,
- (debugfile,
- "mutt_num_postponed: using old IMAP postponed count.\n"));
+ debug_print (2, ("using old IMAP postponed count.\n"));
}
return PostCount;
}
}
return PostCount;
}
-#endif
if (stat (Postponed, &st) == -1) {
PostCount = 0;
if (stat (Postponed, &st) == -1) {
PostCount = 0;
@@
-146,7
+147,7
@@
void mutt_update_num_postponed (void)
UpdateNumPostponed = 1;
}
UpdateNumPostponed = 1;
}
-static void post_entry (char *s, size_t slen, MUTTMENU * menu, int entry)
+static void post_entry (char *s, s
s
ize_t slen, MUTTMENU * menu, int entry)
{
CONTEXT *ctx = (CONTEXT *) menu->data;
{
CONTEXT *ctx = (CONTEXT *) menu->data;
@@
-251,7
+252,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
if (!PostContext->msgcount) {
PostCount = 0;
mx_close_mailbox (PostContext, NULL);
if (!PostContext->msgcount) {
PostCount = 0;
mx_close_mailbox (PostContext, NULL);
-
FREE
(&PostContext);
+
p_delete
(&PostContext);
mutt_error _("No postponed messages.");
return (-1);
mutt_error _("No postponed messages.");
return (-1);
@@
-263,13
+264,13
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
}
else if ((h = select_msg ()) == NULL) {
mx_close_mailbox (PostContext, NULL);
}
else if ((h = select_msg ()) == NULL) {
mx_close_mailbox (PostContext, NULL);
-
FREE
(&PostContext);
+
p_delete
(&PostContext);
return (-1);
}
if (mutt_prepare_template (NULL, PostContext, hdr, h, 0) < 0) {
mx_fastclose_mailbox (PostContext);
return (-1);
}
if (mutt_prepare_template (NULL, PostContext, hdr, h, 0) < 0) {
mx_fastclose_mailbox (PostContext);
-
FREE
(&PostContext);
+
p_delete
(&PostContext);
return (-1);
}
return (-1);
}
@@
-288,15
+289,14
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
mx_close_mailbox (PostContext, NULL);
set_quadoption (OPT_DELETE, opt_delete);
mx_close_mailbox (PostContext, NULL);
set_quadoption (OPT_DELETE, opt_delete);
-
FREE
(&PostContext);
+
p_delete
(&PostContext);
for (tmp = hdr->env->userhdrs; tmp;) {
if (ascii_strncasecmp ("X-Mutt-References:", tmp->data, 18) == 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 */
for (tmp = hdr->env->userhdrs; tmp;) {
if (ascii_strncasecmp ("X-Mutt-References:", tmp->data, 18) == 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);
if (!ctx->id_hash)
ctx->id_hash = mutt_make_id_hash (ctx);
*cur = hash_find (ctx->id_hash, p);
@@
-315,9
+315,8
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
code |= SENDREPLY;
}
else if (ascii_strncasecmp ("X-Mutt-Fcc:", tmp->data, 11) == 0) {
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_pretty_mailbox (fcc);
/* remove the X-Mutt-Fcc: header field */
@@
-330,11
+329,10
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
mutt_free_list (&tmp);
tmp = next;
}
mutt_free_list (&tmp);
tmp = next;
}
- else if ((WithCrypto & APPLICATION_PGP)
- && (safe_strncmp ("Pgp:", tmp->data, 4) == 0 /* this is generated
- * by old mutt versions
- */
- || safe_strncmp ("X-Mutt-PGP:", tmp->data, 11) == 0)) {
+ 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;
hdr->security = mutt_parse_crypt_hdr (strchr (tmp->data, ':') + 1, 1);
hdr->security |= APPLICATION_PGP;
@@
-348,8
+346,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
mutt_free_list (&tmp);
tmp = next;
}
mutt_free_list (&tmp);
tmp = next;
}
- else if ((WithCrypto & APPLICATION_SMIME)
- && safe_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;
hdr->security = mutt_parse_crypt_hdr (strchr (tmp->data, ':') + 1, 1);
hdr->security |= APPLICATION_SMIME;
@@
-365,7
+362,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
}
#ifdef MIXMASTER
}
#ifdef MIXMASTER
- else if (
safe_strncmp
("X-Mutt-Mix:", tmp->data, 11) == 0) {
+ else if (
m_strncmp
("X-Mutt-Mix:", tmp->data, 11) == 0) {
char *t;
mutt_free_list (&hdr->chain);
char *t;
mutt_free_list (&hdr->chain);
@@
-403,12
+400,7
@@
int mutt_parse_crypt_hdr (char *p, int set_signas)
char pgp_sign_as[LONG_STRING] = "\0", *q;
char smime_cryptalg[LONG_STRING] = "\0";
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':
switch (*p) {
case 'e':
case 'E':
@@
-487,11
+479,11
@@
int mutt_parse_crypt_hdr (char *p, int set_signas)
}
/* the cryptalg field must not be empty */
}
/* 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;
}
return pgp;
}
@@
-509,7
+501,7
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
int rv = -1;
STATE s;
int rv = -1;
STATE s;
-
memset (&s, 0, sizeof (s)
);
+
p_clear(&s, 1
);
if (!fp && (msg = mx_open_message (ctx, hdr->msgno)) == NULL)
return (-1);
if (!fp && (msg = mx_open_message (ctx, hdr->msgno)) == NULL)
return (-1);
@@
-521,21
+513,21
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
/* parse the message header and MIME structure */
/* parse the message header and MIME structure */
- fseek (fp, hdr->offset, 0);
+ fseek
o
(fp, hdr->offset, 0);
newhdr->offset = hdr->offset;
newhdr->env = mutt_read_rfc822_header (fp, newhdr, 1, weed);
newhdr->content->length = hdr->content->length;
mutt_parse_part (fp, newhdr->content);
newhdr->offset = hdr->offset;
newhdr->env = mutt_read_rfc822_header (fp, newhdr, 1, weed);
newhdr->content->length = hdr->content->length;
mutt_parse_part (fp, newhdr->content);
-
FREE
(&newhdr->env->message_id);
-
FREE
(&newhdr->env->mail_followup_to); /* really? */
+
p_delete
(&newhdr->env->message_id);
+
p_delete
(&newhdr->env->mail_followup_to); /* really? */
/* decrypt pgp/mime encoded messages */
/* 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;
newhdr->security |= ENCRYPT | ccap;
if (!crypt_valid_passphrase (ccap))
goto err;
@@
-549,7
+541,7
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
|| b == NULL) {
err:
mx_close_message (&msg);
|| b == NULL) {
err:
mx_close_message (&msg);
-
mutt_free_envelope
(&newhdr->env);
+
envelope_delete
(&newhdr->env);
mutt_free_body (&newhdr->content);
mutt_error _("Decryption failed.");
mutt_free_body (&newhdr->content);
mutt_error _("Decryption failed.");
@@
-567,15
+559,13
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
* resending messages
*/
* resending messages
*/
- if (
WithCrypto &&
mutt_is_multipart_signed (newhdr->content)) {
+ if (mutt_is_multipart_signed (newhdr->content)) {
newhdr->security |= SIGN;
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;
("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 */
newhdr->security |= APPLICATION_SMIME;
/* destroy the signature */
@@
-608,8
+598,8
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
file[0] = '\0';
if (b->filename) {
file[0] = '\0';
if (b->filename) {
-
strfcpy (file, b->filename, sizeof (file)
);
- b->d_filename =
safe_strdup
(b->filename);
+
m_strcpy(file, sizeof(file), b->filename
);
+ b->d_filename =
m_strdup
(b->filename);
}
else {
/* avoid Content-Disposition: header with temporary filename */
}
else {
/* avoid Content-Disposition: header with temporary filename */
@@
-632,20
+622,19
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
mutt_delete_parameter ("x-mutt-noconv", &b->parameter);
}
mutt_delete_parameter ("x-mutt-noconv", &b->parameter);
}
- mutt_adv_mktemp (file, sizeof (file));
+ mutt_adv_mktemp (
NULL,
file, sizeof (file));
if ((s.fpout = safe_fopen (file, "w")) == NULL)
goto bail;
if ((s.fpout = safe_fopen (file, "w")) == NULL)
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;
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
mutt_delete_parameter ("x-action", &b->parameter);
}
else
@@
-654,7
+643,7
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
if (safe_fclose (&s.fpout) != 0)
goto bail;
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);
b->unlink = 1;
mutt_stamp_attachment (b);
@@
-667,12
+656,9
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
/* Fix encryption flags. */
/* No inline if multipart. */
/* 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;
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)) {
/* Theoretically, both could be set. Take the one the user wants to set by default. */
if ((newhdr->security & APPLICATION_PGP)
&& (newhdr->security & APPLICATION_SMIME)) {
@@
-693,7
+679,7
@@
bail:
mx_close_message (&msg);
if (rv == -1) {
mx_close_message (&msg);
if (rv == -1) {
-
mutt_free_envelope
(&newhdr->env);
+
envelope_delete
(&newhdr->env);
mutt_free_body (&newhdr->content);
}
mutt_free_body (&newhdr->content);
}