projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fclose -> m_fclose
[apps/madmutt.git]
/
postpone.c
diff --git
a/postpone.c
b/postpone.c
index
7cfe924
..
d8d8cf5
100644
(file)
--- a/
postpone.c
+++ b/
postpone.c
@@
-8,39
+8,24
@@
* please see the file GPL in the top level source directory.
*/
* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# 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-lib/lib-lib.h>
#include <lib-mime/mime.h>
#include <lib-mime/mime.h>
+#include <lib-ui/enter.h>
+#include <lib-ui/menu.h>
+#include <lib-ui/curses.h>
+#include <lib-mx/mx.h>
+
+#include <lib-sys/unix.h>
+
#include "mutt.h"
#include "mutt.h"
-#include "enter.h"
#include "handler.h"
#include "handler.h"
-#include "mutt_menu.h"
-#include "rfc1524.h"
#include "sort.h"
#include "thread.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/debug.h"
+#include <lib-crypt/crypt.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/stat.h>
+#include <imap/imap.h>
static struct mapping_t PostponeHelp[] = {
{N_("Exit"), OP_EXIT},
static struct mapping_t PostponeHelp[] = {
{N_("Exit"), OP_EXIT},
@@
-82,7
+67,6
@@
int mutt_num_postponed (int force)
if (!Postponed)
return 0;
if (!Postponed)
return 0;
-#ifdef USE_IMAP
/* LastModify is useless for IMAP */
if (imap_is_magic (Postponed, NULL) == M_IMAP) {
if (force) {
/* LastModify is useless for IMAP */
if (imap_is_magic (Postponed, NULL) == M_IMAP) {
if (force) {
@@
-91,14
+75,10
@@
int mutt_num_postponed (int force)
newpc = imap_mailbox_check (Postponed, 0);
if (newpc >= 0) {
PostCount = newpc;
newpc = imap_mailbox_check (Postponed, 0);
if (newpc >= 0) {
PostCount = newpc;
- debug_print (2, ("%d postponed IMAP messages found.\n", PostCount));
}
}
- else
- 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;
@@
-150,7
+130,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;
@@
-232,13
+212,13
@@
static HEADER *select_msg (void)
* SENDREPLY recalled message is a reply
*/
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
* SENDREPLY recalled message is a reply
*/
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
- size_t fcclen)
+ s
s
ize_t fcclen)
{
HEADER *h;
int code = SENDPOSTPONED;
{
HEADER *h;
int code = SENDPOSTPONED;
-
LIST
*tmp;
-
LIST
*last = NULL;
-
LIST
*next;
+
string_list_t
*tmp;
+
string_list_t
*last = NULL;
+
string_list_t
*next;
char *p;
int opt_delete;
char *p;
int opt_delete;
@@
-312,7
+292,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
-
mutt_free_list
(&tmp);
+
string_list_wipe
(&tmp);
tmp = next;
if (*cur)
code |= SENDREPLY;
tmp = next;
if (*cur)
code |= SENDREPLY;
@@
-329,13
+309,12
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
-
mutt_free_list
(&tmp);
+
string_list_wipe
(&tmp);
tmp = next;
}
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;
|| m_strncmp("X-Mutt-PGP:", tmp->data, 11) == 0)) {
hdr->security = mutt_parse_crypt_hdr (strchr (tmp->data, ':') + 1, 1);
hdr->security |= APPLICATION_PGP;
@@
-347,11
+326,10
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
-
mutt_free_list
(&tmp);
+
string_list_wipe
(&tmp);
tmp = next;
}
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;
hdr->security = mutt_parse_crypt_hdr (strchr (tmp->data, ':') + 1, 1);
hdr->security |= APPLICATION_SMIME;
@@
-362,7
+340,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
-
mutt_free_list
(&tmp);
+
string_list_wipe
(&tmp);
tmp = next;
}
tmp = next;
}
@@
-370,7
+348,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
else if (m_strncmp("X-Mutt-Mix:", tmp->data, 11) == 0) {
char *t;
else if (m_strncmp("X-Mutt-Mix:", tmp->data, 11) == 0) {
char *t;
-
mutt_free_list
(&hdr->chain);
+
string_list_wipe
(&hdr->chain);
t = strtok (tmp->data + 11, " \t\n");
while (t) {
t = strtok (tmp->data + 11, " \t\n");
while (t) {
@@
-384,7
+362,7
@@
int mutt_get_postponed (CONTEXT * ctx, HEADER * hdr, HEADER ** cur, char *fcc,
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
else
hdr->env->userhdrs = tmp->next;
tmp->next = NULL;
-
mutt_free_list
(&tmp);
+
string_list_wipe
(&tmp);
tmp = next;
}
#endif
tmp = next;
}
#endif
@@
-405,11
+383,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;
-
for (p = vskipspaces(p); *p; p++) {
for (p = vskipspaces(p); *p; p++) {
-
switch (*p) {
case 'e':
case 'E':
switch (*p) {
case 'e':
case 'E':
@@
-488,10
+462,10
@@
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)
+ if (*smime_cryptalg)
m_strreplace(&SmimeCryptAlg, smime_cryptalg);
m_strreplace(&SmimeCryptAlg, smime_cryptalg);
- if (
(WithCrypto & APPLICATION_PGP) && (set_signas || *pgp_sign_as)
)
+ if (
set_signas || *pgp_sign_as
)
m_strreplace(&PgpSignAs, pgp_sign_as);
return pgp;
m_strreplace(&PgpSignAs, pgp_sign_as);
return pgp;
@@
-533,10
+507,10
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
/* 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;
@@
-550,14
+524,14
@@
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);
-
mutt_free_body
(&newhdr->content);
+
envelope_delete
(&newhdr->env);
+
body_list_wipe
(&newhdr->content);
mutt_error _("Decryption failed.");
return -1;
}
mutt_error _("Decryption failed.");
return -1;
}
-
mutt_free_body
(&newhdr->content);
+
body_list_wipe
(&newhdr->content);
newhdr->content = b;
mutt_clear_error ();
newhdr->content = b;
mutt_clear_error ();
@@
-568,19
+542,16
@@
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
- ("protocol", newhdr->content->parameter),
- "application/pgp-signature") == 0)
+ if (ascii_strcasecmp(parameter_getval(newhdr->content->parameter, "protocol"),
+ "application/pgp-signature") == 0)
newhdr->security |= APPLICATION_PGP;
newhdr->security |= APPLICATION_PGP;
- else
if ((WithCrypto & APPLICATION_SMIME))
+ else
newhdr->security |= APPLICATION_SMIME;
/* destroy the signature */
newhdr->security |= APPLICATION_SMIME;
/* destroy the signature */
-
mutt_free_body
(&newhdr->content->parts->next);
+
body_list_wipe
(&newhdr->content->parts->next);
newhdr->content = mutt_remove_multipart (newhdr->content);
}
newhdr->content = mutt_remove_multipart (newhdr->content);
}
@@
-623,14
+594,14
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
if (b->type == TYPETEXT) {
if (!ascii_strcasecmp
if (b->type == TYPETEXT) {
if (!ascii_strcasecmp
- ("yes",
mutt_get_parameter ("x-mutt-noconv", b->parameter
)))
+ ("yes",
parameter_getval(b->parameter, "x-mutt-noconv"
)))
b->noconv = 1;
else {
s.flags |= M_CHARCONV;
b->noconv = 0;
}
b->noconv = 1;
else {
s.flags |= M_CHARCONV;
b->noconv = 0;
}
-
mutt_delete_parameter ("x-mutt-noconv", &b->parameter
);
+
parameter_delval(&b->parameter, "x-mutt-noconv"
);
}
mutt_adv_mktemp (NULL, file, sizeof (file));
}
mutt_adv_mktemp (NULL, file, sizeof (file));
@@
-638,8
+609,7
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
goto bail;
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);
mutt_body_handler (b, &s);
@@
-647,12
+617,12
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
b->type = TYPETEXT;
m_strreplace(&b->subtype, "plain");
b->type = TYPETEXT;
m_strreplace(&b->subtype, "plain");
-
mutt_delete_parameter ("x-action", &b->parameter
);
+
parameter_delval(&b->parameter, "x-action"
);
}
else
mutt_decode_attachment (b, &s);
}
else
mutt_decode_attachment (b, &s);
- if (
safe_fclose
(&s.fpout) != 0)
+ if (
m_fclose
(&s.fpout) != 0)
goto bail;
m_strreplace(&b->filename, file);
goto bail;
m_strreplace(&b->filename, file);
@@
-660,7
+630,7
@@
int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
mutt_stamp_attachment (b);
mutt_stamp_attachment (b);
-
mutt_free_body
(&b->parts);
+
body_list_wipe
(&b->parts);
if (b->hdr)
b->hdr->content = NULL; /* avoid dangling pointer */
}
if (b->hdr)
b->hdr->content = NULL; /* avoid dangling pointer */
}
@@
-668,12
+638,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)) {
@@
-689,13
+656,13
@@
bail:
/* that's it. */
if (bfp != fp)
/* that's it. */
if (bfp != fp)
-
fclose (
bfp);
+
m_fclose(&
bfp);
if (msg)
mx_close_message (&msg);
if (rv == -1) {
if (msg)
mx_close_message (&msg);
if (rv == -1) {
-
mutt_free_envelope
(&newhdr->env);
-
mutt_free_body
(&newhdr->content);
+
envelope_delete
(&newhdr->env);
+
body_list_wipe
(&newhdr->content);
}
return rv;
}
return rv;