} address_match_t;
/* Match given string against given address according to mode. */
-static notmuch_bool_t
+static bool
match_address (const char *str, const char *address, address_match_t mode)
{
switch (mode) {
return strcasecmp (address, str) == 0;
}
- return FALSE;
+ return false;
}
/* Match given string against user's configured "primary" and "other"
/* Is the given address configured as one of the user's "primary" or
* "other" addresses. */
-static notmuch_bool_t
+static bool
address_is_users (const char *address, notmuch_config_t *config)
{
return address_match (address, config, STRING_IS_USER_ADDRESS) != NULL;
/* Does the address in the Reply-To header of 'message' already appear
* in either the 'To' or 'Cc' header of the message?
*/
-static notmuch_bool_t
+static bool
reply_to_header_is_redundant (GMimeMessage *message,
InternetAddressList *reply_to_list)
{
InternetAddress *address;
InternetAddressMailbox *mailbox;
InternetAddressList *recipients;
- notmuch_bool_t ret = FALSE;
+ bool ret = false;
int i;
if (reply_to_list == NULL ||
mailbox = INTERNET_ADDRESS_MAILBOX (address);
addr = internet_address_mailbox_get_addr (mailbox);
if (strcmp (addr, reply_to) == 0) {
- ret = TRUE;
+ ret = true;
break;
}
}
add_recipients_from_message (GMimeMessage *reply,
notmuch_config_t *config,
GMimeMessage *message,
- notmuch_bool_t reply_all)
+ bool reply_all)
{
/* There is a memory leak here with gmime-2.6 because get_sender
notmuch_config_t *config,
notmuch_message_t *message,
GMimeMessage *mime_message,
- notmuch_bool_t reply_all,
- notmuch_bool_t limited)
+ bool reply_all,
+ bool limited)
{
const char *subject, *from_addr = NULL;
const char *in_reply_to, *orig_references, *references;
notmuch_query_t *query,
notmuch_show_params_t *params,
int format,
- notmuch_bool_t reply_all)
+ bool reply_all)
{
GMimeMessage *reply;
mime_node_t *node;
/* The headers of the reply message we've created */
sp->map_key (sp, "reply-headers");
- format_headers_sprinter (sp, reply, TRUE);
+ format_headers_sprinter (sp, reply, true);
/* Start the original */
sp->map_key (sp, "original");
- format_part_sprinter (config, sp, node, TRUE, TRUE, FALSE);
+ format_part_sprinter (config, sp, node, true, false);
/* End */
sp->end (sp);
int opt_index;
notmuch_show_params_t params = {
.part = -1,
+ .crypto = { .decrypt = NOTMUCH_DECRYPT_AUTO },
};
int format = FORMAT_DEFAULT;
- int reply_all = TRUE;
+ int reply_all = true;
+ bool decrypt = false;
+ bool decrypt_set = false;
notmuch_opt_desc_t options[] = {
- { NOTMUCH_OPT_KEYWORD, &format, "format", 'f',
+ { .opt_keyword = &format, .name = "format", .keywords =
(notmuch_keyword_t []){ { "default", FORMAT_DEFAULT },
{ "json", FORMAT_JSON },
{ "sexp", FORMAT_SEXP },
{ "headers-only", FORMAT_HEADERS_ONLY },
{ 0, 0 } } },
- { NOTMUCH_OPT_INT, ¬much_format_version, "format-version", 0, 0 },
- { NOTMUCH_OPT_KEYWORD, &reply_all, "reply-to", 'r',
- (notmuch_keyword_t []){ { "all", TRUE },
- { "sender", FALSE },
+ { .opt_int = ¬much_format_version, .name = "format-version" },
+ { .opt_keyword = &reply_all, .name = "reply-to", .keywords =
+ (notmuch_keyword_t []){ { "all", true },
+ { "sender", false },
{ 0, 0 } } },
- { NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.decrypt, "decrypt", 'd', 0 },
- { NOTMUCH_OPT_INHERIT, (void *) ¬much_shared_options, NULL, 0, 0 },
- { 0, 0, 0, 0, 0 }
+ { .opt_bool = &decrypt, .name = "decrypt", .present = &decrypt_set },
+ { .opt_inherit = notmuch_shared_options },
+ { }
};
opt_index = parse_arguments (argc, argv, options, 1);
return EXIT_FAILURE;
notmuch_process_shared_options (argv[0]);
+ if (decrypt_set)
+ params.crypto.decrypt = decrypt ? NOTMUCH_DECRYPT_TRUE : NOTMUCH_DECRYPT_FALSE;
notmuch_exit_if_unsupported_format ();
if (do_reply (config, query, ¶ms, format, reply_all) != 0)
return EXIT_FAILURE;
- notmuch_crypto_cleanup (¶ms.crypto);
+ _notmuch_crypto_cleanup (¶ms.crypto);
notmuch_query_destroy (query);
notmuch_database_destroy (notmuch);