* @param bf true: set the flag; false: clear the flag
* @param upd_ctx true: update the Context
*/
-void mutt_set_flag_update(struct Context *ctx, struct Header *h, int flag, int bf, int upd_ctx)
+void mutt_set_flag_update(struct Context *ctx, struct Header *h, int flag, bool bf, bool upd_ctx)
{
if (!ctx || !h)
return;
void mutt_header_free(struct Header **h);
struct Header *mutt_header_new(void);
-int mbox_strict_cmp_headers(const struct Header *h1, const struct Header *h2);
+bool mbox_strict_cmp_headers(const struct Header *h1, const struct Header *h2);
#endif /* _MUTT_HEADER_H */
return 0;
}
-static int strict_cmp_bodies(const struct Body *b1, const struct Body *b2)
+/**
+ * strict_cmp_bodies - Strictly compare two email Body's
+ * @param b1 First Body
+ * @param b2 Second Body
+ * @retval true Body's are strictly identical
+ */
+static bool strict_cmp_bodies(const struct Body *b1, const struct Body *b2)
{
- if (b1->type != b2->type || b1->encoding != b2->encoding ||
+ if ((b1->type != b2->type) || (b1->encoding != b2->encoding) ||
(mutt_str_strcmp(b1->subtype, b2->subtype) != 0) ||
(mutt_str_strcmp(b1->description, b2->description) != 0) ||
- !mutt_param_cmp_strict(&b1->parameter, &b2->parameter) || b1->length != b2->length)
+ !mutt_param_cmp_strict(&b1->parameter, &b2->parameter) || (b1->length != b2->length))
{
- return 0;
+ return false;
}
- return 1;
+ return true;
}
/**
* mbox_strict_cmp_headers - Strictly compare message headers
- * @retval 1 if headers are strictly identical
+ * @param h1 First Header
+ * @param h2 Second Header
+ * @retval true Headers are strictly identical
*/
-int mbox_strict_cmp_headers(const struct Header *h1, const struct Header *h2)
+bool mbox_strict_cmp_headers(const struct Header *h1, const struct Header *h2)
{
if (h1 && h2)
{
- if (h1->received != h2->received || h1->date_sent != h2->date_sent ||
- h1->content->length != h2->content->length || h1->lines != h2->lines ||
- h1->zhours != h2->zhours || h1->zminutes != h2->zminutes ||
- h1->zoccident != h2->zoccident || h1->mime != h2->mime ||
+ if ((h1->received != h2->received) || (h1->date_sent != h2->date_sent) ||
+ (h1->content->length != h2->content->length) || (h1->lines != h2->lines) ||
+ (h1->zhours != h2->zhours) || (h1->zminutes != h2->zminutes) ||
+ (h1->zoccident != h2->zoccident) || (h1->mime != h2->mime) ||
!mutt_env_cmp_strict(h1->env, h2->env) ||
!strict_cmp_bodies(h1->content, h2->content))
{
- return 0;
+ return false;
}
else
- return 1;
+ return true;
}
else
{
if (!h1 && !h2)
- return 1;
+ return true;
else
- return 0;
+ return false;
}
}
+/**
+ * reopen_mailbox - Close and reopen a mailbox
+ * @param ctx Mailbox
+ * @param index_hint Current email
+ * @retval >0 Success, e.g. #MUTT_REOPENED, #MUTT_NEW_MAIL
+ * @retval -1 Error
+ */
static int reopen_mailbox(struct Context *ctx, int *index_hint)
{
- int (*cmp_headers)(const struct Header *, const struct Header *) = NULL;
+ bool (*cmp_headers)(const struct Header *, const struct Header *) = NULL;
struct Header **old_hdrs = NULL;
int old_msgcount;
bool msg_mod = false;
FREE(&tmpfname);
}
-static void mh_sequences_add_one(struct Context *ctx, int n, short unseen,
- short flagged, short replied)
+static void mh_sequences_add_one(struct Context *ctx, int n, bool unseen,
+ bool flagged, bool replied)
{
short unseen_done = 0;
short flagged_done = 0;
}
/**
- * mh_commit_msg - XXX
- * commit a message to an MH folder.
+ * mh_commit_msg - Commit a message to an MH folder
+ * @param ctx Mailbox
+ * @param msg Message to commit
+ * @param hdr Email Header
+ * @param updseq If true, update the sequence number
+ * @retval 0 Success
+ * @retval -1 Failure
*/
static int mh_commit_msg(struct Context *ctx, struct Message *msg,
- struct Header *hdr, short updseq)
+ struct Header *hdr, bool updseq)
{
DIR *dirp = NULL;
struct dirent *de = NULL;
*/
static int mh_msg_commit(struct Context *ctx, struct Message *msg)
{
- return mh_commit_msg(ctx, msg, NULL, 1);
+ return mh_commit_msg(ctx, msg, NULL, true);
}
/**
if (ctx->magic == MUTT_MAILDIR)
rc = md_commit_message(ctx, dest, h);
else
- rc = mh_commit_msg(ctx, dest, h, 0);
+ rc = mh_commit_msg(ctx, dest, h, false);
mx_msg_close(ctx, &dest);
{
h2->superseded = true;
if (Score)
- mutt_score_message(ctx, h2, 1);
+ mutt_score_message(ctx, h2, true);
}
}
mutt_label_hash_add(ctx, h);
if (Score)
- mutt_score_message(ctx, h, 0);
+ mutt_score_message(ctx, h, false);
if (h->changed)
ctx->changed = true;
FILE *maildir_open_find_message(const char *folder, const char *msg, char **newname);
-int mbox_strict_cmp_headers(const struct Header *h1, const struct Header *h2);
-
void mx_alloc_memory(struct Context *ctx);
void mx_update_context(struct Context *ctx, int new_messages);
void mx_update_tables(struct Context *ctx, bool committing);
* If oppenc_mode is true, only keys that can be determined without
* prompting will be used.
*/
-int crypt_get_keys(struct Header *msg, char **keylist, int oppenc_mode)
+int crypt_get_keys(struct Header *msg, char **keylist, bool oppenc_mode)
{
struct Address *addrlist = NULL, *last = NULL;
const char *fqdn = mutt_fqdn(1);
* If oppenc_mode is true, only keys that can be determined without prompting
* will be used.
*/
-static char *find_keys(struct Address *addrlist, unsigned int app, int oppenc_mode)
+static char *find_keys(struct Address *addrlist, unsigned int app, bool oppenc_mode)
{
struct ListHead crypt_hook_list = STAILQ_HEAD_INITIALIZER(crypt_hook_list);
struct ListNode *crypt_hook = NULL;
return keylist;
}
-char *pgp_gpgme_findkeys(struct Address *addrlist, int oppenc_mode)
+char *pgp_gpgme_findkeys(struct Address *addrlist, bool oppenc_mode)
{
return find_keys(addrlist, APPLICATION_PGP, oppenc_mode);
}
-char *smime_gpgme_findkeys(struct Address *addrlist, int oppenc_mode)
+char *smime_gpgme_findkeys(struct Address *addrlist, bool oppenc_mode)
{
return find_keys(addrlist, APPLICATION_SMIME, oppenc_mode);
}
#ifndef _NCRYPT_CRYPT_GPGME_H
#define _NCRYPT_CRYPT_GPGME_H
+#include <stdbool.h>
#include <stdio.h>
struct Address;
void pgp_gpgme_init(void);
void smime_gpgme_init(void);
-char *pgp_gpgme_findkeys(struct Address *addrlist, int oppenc_mode);
-char *smime_gpgme_findkeys(struct Address *addrlist, int oppenc_mode);
+char *pgp_gpgme_findkeys(struct Address *addrlist, bool oppenc_mode);
+char *smime_gpgme_findkeys(struct Address *addrlist, bool oppenc_mode);
struct Body *pgp_gpgme_encrypt_message(struct Body *a, char *keylist, int sign);
struct Body *smime_gpgme_build_smime_entity(struct Body *a, char *keylist);
typedef int (*crypt_func_pgp_check_traditional_t) (FILE *fp, struct Body *b, int just_one);
typedef struct Body *(*crypt_func_pgp_traditional_encryptsign_t)(struct Body *a, int flags, char *keylist);
typedef struct Body *(*crypt_func_pgp_make_key_attachment_t)(char *tempf);
-typedef char *(*crypt_func_findkeys_t)(struct Address *addrlist, int oppenc_mode);
+typedef char *(*crypt_func_findkeys_t)(struct Address *addrlist, bool oppenc_mode);
typedef struct Body *(*crypt_func_sign_message_t)(struct Body *a);
typedef struct Body *(*crypt_func_pgp_encrypt_message_t)(struct Body *a, char *keylist, int sign);
typedef void (*crypt_func_pgp_invoke_import_t)(const char *fname);
return pgp_application_pgp_handler(m, s);
}
-static char *crypt_mod_pgp_findkeys(struct Address *addrlist, int oppenc_mode)
+static char *crypt_mod_pgp_findkeys(struct Address *addrlist, bool oppenc_mode)
{
return pgp_find_keys(addrlist, oppenc_mode);
}
pgp_gpgme_invoke_import(fname);
}
-static char *crypt_mod_pgp_findkeys(struct Address *addrlist, int oppenc_mode)
+static char *crypt_mod_pgp_findkeys(struct Address *addrlist, bool oppenc_mode)
{
return pgp_gpgme_findkeys(addrlist, oppenc_mode);
}
return smime_application_smime_handler(m, s);
}
-static char *crypt_mod_smime_findkeys(struct Address *addrlist, int oppenc_mode)
+static char *crypt_mod_smime_findkeys(struct Address *addrlist, bool oppenc_mode)
{
return smime_find_keys(addrlist, oppenc_mode);
}
return smime_gpgme_application_handler(m, s);
}
-static char *crypt_mod_smime_findkeys(struct Address *addrlist, int oppenc_mode)
+static char *crypt_mod_smime_findkeys(struct Address *addrlist, bool oppenc_mode)
{
return smime_gpgme_findkeys(addrlist, oppenc_mode);
}
* It returns NULL if any of the keys can not be found. If oppenc_mode is
* true, only keys that can be determined without prompting will be used.
*/
-char *crypt_pgp_findkeys(struct Address *addrlist, int oppenc_mode)
+char *crypt_pgp_findkeys(struct Address *addrlist, bool oppenc_mode)
{
if (CRYPT_MOD_CALL_CHECK(PGP, findkeys))
return (CRYPT_MOD_CALL(PGP, findkeys))(addrlist, oppenc_mode);
* It returns NULL if any of the keys can not be found. If oppenc_mode is
* true, only keys that can be determined without prompting will be used.
*/
-char *crypt_smime_findkeys(struct Address *addrlist, int oppenc_mode)
+char *crypt_smime_findkeys(struct Address *addrlist, bool oppenc_mode)
{
if (CRYPT_MOD_CALL_CHECK(SMIME, findkeys))
return (CRYPT_MOD_CALL(SMIME, findkeys))(addrlist, oppenc_mode);
void crypt_pgp_void_passphrase(void);
int crypt_pgp_valid_passphrase(void);
struct Body *crypt_pgp_traditional_encryptsign(struct Body *a, int flags, char *keylist);
-char *crypt_pgp_findkeys(struct Address *addrlist, int oppenc_mode);
+char *crypt_pgp_findkeys(struct Address *addrlist, bool oppenc_mode);
struct Body *crypt_pgp_sign_message(struct Body *a);
struct Body *crypt_pgp_encrypt_message(struct Body *a, char *keylist, int sign);
void crypt_pgp_invoke_import(const char *fname);
void crypt_smime_void_passphrase(void);
int crypt_smime_valid_passphrase(void);
-char *crypt_smime_findkeys(struct Address *addrlist, int oppenc_mode);
+char *crypt_smime_findkeys(struct Address *addrlist, bool oppenc_mode);
struct Body *crypt_smime_sign_message(struct Body *a);
struct Body *crypt_smime_build_smime_entity(struct Body *a, char *certlist);
void crypt_smime_invoke_import(char *infile, char *mailbox);
#ifndef _NCRYPT_NCRYPT_H
#define _NCRYPT_NCRYPT_H
+#include <stdbool.h>
#include <stdio.h>
struct Address;
/* -- crypt.c -- */
int crypt_query(struct Body *m);
void crypt_extract_keys_from_messages(struct Header *h);
-int crypt_get_keys(struct Header *msg, char **keylist, int oppenc_mode);
+int crypt_get_keys(struct Header *msg, char **keylist, bool oppenc_mode);
void crypt_opportunistic_encrypt(struct Header *msg);
void crypt_forget_passphrase(void);
int crypt_valid_passphrase(int flags);
* If oppenc_mode is true, only keys that can be determined without prompting
* will be used.
*/
-char *pgp_find_keys(struct Address *addrlist, int oppenc_mode)
+char *pgp_find_keys(struct Address *addrlist, bool oppenc_mode)
{
struct ListHead crypt_hook_list = STAILQ_HEAD_INITIALIZER(crypt_hook_list);
struct ListNode *crypt_hook = NULL;
int pgp_decrypt_mime(FILE *fpin, FILE **fpout, struct Body *b, struct Body **cur);
-char *pgp_find_keys(struct Address *addrlist, int oppenc_mode);
+char *pgp_find_keys(struct Address *addrlist, bool oppenc_mode);
int pgp_application_pgp_handler(struct Body *m, struct State *s);
int pgp_encrypted_handler(struct Body *a, struct State *s);
}
struct PgpKeyInfo *pgp_getkeybyaddr(struct Address *a, short abilities,
- enum PgpRing keyring, int oppenc_mode)
+ enum PgpRing keyring, bool oppenc_mode)
{
if (!a)
return NULL;
struct Body *pgp_make_key_attachment(char *tempf);
struct PgpKeyInfo * pgp_ask_for_key(char *tag, char *whatfor, short abilities, enum PgpRing keyring);
-struct PgpKeyInfo * pgp_getkeybyaddr(struct Address *a, short abilities, enum PgpRing keyring, int oppenc_mode);
+struct PgpKeyInfo * pgp_getkeybyaddr(struct Address *a, short abilities, enum PgpRing keyring, bool oppenc_mode);
struct PgpKeyInfo * pgp_getkeybystr(char *p, short abilities, enum PgpRing keyring);
#endif /* _NCRYPT_PGPKEY_H */
* If oppenc_mode is true, only keys that can be determined without
* prompting will be used.
*/
-char *smime_find_keys(struct Address *addrlist, int oppenc_mode)
+char *smime_find_keys(struct Address *addrlist, bool oppenc_mode)
{
struct SmimeKey *key = NULL;
char *keyID = NULL, *keylist = NULL;
int smime_verify_one(struct Body *sigbdy, struct State *s, const char *tempfile);
int smime_verify_sender(struct Header *h);
void smime_getkeys(struct Envelope *env);
-char *smime_find_keys(struct Address *addrlist, int oppenc_mode);
+char *smime_find_keys(struct Address *addrlist, bool oppenc_mode);
void smime_invoke_import(char *infile, char *mailbox);
int smime_send_menu(struct Header *msg);
void mutt_query_menu(char *buf, size_t buflen);
void mutt_safe_path(char *s, size_t l, struct Address *a);
void mutt_save_path(char *d, size_t dsize, struct Address *a);
-void mutt_score_message(struct Context *ctx, struct Header *hdr, int upd_ctx);
+void mutt_score_message(struct Context *ctx, struct Header *hdr, bool upd_ctx);
void mutt_select_fcc(char *path, size_t pathlen, struct Header *hdr);
void mutt_select_file(char *f, size_t flen, int flags, char ***files, int *numfiles);
void mutt_message_hook(struct Context *ctx, struct Header *hdr, int type);
-void mutt_set_flag_update(struct Context *ctx, struct Header *h, int flag, int bf, int upd_ctx);
-#define mutt_set_flag(a, b, c, d) mutt_set_flag_update(a, b, c, d, 1)
+void mutt_set_flag_update(struct Context *ctx, struct Header *h, int flag, bool bf, bool upd_ctx);
+#define mutt_set_flag(a, b, c, d) mutt_set_flag_update(a, b, c, d, true)
void mutt_set_followup_to(struct Envelope *e);
void mutt_shell_escape(void);
void mutt_show_error(void);
for (int i = 0; ctx && i < ctx->msgcount; i++)
{
- mutt_score_message(ctx, ctx->hdrs[i], 1);
+ mutt_score_message(ctx, ctx->hdrs[i], true);
ctx->hdrs[i]->pair = 0;
}
}
return 0;
}
-void mutt_score_message(struct Context *ctx, struct Header *hdr, int upd_ctx)
+/**
+ * mutt_score_message - Apply scoring to an email
+ * @param ctx Mailbox
+ * @param hdr Email header
+ * @param upd_ctx If true, update the Context too
+ */
+void mutt_score_message(struct Context *ctx, struct Header *hdr, bool upd_ctx)
{
struct Score *tmp = NULL;
struct PatternCache cache;
hdr->score = 0;
if (hdr->score <= ScoreThresholdDelete)
- mutt_set_flag_update(ctx, hdr, MUTT_DELETE, 1, upd_ctx);
+ mutt_set_flag_update(ctx, hdr, MUTT_DELETE, true, upd_ctx);
if (hdr->score <= ScoreThresholdRead)
- mutt_set_flag_update(ctx, hdr, MUTT_READ, 1, upd_ctx);
+ mutt_set_flag_update(ctx, hdr, MUTT_READ, true, upd_ctx);
if (hdr->score >= ScoreThresholdFlag)
- mutt_set_flag_update(ctx, hdr, MUTT_FLAG, 1, upd_ctx);
+ mutt_set_flag_update(ctx, hdr, MUTT_FLAG, true, upd_ctx);
}
/**
if (OptNeedRescore && Score)
{
for (int i = 0; i < ctx->msgcount; i++)
- mutt_score_message(ctx, ctx->hdrs[i], 1);
+ mutt_score_message(ctx, ctx->hdrs[i], true);
}
OptNeedRescore = false;