From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 590736DE0B64 for ; Sat, 7 Oct 2017 10:05:09 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: 0.485 X-Spam-Level: X-Spam-Status: No, score=0.485 tagged_above=-999 required=5 tests=[AWL=-0.167, SPF_NEUTRAL=0.652] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yA4eO4bnUgjo for ; Sat, 7 Oct 2017 10:05:05 -0700 (PDT) Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) by arlo.cworth.org (Postfix) with ESMTP id 19C7C6DE0941 for ; Sat, 7 Oct 2017 10:05:03 -0700 (PDT) Received: from guru.guru-group.fi (localhost [IPv6:::1]) by guru.guru-group.fi (Postfix) with ESMTP id 1ED5210005A; Sat, 7 Oct 2017 20:05:19 +0300 (EEST) From: Tomi Ollila To: Jani Nikula , notmuch@notmuchmail.org Subject: Re: [PATCH 1/2] cli: convert notmuch_bool_t to stdbool In-Reply-To: <20171007084405.14499-1-jani@nikula.org> References: <20171007084405.14499-1-jani@nikula.org> User-Agent: Notmuch/0.25+89~g5a0c015 (https://notmuchmail.org) Emacs/25.2.1 (x86_64-unknown-linux-gnu) X-Face: HhBM'cA~ MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Oct 2017 17:05:09 -0000 On Sat, Oct 07 2017, Jani Nikula wrote: > C99 stdbool turned 18 this year. There really is no reason to use our > own, except in the library interface for backward > compatibility. Convert the cli and test binaries to stdbool. +2 (i.e. +1 for both patches). I trust the changes works... > --- > command-line-arguments.c | 58 +++++++++++++++++++-------------------- > command-line-arguments.h | 10 ++++--- > crypto.c | 6 ++--- > debugger.c | 8 +++--- > gmime-filter-reply.c | 32 +++++++++++----------- > mime-node.c | 10 +++---- > notmuch-client.h | 35 ++++++++++++------------ > notmuch-compact.c | 2 +- > notmuch-config.c | 28 +++++++++---------- > notmuch-count.c | 18 ++++++------- > notmuch-dump.c | 10 +++---- > notmuch-insert.c | 70 ++++++++++++++++++++++++------------------------ > notmuch-new.c | 30 ++++++++++----------- > notmuch-reply.c | 30 ++++++++++----------- > notmuch-restore.c | 4 +-- > notmuch-search.c | 24 ++++++++--------- > notmuch-setup.c | 6 ++--- > notmuch-show.c | 52 +++++++++++++++++------------------ > notmuch-tag.c | 6 ++--- > notmuch.c | 12 ++++----- > sprinter-json.c | 18 ++++++------- > sprinter-sexp.c | 16 +++++------ > sprinter-text.c | 6 ++--- > sprinter.h | 6 ++--- > tag-util.c | 24 ++++++++--------- > tag-util.h | 8 +++--- > test/arg-test.c | 6 ++--- > test/hex-xcode.c | 8 +++--- > test/random-corpus.c | 2 +- > 29 files changed, 275 insertions(+), 270 deletions(-) > > diff --git a/command-line-arguments.c b/command-line-arguments.c > index 3fa8d9044966..1ff5aae578c6 100644 > --- a/command-line-arguments.c > +++ b/command-line-arguments.c > @@ -6,11 +6,11 @@ > > /* > Search the array of keywords for a given argument, assigning the > - output variable to the corresponding value. Return FALSE if nothing > + output variable to the corresponding value. Return false if nothing > matches. > */ > > -static notmuch_bool_t > +static bool > _process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { > > const notmuch_keyword_t *keywords; > @@ -29,64 +29,64 @@ _process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char > else > *arg_desc->opt_keyword = keywords->value; > > - return TRUE; > + return true; > } > if (next != '\0') > fprintf (stderr, "Unknown keyword argument \"%s\" for option \"%s\".\n", arg_str, arg_desc->name); > else > fprintf (stderr, "Option \"%s\" needs a keyword argument.\n", arg_desc->name); > - return FALSE; > + return false; > } > > -static notmuch_bool_t > +static bool > _process_boolean_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { > - notmuch_bool_t value; > + bool value; > > if (next == '\0' || strcmp (arg_str, "true") == 0) { > - value = TRUE; > + value = true; > } else if (strcmp (arg_str, "false") == 0) { > - value = FALSE; > + value = false; > } else { > fprintf (stderr, "Unknown argument \"%s\" for (boolean) option \"%s\".\n", arg_str, arg_desc->name); > - return FALSE; > + return false; > } > > *arg_desc->opt_bool = value; > > - return TRUE; > + return true; > } > > -static notmuch_bool_t > +static bool > _process_int_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { > > char *endptr; > if (next == '\0' || arg_str[0] == '\0') { > fprintf (stderr, "Option \"%s\" needs an integer argument.\n", arg_desc->name); > - return FALSE; > + return false; > } > > *arg_desc->opt_int = strtol (arg_str, &endptr, 10); > if (*endptr == '\0') > - return TRUE; > + return true; > > fprintf (stderr, "Unable to parse argument \"%s\" for option \"%s\" as an integer.\n", > arg_str, arg_desc->name); > - return FALSE; > + return false; > } > > -static notmuch_bool_t > +static bool > _process_string_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { > > if (next == '\0') { > fprintf (stderr, "Option \"%s\" needs a string argument.\n", arg_desc->name); > - return FALSE; > + return false; > } > if (arg_str[0] == '\0') { > fprintf (stderr, "String argument for option \"%s\" must be non-empty.\n", arg_desc->name); > - return FALSE; > + return false; > } > *arg_desc->opt_string = arg_str; > - return TRUE; > + return true; > } > > /* Return number of non-NULL opt_* fields in opt_desc. */ > @@ -102,8 +102,8 @@ static int _opt_set_count (const notmuch_opt_desc_t *opt_desc) > !!opt_desc->opt_position; > } > > -/* Return TRUE if opt_desc is valid. */ > -static notmuch_bool_t _opt_valid (const notmuch_opt_desc_t *opt_desc) > +/* Return true if opt_desc is valid. */ > +static bool _opt_valid (const notmuch_opt_desc_t *opt_desc) > { > int n = _opt_set_count (opt_desc); > > @@ -115,11 +115,11 @@ static notmuch_bool_t _opt_valid (const notmuch_opt_desc_t *opt_desc) > } > > /* > - Search for the {pos_arg_index}th position argument, return FALSE if > + Search for the {pos_arg_index}th position argument, return false if > that does not exist. > */ > > -notmuch_bool_t > +bool > parse_position_arg (const char *arg_str, int pos_arg_index, > const notmuch_opt_desc_t *arg_desc) { > > @@ -129,14 +129,14 @@ parse_position_arg (const char *arg_str, int pos_arg_index, > if (pos_arg_counter == pos_arg_index) { > *arg_desc->opt_position = arg_str; > if (arg_desc->present) > - *arg_desc->present = TRUE; > - return TRUE; > + *arg_desc->present = true; > + return true; > } > pos_arg_counter++; > } > arg_desc++; > } > - return FALSE; > + return false; > } > > /* > @@ -192,7 +192,7 @@ parse_option (int argc, char **argv, const notmuch_opt_desc_t *options, int opt_ > opt_index ++; > } > > - notmuch_bool_t opt_status = FALSE; > + bool opt_status = false; > if (try->opt_keyword || try->opt_flags) > opt_status = _process_keyword_arg (try, next, value); > else if (try->opt_bool) > @@ -208,7 +208,7 @@ parse_option (int argc, char **argv, const notmuch_opt_desc_t *options, int opt_ > return -1; > > if (try->present) > - *try->present = TRUE; > + *try->present = true; > > return opt_index+1; > } > @@ -221,7 +221,7 @@ parse_arguments (int argc, char **argv, > const notmuch_opt_desc_t *options, int opt_index) { > > int pos_arg_index = 0; > - notmuch_bool_t more_args = TRUE; > + bool more_args = true; > > while (more_args && opt_index < argc) { > if (strncmp (argv[opt_index],"--",2) != 0) { > @@ -242,7 +242,7 @@ parse_arguments (int argc, char **argv, > opt_index = parse_option (argc, argv, options, opt_index); > if (opt_index < 0) { > fprintf (stderr, "Unrecognized option: %s\n", argv[prev_opt_index]); > - more_args = FALSE; > + more_args = false; > } > } > } > diff --git a/command-line-arguments.h b/command-line-arguments.h > index dfc808bdab78..76ca4dcbb276 100644 > --- a/command-line-arguments.h > +++ b/command-line-arguments.h > @@ -1,6 +1,8 @@ > #ifndef NOTMUCH_OPTS_H > #define NOTMUCH_OPTS_H > > +#include > + > #include "notmuch.h" > > /* > @@ -17,7 +19,7 @@ typedef struct notmuch_keyword { > typedef struct notmuch_opt_desc { > /* One and only one of opt_* must be set. */ > const struct notmuch_opt_desc *opt_inherit; > - notmuch_bool_t *opt_bool; > + bool *opt_bool; > int *opt_int; > int *opt_keyword; > int *opt_flags; > @@ -27,8 +29,8 @@ typedef struct notmuch_opt_desc { > /* Must be set except for opt_inherit and opt_position. */ > const char *name; > > - /* Optional, if non-NULL, set to TRUE if the option is present. */ > - notmuch_bool_t *present; > + /* Optional, if non-NULL, set to true if the option is present. */ > + bool *present; > > /* Must be set for opt_keyword and opt_flags. */ > const struct notmuch_keyword *keywords; > @@ -64,7 +66,7 @@ parse_arguments (int argc, char **argv, const notmuch_opt_desc_t *options, int o > int > parse_option (int argc, char **argv, const notmuch_opt_desc_t* options, int opt_index); > > -notmuch_bool_t > +bool > parse_position_arg (const char *arg, > int position_arg_index, > const notmuch_opt_desc_t* options); > diff --git a/crypto.c b/crypto.c > index cc45b88521ec..9c557d6e0640 100644 > --- a/crypto.c > +++ b/crypto.c > @@ -37,8 +37,8 @@ create_gpg_context (notmuch_crypto_t *crypto) > } > crypto->gpgctx = gpgctx; > > - g_mime_gpg_context_set_use_agent ((GMimeGpgContext *) gpgctx, TRUE); > - g_mime_gpg_context_set_always_trust ((GMimeGpgContext *) gpgctx, FALSE); > + g_mime_gpg_context_set_use_agent ((GMimeGpgContext *) gpgctx, true); > + g_mime_gpg_context_set_always_trust ((GMimeGpgContext *) gpgctx, false); > > return gpgctx; > } > @@ -61,7 +61,7 @@ create_pkcs7_context (notmuch_crypto_t *crypto) > crypto->pkcs7ctx = pkcs7ctx; > > g_mime_pkcs7_context_set_always_trust ((GMimePkcs7Context *) pkcs7ctx, > - FALSE); > + false); > > return pkcs7ctx; > } > diff --git a/debugger.c b/debugger.c > index 0fa0fb6bda23..5cb38ac444e3 100644 > --- a/debugger.c > +++ b/debugger.c > @@ -28,20 +28,20 @@ > #define RUNNING_ON_VALGRIND 0 > #endif > > -notmuch_bool_t > +bool > debugger_is_active (void) > { > char buf[1024]; > > if (RUNNING_ON_VALGRIND) > - return TRUE; > + return true; > > sprintf (buf, "/proc/%d/exe", getppid ()); > if (readlink (buf, buf, sizeof (buf)) != -1 && > strncmp (basename (buf), "gdb", 3) == 0) > { > - return TRUE; > + return true; > } > > - return FALSE; > + return false; > } > diff --git a/gmime-filter-reply.c b/gmime-filter-reply.c > index 847426bfe663..a1ba4b45411b 100644 > --- a/gmime-filter-reply.c > +++ b/gmime-filter-reply.c > @@ -16,6 +16,8 @@ > * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. > */ > > +#include > + > #include "gmime-filter-reply.h" > > /** > @@ -87,8 +89,8 @@ static void > g_mime_filter_reply_init (GMimeFilterReply *filter, GMimeFilterReplyClass *klass) > { > (void) klass; > - filter->saw_nl = TRUE; > - filter->saw_angle = FALSE; > + filter->saw_nl = true; > + filter->saw_angle = false; > } > > static void > @@ -117,43 +119,43 @@ filter_filter (GMimeFilter *filter, char *inbuf, size_t inlen, size_t prespace, > > (void) prespace; > if (reply->encode) { > - g_mime_filter_set_size (filter, 3 * inlen, FALSE); > + g_mime_filter_set_size (filter, 3 * inlen, false); > > outptr = filter->outbuf; > while (inptr < inend) { > if (reply->saw_nl) { > *outptr++ = '>'; > *outptr++ = ' '; > - reply->saw_nl = FALSE; > + reply->saw_nl = false; > } > if (*inptr == '\n') > - reply->saw_nl = TRUE; > + reply->saw_nl = true; > else > - reply->saw_nl = FALSE; > + reply->saw_nl = false; > if (*inptr != '\r') > *outptr++ = *inptr; > inptr++; > } > } else { > - g_mime_filter_set_size (filter, inlen + 1, FALSE); > + g_mime_filter_set_size (filter, inlen + 1, false); > > outptr = filter->outbuf; > while (inptr < inend) { > if (reply->saw_nl) { > if (*inptr == '>') > - reply->saw_angle = TRUE; > + reply->saw_angle = true; > else > *outptr++ = *inptr; > - reply->saw_nl = FALSE; > + reply->saw_nl = false; > } else if (reply->saw_angle) { > if (*inptr == ' ') > ; > else > *outptr++ = *inptr; > - reply->saw_angle = FALSE; > + reply->saw_angle = false; > } else if (*inptr != '\r') { > if (*inptr == '\n') > - reply->saw_nl = TRUE; > + reply->saw_nl = true; > *outptr++ = *inptr; > } > > @@ -179,19 +181,19 @@ filter_reset (GMimeFilter *filter) > { > GMimeFilterReply *reply = (GMimeFilterReply *) filter; > > - reply->saw_nl = TRUE; > - reply->saw_angle = FALSE; > + reply->saw_nl = true; > + reply->saw_angle = false; > } > > > /** > * g_mime_filter_reply_new: > - * @encode: %TRUE if the filter should encode or %FALSE otherwise > + * @encode: %true if the filter should encode or %false otherwise > * @dots: encode/decode dots (as for SMTP) > * > * Creates a new #GMimeFilterReply filter. > * > - * If @encode is %TRUE, then all lines will be prefixed by "> ", > + * If @encode is %true, then all lines will be prefixed by "> ", > * otherwise any lines starting with "> " will have that removed > * > * Returns: a new #GMimeFilterReply filter. > diff --git a/mime-node.c b/mime-node.c > index 24d73afa8458..8b767d783117 100644 > --- a/mime-node.c > +++ b/mime-node.c > @@ -112,7 +112,7 @@ mime_node_open (const void *ctx, notmuch_message_t *message, > status = NOTMUCH_STATUS_OUT_OF_MEMORY; > goto DONE; > } > - g_mime_stream_file_set_owner (GMIME_STREAM_FILE (mctx->stream), FALSE); > + g_mime_stream_file_set_owner (GMIME_STREAM_FILE (mctx->stream), false); > > mctx->parser = g_mime_parser_new_with_stream (mctx->stream); > if (!mctx->parser) { > @@ -175,7 +175,7 @@ node_verify (mime_node_t *node, GMimeObject *part, > { > GError *err = NULL; > > - node->verify_attempted = TRUE; > + node->verify_attempted = true; > node->sig_list = g_mime_multipart_signed_verify > (GMIME_MULTIPART_SIGNED (part), cryptoctx, &err); > > @@ -198,7 +198,7 @@ node_decrypt_and_verify (mime_node_t *node, GMimeObject *part, > GMimeDecryptResult *decrypt_result = NULL; > GMimeMultipartEncrypted *encrypteddata = GMIME_MULTIPART_ENCRYPTED (part); > > - node->decrypt_attempted = TRUE; > + node->decrypt_attempted = true; > node->decrypted_child = g_mime_multipart_encrypted_decrypt > (encrypteddata, cryptoctx, &decrypt_result, &err); > if (! node->decrypted_child) { > @@ -207,8 +207,8 @@ node_decrypt_and_verify (mime_node_t *node, GMimeObject *part, > goto DONE; > } > > - node->decrypt_success = TRUE; > - node->verify_attempted = TRUE; > + node->decrypt_success = true; > + node->verify_attempted = true; > > /* This may be NULL if the part is not signed. */ > node->sig_list = g_mime_decrypt_result_get_signatures (decrypt_result); > diff --git a/notmuch-client.h b/notmuch-client.h > index c68538fcc0a2..0365baae4b89 100644 > --- a/notmuch-client.h > +++ b/notmuch-client.h > @@ -24,6 +24,7 @@ > #ifndef _GNU_SOURCE > #define _GNU_SOURCE /* for getline */ > #endif > +#include > #include > #include > > @@ -72,8 +73,8 @@ typedef struct notmuch_show_format { > } notmuch_show_format_t; > > typedef struct notmuch_crypto { > - notmuch_bool_t verify; > - notmuch_bool_t decrypt; > + bool verify; > + bool decrypt; > #if (GMIME_MAJOR_VERSION < 3) > notmuch_crypto_context_t* gpgctx; > notmuch_crypto_context_t* pkcs7ctx; > @@ -82,12 +83,12 @@ typedef struct notmuch_crypto { > } notmuch_crypto_t; > > typedef struct notmuch_show_params { > - notmuch_bool_t entire_thread; > - notmuch_bool_t omit_excluded; > - notmuch_bool_t output_body; > + bool entire_thread; > + bool omit_excluded; > + bool output_body; > int part; > notmuch_crypto_t crypto; > - notmuch_bool_t include_html; > + bool include_html; > GMimeStream *out_stream; > } notmuch_show_params_t; > > @@ -247,12 +248,12 @@ show_one_part (const char *filename, int part); > > void > format_part_sprinter (const void *ctx, struct sprinter *sp, mime_node_t *node, > - notmuch_bool_t output_body, > - notmuch_bool_t include_html); > + bool output_body, > + bool include_html); > > void > format_headers_sprinter (struct sprinter *sp, GMimeMessage *message, > - notmuch_bool_t reply); > + bool reply); > > typedef enum { > NOTMUCH_SHOW_TEXT_PART_REPLY = 1 << 0, > @@ -286,7 +287,7 @@ notmuch_config_close (notmuch_config_t *config); > int > notmuch_config_save (notmuch_config_t *config); > > -notmuch_bool_t > +bool > notmuch_config_is_new (notmuch_config_t *config); > > const char * > @@ -345,12 +346,12 @@ notmuch_config_set_new_ignore (notmuch_config_t *config, > const char *new_ignore[], > size_t length); > > -notmuch_bool_t > +bool > notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config); > > void > notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config, > - notmuch_bool_t synchronize_flags); > + bool synchronize_flags); > > const char ** > notmuch_config_get_search_exclude_tags (notmuch_config_t *config, size_t *length); > @@ -363,7 +364,7 @@ notmuch_config_set_search_exclude_tags (notmuch_config_t *config, > int > notmuch_run_hook (const char *db_path, const char *hook); > > -notmuch_bool_t > +bool > debugger_is_active (void); > > /* mime-node.c */ > @@ -406,14 +407,14 @@ struct mime_node { > int part_num; > > /* True if decryption of this part was attempted. */ > - notmuch_bool_t decrypt_attempted; > + bool decrypt_attempted; > /* True if decryption of this part's child succeeded. In this > * case, the decrypted part is substituted for the second child of > * this part (which would usually be the encrypted data). */ > - notmuch_bool_t decrypt_success; > + bool decrypt_success; > > /* True if signature verification on this part was attempted. */ > - notmuch_bool_t verify_attempted; > + bool verify_attempted; > > /* The list of signatures for signed or encrypted containers. If > * there are no signatures, this will be NULL. */ > @@ -487,7 +488,7 @@ notmuch_database_dump (notmuch_database_t *notmuch, > const char *query_str, > dump_format_t output_format, > dump_include_t include, > - notmuch_bool_t gzip_output); > + bool gzip_output); > > /* If status is non-zero (i.e. error) print appropriate > messages to stderr. > diff --git a/notmuch-compact.c b/notmuch-compact.c > index ae464e4805cb..f8996cf46039 100644 > --- a/notmuch-compact.c > +++ b/notmuch-compact.c > @@ -32,7 +32,7 @@ notmuch_compact_command (notmuch_config_t *config, int argc, char *argv[]) > const char *path = notmuch_config_get_database_path (config); > const char *backup_path = NULL; > notmuch_status_t ret; > - notmuch_bool_t quiet = FALSE; > + bool quiet = false; > int opt_index; > > notmuch_opt_desc_t options[] = { > diff --git a/notmuch-config.c b/notmuch-config.c > index cb9529b90912..8fb59f96eb6d 100644 > --- a/notmuch-config.c > +++ b/notmuch-config.c > @@ -122,7 +122,7 @@ static const char crypto_config_comment[] = > struct _notmuch_config { > char *filename; > GKeyFile *key_file; > - notmuch_bool_t is_new; > + bool is_new; > > char *database_path; > char *crypto_gpg_path; > @@ -134,7 +134,7 @@ struct _notmuch_config { > size_t new_tags_length; > const char **new_ignore; > size_t new_ignore_length; > - notmuch_bool_t maildir_synchronize_flags; > + bool maildir_synchronize_flags; > const char **search_exclude_tags; > size_t search_exclude_tags_length; > }; > @@ -212,8 +212,8 @@ get_username_from_passwd_file (void *ctx) > return name; > } > > -static notmuch_bool_t > -get_config_from_file (notmuch_config_t *config, notmuch_bool_t create_new) > +static bool > +get_config_from_file (notmuch_config_t *config, bool create_new) > { > #define BUF_SIZE 4096 > char *config_str = NULL; > @@ -221,7 +221,7 @@ get_config_from_file (notmuch_config_t *config, notmuch_bool_t create_new) > int config_bufsize = BUF_SIZE; > size_t len; > GError *error = NULL; > - notmuch_bool_t ret = FALSE; > + bool ret = false; > > FILE *fp = fopen(config->filename, "r"); > if (fp == NULL) { > @@ -230,8 +230,8 @@ get_config_from_file (notmuch_config_t *config, notmuch_bool_t create_new) > * default configuration file in the case of FILE NOT FOUND. > */ > if (create_new) { > - config->is_new = TRUE; > - ret = TRUE; > + config->is_new = true; > + ret = true; > } else { > fprintf (stderr, "Configuration file %s not found.\n" > "Try running 'notmuch setup' to create a configuration.\n", > @@ -271,7 +271,7 @@ get_config_from_file (notmuch_config_t *config, notmuch_bool_t create_new) > > if (g_key_file_load_from_data (config->key_file, config_str, config_len, > G_KEY_FILE_KEEP_COMMENTS, &error)) { > - ret = TRUE; > + ret = true; > goto out; > } > > @@ -352,7 +352,7 @@ notmuch_config_open (void *ctx, > talloc_set_destructor (config, notmuch_config_destructor); > > /* non-zero defaults */ > - config->maildir_synchronize_flags = TRUE; > + config->maildir_synchronize_flags = true; > > if (filename) { > config->filename = talloc_strdup (config, filename); > @@ -366,7 +366,7 @@ notmuch_config_open (void *ctx, > config->key_file = g_key_file_new (); > > if (config_mode & NOTMUCH_CONFIG_OPEN) { > - notmuch_bool_t create_new = (config_mode & NOTMUCH_CONFIG_CREATE) != 0; > + bool create_new = (config_mode & NOTMUCH_CONFIG_CREATE) != 0; > > if (! get_config_from_file (config, create_new)) { > talloc_free (config); > @@ -466,7 +466,7 @@ notmuch_config_open (void *ctx, > g_key_file_get_boolean (config->key_file, > "maildir", "synchronize_flags", &error); > if (error) { > - notmuch_config_set_maildir_synchronize_flags (config, TRUE); > + notmuch_config_set_maildir_synchronize_flags (config, true); > g_error_free (error); > } > > @@ -579,7 +579,7 @@ notmuch_config_save (notmuch_config_t *config) > return 0; > } > > -notmuch_bool_t > +bool > notmuch_config_is_new (notmuch_config_t *config) > { > return config->is_new; > @@ -1086,7 +1086,7 @@ notmuch_config_command (notmuch_config_t *config, int argc, char *argv[]) > > } > > -notmuch_bool_t > +bool > notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config) > { > return config->maildir_synchronize_flags; > @@ -1094,7 +1094,7 @@ notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config) > > void > notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config, > - notmuch_bool_t synchronize_flags) > + bool synchronize_flags) > { > g_key_file_set_boolean (config->key_file, > "maildir", "synchronize_flags", synchronize_flags); > diff --git a/notmuch-count.c b/notmuch-count.c > index b8b03cdbc0d4..1ae7d5146d92 100644 > --- a/notmuch-count.c > +++ b/notmuch-count.c > @@ -29,8 +29,8 @@ enum { > > /* The following is to allow future options to be added more easily */ > enum { > - EXCLUDE_TRUE, > - EXCLUDE_FALSE, > + EXCLUDE_true, > + EXCLUDE_false, > }; > > /* Return the number of files matching the query, or -1 for an error */ > @@ -160,11 +160,11 @@ notmuch_count_command (notmuch_config_t *config, int argc, char *argv[]) > char *query_str; > int opt_index; > int output = OUTPUT_MESSAGES; > - int exclude = EXCLUDE_TRUE; > + int exclude = EXCLUDE_true; > const char **search_exclude_tags = NULL; > size_t search_exclude_tags_length = 0; > - notmuch_bool_t batch = FALSE; > - notmuch_bool_t print_lastmod = FALSE; > + bool batch = false; > + bool print_lastmod = false; > FILE *input = stdin; > const char *input_file_name = NULL; > int ret; > @@ -176,8 +176,8 @@ notmuch_count_command (notmuch_config_t *config, int argc, char *argv[]) > { "files", OUTPUT_FILES }, > { 0, 0 } } }, > { .opt_keyword = &exclude, .name = "exclude", .keywords = > - (notmuch_keyword_t []){ { "true", EXCLUDE_TRUE }, > - { "false", EXCLUDE_FALSE }, > + (notmuch_keyword_t []){ { "true", EXCLUDE_true }, > + { "false", EXCLUDE_false }, > { 0, 0 } } }, > { .opt_bool = &print_lastmod, .name = "lastmod" }, > { .opt_bool = &batch, .name = "batch" }, > @@ -193,7 +193,7 @@ notmuch_count_command (notmuch_config_t *config, int argc, char *argv[]) > notmuch_process_shared_options (argv[0]); > > if (input_file_name) { > - batch = TRUE; > + batch = true; > input = fopen (input_file_name, "r"); > if (input == NULL) { > fprintf (stderr, "Error opening %s for reading: %s\n", > @@ -221,7 +221,7 @@ notmuch_count_command (notmuch_config_t *config, int argc, char *argv[]) > return EXIT_FAILURE; > } > > - if (exclude == EXCLUDE_TRUE) { > + if (exclude == EXCLUDE_true) { > search_exclude_tags = notmuch_config_get_search_exclude_tags > (config, &search_exclude_tags_length); > } > diff --git a/notmuch-dump.c b/notmuch-dump.c > index 03e64d608c85..ef2f02dfeb5c 100644 > --- a/notmuch-dump.c > +++ b/notmuch-dump.c > @@ -97,7 +97,7 @@ dump_properties_message (void *ctx, > { > const char *message_id; > notmuch_message_properties_t *list; > - notmuch_bool_t first = TRUE; > + bool first = true; > > message_id = notmuch_message_get_message_id (message); > > @@ -106,7 +106,7 @@ dump_properties_message (void *ctx, > return 0; > } > > - for (list = notmuch_message_get_properties (message, "", FALSE); > + for (list = notmuch_message_get_properties (message, "", false); > notmuch_message_properties_valid (list); notmuch_message_properties_move_to_next (list)) { > const char *key, *val; > > @@ -116,7 +116,7 @@ dump_properties_message (void *ctx, > return 1; > } > gzprintf (output, "#= %s", *buffer_p); > - first = FALSE; > + first = false; > } > > key = notmuch_message_properties_key (list); > @@ -277,7 +277,7 @@ notmuch_database_dump (notmuch_database_t *notmuch, > const char *query_str, > dump_format_t output_format, > dump_include_t include, > - notmuch_bool_t gzip_output) > + bool gzip_output) > { > gzFile output = NULL; > const char *mode = gzip_output ? "w9" : "wT"; > @@ -374,7 +374,7 @@ notmuch_dump_command (notmuch_config_t *config, int argc, char *argv[]) > > int output_format = DUMP_FORMAT_BATCH_TAG; > int include = 0; > - notmuch_bool_t gzip_output = 0; > + bool gzip_output = 0; > > notmuch_opt_desc_t options[] = { > { .opt_keyword = &output_format, .name = "format", .keywords = > diff --git a/notmuch-insert.c b/notmuch-insert.c > index bbbc29ea103d..32be74193472 100644 > --- a/notmuch-insert.c > +++ b/notmuch-insert.c > @@ -65,7 +65,7 @@ safe_gethostname (char *hostname, size_t len) > } > > /* Call fsync() on a directory path. */ > -static notmuch_bool_t > +static bool > sync_dir (const char *dir) > { > int fd, r; > @@ -73,7 +73,7 @@ sync_dir (const char *dir) > fd = open (dir, O_RDONLY); > if (fd == -1) { > fprintf (stderr, "Error: open %s: %s\n", dir, strerror (errno)); > - return FALSE; > + return false; > } > > r = fsync (fd); > @@ -88,29 +88,29 @@ sync_dir (const char *dir) > /* > * Check the specified folder name does not contain a directory > * component ".." to prevent writes outside of the Maildir > - * hierarchy. Return TRUE on valid folder name, FALSE otherwise. > + * hierarchy. Return true on valid folder name, false otherwise. > */ > -static notmuch_bool_t > +static bool > is_valid_folder_name (const char *folder) > { > const char *p = folder; > > for (;;) { > if ((p[0] == '.') && (p[1] == '.') && (p[2] == '\0' || p[2] == '/')) > - return FALSE; > + return false; > p = strchr (p, '/'); > if (!p) > - return TRUE; > + return true; > p++; > } > } > > /* > * Make the given directory and its parents as necessary, using the > - * given mode. Return TRUE on success, FALSE otherwise. Partial > + * given mode. Return true on success, false otherwise. Partial > * results are not cleaned up on errors. > */ > -static notmuch_bool_t > +static bool > mkdir_recursive (const void *ctx, const char *path, int mode) > { > struct stat st; > @@ -123,13 +123,13 @@ mkdir_recursive (const void *ctx, const char *path, int mode) > if (! S_ISDIR (st.st_mode)) { > fprintf (stderr, "Error: '%s' is not a directory: %s\n", > path, strerror (EEXIST)); > - return FALSE; > + return false; > } > > - return TRUE; > + return true; > } else if (errno != ENOENT) { > fprintf (stderr, "Error: stat '%s': %s\n", path, strerror (errno)); > - return FALSE; > + return false; > } > > /* mkdir parents, if any */ > @@ -138,27 +138,27 @@ mkdir_recursive (const void *ctx, const char *path, int mode) > parent = talloc_strndup (ctx, path, slash - path); > if (! parent) { > fprintf (stderr, "Error: %s\n", strerror (ENOMEM)); > - return FALSE; > + return false; > } > > if (! mkdir_recursive (ctx, parent, mode)) > - return FALSE; > + return false; > } > > if (mkdir (path, mode)) { > fprintf (stderr, "Error: mkdir '%s': %s\n", path, strerror (errno)); > - return FALSE; > + return false; > } > > - return parent ? sync_dir (parent) : TRUE; > + return parent ? sync_dir (parent) : true; > } > > /* > * Create the given maildir folder, i.e. maildir and its > - * subdirectories cur/new/tmp. Return TRUE on success, FALSE > + * subdirectories cur/new/tmp. Return true on success, false > * otherwise. Partial results are not cleaned up on errors. > */ > -static notmuch_bool_t > +static bool > maildir_create_folder (const void *ctx, const char *maildir) > { > const char *subdirs[] = { "cur", "new", "tmp" }; > @@ -170,14 +170,14 @@ maildir_create_folder (const void *ctx, const char *maildir) > subdir = talloc_asprintf (ctx, "%s/%s", maildir, subdirs[i]); > if (! subdir) { > fprintf (stderr, "Error: %s\n", strerror (ENOMEM)); > - return FALSE; > + return false; > } > > if (! mkdir_recursive (ctx, subdir, mode)) > - return FALSE; > + return false; > } > > - return TRUE; > + return true; > } > > /* > @@ -241,13 +241,13 @@ maildir_mktemp (const void *ctx, const char *maildir, char **path_out) > } > > /* > - * Copy fdin to fdout, return TRUE on success, and FALSE on errors and > + * Copy fdin to fdout, return true on success, and false on errors and > * empty input. > */ > -static notmuch_bool_t > +static bool > copy_fd (int fdout, int fdin) > { > - notmuch_bool_t empty = TRUE; > + bool empty = true; > > while (! interrupted) { > ssize_t remain; > @@ -262,7 +262,7 @@ copy_fd (int fdout, int fdin) > continue; > fprintf (stderr, "Error: reading from standard input: %s\n", > strerror (errno)); > - return FALSE; > + return false; > } > > p = buf; > @@ -273,11 +273,11 @@ copy_fd (int fdout, int fdin) > if (written <= 0) { > fprintf (stderr, "Error: writing to temporary file: %s", > strerror (errno)); > - return FALSE; > + return false; > } > p += written; > remain -= written; > - empty = FALSE; > + empty = false; > } while (remain > 0); > } > > @@ -367,19 +367,19 @@ FAIL: > > /* > * Add the specified message file to the notmuch database, applying > - * tags in tag_ops. If synchronize_flags is TRUE, the tags are > + * tags in tag_ops. If synchronize_flags is true, the tags are > * synchronized to maildir flags (which may result in message file > * rename). > * > * Return NOTMUCH_STATUS_SUCCESS on success, errors otherwise. If keep > - * is TRUE, errors in tag changes and flag syncing are ignored and > + * is true, errors in tag changes and flag syncing are ignored and > * success status is returned; otherwise such errors cause the message > * to be removed from the database. Failure to add the message to the > * database results in error status regardless of keep. > */ > static notmuch_status_t > add_file (notmuch_database_t *notmuch, const char *path, tag_op_list_t *tag_ops, > - notmuch_bool_t synchronize_flags, notmuch_bool_t keep) > + bool synchronize_flags, bool keep) > { > notmuch_message_t *message; > notmuch_status_t status; > @@ -453,10 +453,10 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[]) > tag_op_list_t *tag_ops; > char *query_string = NULL; > const char *folder = ""; > - notmuch_bool_t create_folder = FALSE; > - notmuch_bool_t keep = FALSE; > - notmuch_bool_t no_hooks = FALSE; > - notmuch_bool_t synchronize_flags; > + bool create_folder = false; > + bool keep = false; > + bool no_hooks = false; > + bool synchronize_flags; > char *maildir; > char *newpath; > int opt_index; > @@ -489,14 +489,14 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[]) > for (i = 0; i < new_tags_length; i++) { > const char *error_msg; > > - error_msg = illegal_tag (new_tags[i], FALSE); > + error_msg = illegal_tag (new_tags[i], false); > if (error_msg) { > fprintf (stderr, "Error: tag '%s' in new.tags: %s\n", > new_tags[i], error_msg); > return EXIT_FAILURE; > } > > - if (tag_op_list_append (tag_ops, new_tags[i], FALSE)) > + if (tag_op_list_append (tag_ops, new_tags[i], false)) > return EXIT_FAILURE; > } > > diff --git a/notmuch-new.c b/notmuch-new.c > index 50597b75c07e..0f50457eb894 100644 > --- a/notmuch-new.c > +++ b/notmuch-new.c > @@ -44,7 +44,7 @@ enum verbosity { > typedef struct { > int output_is_a_tty; > enum verbosity verbosity; > - notmuch_bool_t debug; > + bool debug; > const char **new_tags; > size_t new_tags_length; > const char **new_ignore; > @@ -60,7 +60,7 @@ typedef struct { > _filename_list_t *removed_directories; > _filename_list_t *directory_mtimes; > > - notmuch_bool_t synchronize_flags; > + bool synchronize_flags; > } add_files_state_t; > > static volatile sig_atomic_t do_print_progress = 0; > @@ -234,7 +234,7 @@ _entries_resemble_maildir (const char *path, struct dirent **entries, int count) > return 0; > } > > -static notmuch_bool_t > +static bool > _special_directory (const char *entry) > { > return strcmp (entry, ".") == 0 || strcmp (entry, "..") == 0; > @@ -242,16 +242,16 @@ _special_directory (const char *entry) > > /* Test if the file/directory is to be ignored. > */ > -static notmuch_bool_t > +static bool > _entry_in_ignore_list (const char *entry, add_files_state_t *state) > { > size_t i; > > for (i = 0; i < state->new_ignore_length; i++) > if (strcmp (entry, state->new_ignore[i]) == 0) > - return TRUE; > + return true; > > - return FALSE; > + return false; > } > > /* Add a single file to the database. */ > @@ -376,7 +376,7 @@ add_files (notmuch_database_t *notmuch, > notmuch_filenames_t *db_subdirs = NULL; > time_t stat_time; > struct stat st; > - notmuch_bool_t is_maildir; > + bool is_maildir; > > if (stat (path, &st)) { > fprintf (stderr, "Error reading directory %s: %s\n", > @@ -837,7 +837,7 @@ remove_filename (notmuch_database_t *notmuch, > status = notmuch_database_remove_message (notmuch, path); > if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) { > add_files_state->renamed_messages++; > - if (add_files_state->synchronize_flags == TRUE) > + if (add_files_state->synchronize_flags == true) > notmuch_message_maildir_flags_to_tags (message); > status = NOTMUCH_STATUS_SUCCESS; > } else if (status == NOTMUCH_STATUS_SUCCESS) { > @@ -941,7 +941,7 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) > notmuch_database_t *notmuch; > add_files_state_t add_files_state = { > .verbosity = VERBOSITY_NORMAL, > - .debug = FALSE, > + .debug = false, > .output_is_a_tty = isatty (fileno (stdout)), > }; > struct timeval tv_start; > @@ -953,9 +953,9 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) > _filename_node_t *f; > int opt_index; > unsigned int i; > - notmuch_bool_t timer_is_active = FALSE; > - notmuch_bool_t no_hooks = FALSE; > - notmuch_bool_t quiet = FALSE, verbose = FALSE; > + bool timer_is_active = false; > + bool no_hooks = false; > + bool quiet = false, verbose = false; > notmuch_status_t status; > > notmuch_opt_desc_t options[] = { > @@ -987,7 +987,7 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) > for (i = 0; i < add_files_state.new_tags_length; i++) { > const char *error_msg; > > - error_msg = illegal_tag (add_files_state.new_tags[i], FALSE); > + error_msg = illegal_tag (add_files_state.new_tags[i], false); > if (error_msg) { > fprintf (stderr, "Error: tag '%s' in new.tags: %s\n", > add_files_state.new_tags[i], error_msg); > @@ -1054,7 +1054,7 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) > } > > if (notmuch_database_dump (notmuch, backup_name, "", > - DUMP_FORMAT_BATCH_TAG, DUMP_INCLUDE_DEFAULT, TRUE)) { > + DUMP_FORMAT_BATCH_TAG, DUMP_INCLUDE_DEFAULT, true)) { > fprintf (stderr, "Backup failed. Aborting upgrade."); > return EXIT_FAILURE; > } > @@ -1101,7 +1101,7 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) > if (add_files_state.verbosity == VERBOSITY_NORMAL && > add_files_state.output_is_a_tty && ! debugger_is_active ()) { > setup_progress_printing_timer (); > - timer_is_active = TRUE; > + timer_is_active = true; > } > > ret = add_files (notmuch, db_path, &add_files_state); > diff --git a/notmuch-reply.c b/notmuch-reply.c > index e7ead79d755d..3e5a1443719a 100644 > --- a/notmuch-reply.c > +++ b/notmuch-reply.c > @@ -93,7 +93,7 @@ typedef enum { > } 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) { > @@ -105,7 +105,7 @@ match_address (const char *str, const char *address, address_match_t mode) > return strcasecmp (address, str) == 0; > } > > - return FALSE; > + return false; > } > > /* Match given string against user's configured "primary" and "other" > @@ -153,7 +153,7 @@ string_in_user_address (const char *str, notmuch_config_t *config) > > /* 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; > @@ -221,7 +221,7 @@ scan_address_list (InternetAddressList *list, > /* 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) > { > @@ -229,7 +229,7 @@ reply_to_header_is_redundant (GMimeMessage *message, > InternetAddress *address; > InternetAddressMailbox *mailbox; > InternetAddressList *recipients; > - notmuch_bool_t ret = FALSE; > + bool ret = false; > int i; > > if (reply_to_list == NULL || > @@ -253,7 +253,7 @@ reply_to_header_is_redundant (GMimeMessage *message, > mailbox = INTERNET_ADDRESS_MAILBOX (address); > addr = internet_address_mailbox_get_addr (mailbox); > if (strcmp (addr, reply_to) == 0) { > - ret = TRUE; > + ret = true; > break; > } > } > @@ -323,7 +323,7 @@ static const char * > 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 > @@ -522,8 +522,8 @@ create_reply_message(void *ctx, > 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; > @@ -612,7 +612,7 @@ static int do_reply(notmuch_config_t *config, > 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; > @@ -663,11 +663,11 @@ static int do_reply(notmuch_config_t *config, > > /* 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, FALSE); > + format_part_sprinter (config, sp, node, true, false); > > /* End */ > sp->end (sp); > @@ -702,7 +702,7 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) > .part = -1, > }; > int format = FORMAT_DEFAULT; > - int reply_all = TRUE; > + int reply_all = true; > > notmuch_opt_desc_t options[] = { > { .opt_keyword = &format, .name = "format", .keywords = > @@ -713,8 +713,8 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) > { 0, 0 } } }, > { .opt_int = ¬much_format_version, .name = "format-version" }, > { .opt_keyword = &reply_all, .name = "reply-to", .keywords = > - (notmuch_keyword_t []){ { "all", TRUE }, > - { "sender", FALSE }, > + (notmuch_keyword_t []){ { "all", true }, > + { "sender", false }, > { 0, 0 } } }, > { .opt_bool = ¶ms.crypto.decrypt, .name = "decrypt" }, > { .opt_inherit = notmuch_shared_options }, > diff --git a/notmuch-restore.c b/notmuch-restore.c > index 0025e2c316be..dee19c206d13 100644 > --- a/notmuch-restore.c > +++ b/notmuch-restore.c > @@ -211,7 +211,7 @@ parse_sup_line (void *ctx, char *line, > tok_len++; > } > > - if (tag_op_list_append (tag_ops, tok, FALSE)) > + if (tag_op_list_append (tag_ops, tok, false)) > return -1; > } > > @@ -223,7 +223,7 @@ int > notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[]) > { > notmuch_database_t *notmuch; > - notmuch_bool_t accumulate = FALSE; > + bool accumulate = false; > tag_op_flag_t flags = 0; > tag_op_list_t *tag_ops; > > diff --git a/notmuch-search.c b/notmuch-search.c > index 2ea658d325d6..0abac08eb7ab 100644 > --- a/notmuch-search.c > +++ b/notmuch-search.c > @@ -163,7 +163,7 @@ do_search_threads (search_context_t *ctx) > int files = notmuch_thread_get_total_files (thread); > int total = notmuch_thread_get_total_messages (thread); > const char *relative_date = NULL; > - notmuch_bool_t first_tag = TRUE; > + bool first_tag = true; > > format->begin_map (format); > > @@ -243,7 +243,7 @@ do_search_threads (search_context_t *ctx) > if (format->is_text_printer) { > /* Special case for the text formatter */ > if (first_tag) > - first_tag = FALSE; > + first_tag = false; > else > fputc (' ', stdout); > fputs (tag, stdout); > @@ -295,9 +295,9 @@ static int mailbox_compare (const void *v1, const void *v2) > return ret; > } > > -/* Returns TRUE iff name and addr is duplicate. If not, stores the > +/* Returns true iff name and addr is duplicate. If not, stores the > * name/addr pair in order to detect subsequent duplicates. */ > -static notmuch_bool_t > +static bool > is_duplicate (const search_context_t *ctx, const char *name, const char *addr) > { > char *key; > @@ -315,12 +315,12 @@ is_duplicate (const search_context_t *ctx, const char *name, const char *addr) > if (l) { > mailbox = l->data; > mailbox->count++; > - return TRUE; > + return true; > } > > mailbox = new_mailbox (ctx->format, name, addr); > if (! mailbox) > - return FALSE; > + return false; > > /* > * XXX: It would be more efficient to prepend to the list, but > @@ -331,24 +331,24 @@ is_duplicate (const search_context_t *ctx, const char *name, const char *addr) > if (list != g_list_append (list, mailbox)) > INTERNAL_ERROR ("appending to list changed list head\n"); > > - return FALSE; > + return false; > } > > key = talloc_strdup (ctx->format, addr); > if (! key) > - return FALSE; > + return false; > > mailbox = new_mailbox (ctx->format, name, addr); > if (! mailbox) > - return FALSE; > + return false; > > list = g_list_append (NULL, mailbox); > if (! list) > - return FALSE; > + return false; > > g_hash_table_insert (ctx->addresses, key, list); > > - return FALSE; > + return false; > } > > static void > @@ -363,7 +363,7 @@ print_mailbox (const search_context_t *ctx, const mailbox_t *mailbox) > > /* name_addr has the name part quoted if necessary. Compare > * 'John Doe ' vs. '"Doe, John" ' */ > - name_addr = internet_address_to_string (ia, FALSE); > + name_addr = internet_address_to_string (ia, false); > > if (format->is_text_printer) { > if (ctx->output & OUTPUT_COUNT) { > diff --git a/notmuch-setup.c b/notmuch-setup.c > index 9a66810db385..5304800553cf 100644 > --- a/notmuch-setup.c > +++ b/notmuch-setup.c > @@ -187,7 +187,7 @@ notmuch_setup_command (notmuch_config_t *config, > (const char **) > other_emails->pdata, > other_emails->len); > - g_ptr_array_free (other_emails, TRUE); > + g_ptr_array_free (other_emails, true); > > prompt ("Top-level directory of your email archive [%s]: ", > notmuch_config_get_database_path (config)); > @@ -210,7 +210,7 @@ notmuch_setup_command (notmuch_config_t *config, > notmuch_config_set_new_tags (config, (const char **) tags->pdata, > tags->len); > > - g_ptr_array_free (tags, TRUE); > + g_ptr_array_free (tags, true); > } > > > @@ -227,7 +227,7 @@ notmuch_setup_command (notmuch_config_t *config, > (const char **) tags->pdata, > tags->len); > > - g_ptr_array_free (tags, TRUE); > + g_ptr_array_free (tags, true); > } > > if (notmuch_config_save (config)) > diff --git a/notmuch-show.c b/notmuch-show.c > index 3d11a40c6a59..1cfc74652aca 100644 > --- a/notmuch-show.c > +++ b/notmuch-show.c > @@ -196,7 +196,7 @@ _is_from_line (const char *line) > > void > format_headers_sprinter (sprinter_t *sp, GMimeMessage *message, > - notmuch_bool_t reply) > + bool reply) > { > /* Any changes to the JSON or S-Expression format should be > * reflected in the file devel/schemata. */ > @@ -283,7 +283,7 @@ show_text_part_content (GMimeObject *part, GMimeStream *stream_out, > return; > > stream_filter = g_mime_stream_filter_new (stream_out); > - crlf_filter = g_mime_filter_crlf_new (FALSE, FALSE); > + crlf_filter = g_mime_filter_crlf_new (false, false); > g_mime_stream_filter_add(GMIME_STREAM_FILTER (stream_filter), > crlf_filter); > g_object_unref (crlf_filter); > @@ -305,7 +305,7 @@ show_text_part_content (GMimeObject *part, GMimeStream *stream_out, > > if (flags & NOTMUCH_SHOW_TEXT_PART_REPLY) { > GMimeFilter *reply_filter; > - reply_filter = g_mime_filter_reply_new (TRUE); > + reply_filter = g_mime_filter_reply_new (true); > if (reply_filter) { > g_mime_stream_filter_add (GMIME_STREAM_FILTER (stream_filter), > reply_filter); > @@ -350,7 +350,7 @@ do_format_signature_errors (sprinter_t *sp, struct key_map_struct *key_map, > for (unsigned int i = 0; i < array_map_len; i++) { > if (errors & key_map[i].bit) { > sp->map_key (sp, key_map[i].string); > - sp->boolean (sp, TRUE); > + sp->boolean (sp, true); > } > } > > @@ -490,7 +490,7 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, > GMimeObject *meta = node->envelope_part ? > GMIME_OBJECT (node->envelope_part) : node->part; > GMimeContentType *content_type = g_mime_object_get_content_type (meta); > - const notmuch_bool_t leaf = GMIME_IS_PART (node->part); > + const bool leaf = GMIME_IS_PART (node->part); > GMimeStream *stream = params->out_stream; > const char *part_type; > int i; > @@ -603,8 +603,8 @@ format_omitted_part_meta_sprinter (sprinter_t *sp, GMimeObject *meta, GMimePart > > void > format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, > - notmuch_bool_t output_body, > - notmuch_bool_t include_html) > + bool output_body, > + bool include_html) > { > /* Any changes to the JSON or S-Expression format should be > * reflected in the file devel/schemata. */ > @@ -614,12 +614,12 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, > format_message_sprinter (sp, node->envelope_file); > > sp->map_key (sp, "headers"); > - format_headers_sprinter (sp, GMIME_MESSAGE (node->part), FALSE); > + format_headers_sprinter (sp, GMIME_MESSAGE (node->part), false); > > if (output_body) { > sp->map_key (sp, "body"); > sp->begin_list (sp); > - format_part_sprinter (ctx, sp, mime_node_child (node, 0), TRUE, include_html); > + format_part_sprinter (ctx, sp, mime_node_child (node, 0), true, include_html); > sp->end (sp); > } > sp->end (sp); > @@ -713,7 +713,7 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, > sp->begin_map (sp); > > sp->map_key (sp, "headers"); > - format_headers_sprinter (sp, GMIME_MESSAGE (node->part), FALSE); > + format_headers_sprinter (sp, GMIME_MESSAGE (node->part), false); > > sp->map_key (sp, "body"); > sp->begin_list (sp); > @@ -721,7 +721,7 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, > } > > for (i = 0; i < node->nchildren; i++) > - format_part_sprinter (ctx, sp, mime_node_child (node, i), TRUE, include_html); > + format_part_sprinter (ctx, sp, mime_node_child (node, i), true, include_html); > > /* Close content structures */ > for (i = 0; i < nclose; i++) > @@ -898,8 +898,8 @@ show_messages (void *ctx, > notmuch_show_params_t *params) > { > notmuch_message_t *message; > - notmuch_bool_t match; > - notmuch_bool_t excluded; > + bool match; > + bool excluded; > int next_indent; > notmuch_status_t status, res = NOTMUCH_STATUS_SUCCESS; > > @@ -1081,13 +1081,13 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) > sprinter_t *sprinter; > notmuch_show_params_t params = { > .part = -1, > - .omit_excluded = TRUE, > - .output_body = TRUE, > + .omit_excluded = true, > + .output_body = true, > }; > int format = NOTMUCH_FORMAT_NOT_SPECIFIED; > - notmuch_bool_t exclude = TRUE; > - notmuch_bool_t entire_thread_set = FALSE; > - notmuch_bool_t single_message; > + bool exclude = true; > + bool entire_thread_set = false; > + bool single_message; > > notmuch_opt_desc_t options[] = { > { .opt_keyword = &format, .name = "format", .keywords = > @@ -1118,7 +1118,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) > > /* decryption implies verification */ > if (params.crypto.decrypt) > - params.crypto.verify = TRUE; > + params.crypto.verify = true; > > /* specifying a part implies single message display */ > single_message = params.part >= 0; > @@ -1138,21 +1138,21 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) > } > } else if (format == NOTMUCH_FORMAT_RAW) { > /* raw format only supports single message display */ > - single_message = TRUE; > + single_message = true; > } > > notmuch_exit_if_unsupported_format (); > > - /* Default is entire-thread = FALSE except for format=json and > + /* Default is entire-thread = false except for format=json and > * format=sexp. */ > if (! entire_thread_set && > (format == NOTMUCH_FORMAT_JSON || format == NOTMUCH_FORMAT_SEXP)) > - params.entire_thread = TRUE; > + params.entire_thread = true; > > if (!params.output_body) { > if (params.part > 0) { > fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n"); > - params.output_body = TRUE; > + params.output_body = true; > } else { > if (format != NOTMUCH_FORMAT_JSON && format != NOTMUCH_FORMAT_SEXP) > fprintf (stderr, > @@ -1222,9 +1222,9 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) > } > } > > - if (exclude == FALSE) { > - notmuch_query_set_omit_excluded (query, FALSE); > - params.omit_excluded = FALSE; > + if (exclude == false) { > + notmuch_query_set_omit_excluded (query, false); > + params.omit_excluded = false; > } > > ret = do_show (config, query, formatter, sprinter, ¶ms); > diff --git a/notmuch-tag.c b/notmuch-tag.c > index 630efa65399c..05b1837d7c50 100644 > --- a/notmuch-tag.c > +++ b/notmuch-tag.c > @@ -194,8 +194,8 @@ notmuch_tag_command (notmuch_config_t *config, int argc, char *argv[]) > notmuch_database_t *notmuch; > struct sigaction action; > tag_op_flag_t tag_flags = TAG_FLAG_NONE; > - notmuch_bool_t batch = FALSE; > - notmuch_bool_t remove_all = FALSE; > + bool batch = false; > + bool remove_all = false; > FILE *input = stdin; > const char *input_file_name = NULL; > int opt_index; > @@ -223,7 +223,7 @@ notmuch_tag_command (notmuch_config_t *config, int argc, char *argv[]) > notmuch_process_shared_options (argv[0]); > > if (input_file_name) { > - batch = TRUE; > + batch = true; > input = fopen (input_file_name, "r"); > if (input == NULL) { > fprintf (stderr, "Error opening %s for reading: %s\n", > diff --git a/notmuch.c b/notmuch.c > index cc9c34aefb30..02148f2e3bf6 100644 > --- a/notmuch.c > +++ b/notmuch.c > @@ -46,7 +46,7 @@ notmuch_command (notmuch_config_t *config, int argc, char *argv[]); > static int > _help_for (const char *topic); > > -static notmuch_bool_t print_version = FALSE, print_help = FALSE; > +static bool print_version = false, print_help = false; > const char *notmuch_requested_db_uuid = NULL; > > const notmuch_opt_desc_t notmuch_shared_options [] = { > @@ -371,13 +371,13 @@ notmuch_command (notmuch_config_t *config, > * is). > * > * Does not return if the external command is found and > - * executed. Return TRUE if external command is not found. Return > - * FALSE on errors. > + * executed. Return true if external command is not found. Return > + * false on errors. > */ > -static notmuch_bool_t try_external_command(char *argv[]) > +static bool try_external_command(char *argv[]) > { > char *old_argv0 = argv[0]; > - notmuch_bool_t ret = TRUE; > + bool ret = true; > > argv[0] = talloc_asprintf (NULL, "notmuch-%s", old_argv0); > > @@ -389,7 +389,7 @@ static notmuch_bool_t try_external_command(char *argv[]) > if (errno != ENOENT) { > fprintf (stderr, "Error: Running external command '%s' failed: %s\n", > argv[0], strerror(errno)); > - ret = FALSE; > + ret = false; > } > > talloc_free (argv[0]); > diff --git a/sprinter-json.c b/sprinter-json.c > index 0a077907cd83..c6ec857720d9 100644 > --- a/sprinter-json.c > +++ b/sprinter-json.c > @@ -13,14 +13,14 @@ struct sprinter_json { > /* A flag to signify that a separator should be inserted in the > * output as soon as possible. > */ > - notmuch_bool_t insert_separator; > + bool insert_separator; > }; > > struct json_state { > struct json_state *parent; > /* True if nothing has been printed in this aggregate yet. > * Suppresses the comma before a value. */ > - notmuch_bool_t first; > + bool first; > /* The character that closes the current aggregate. */ > char close; > }; > @@ -37,12 +37,12 @@ json_begin_value (struct sprinter *sp) > fputc (',', spj->stream); > if (spj->insert_separator) { > fputc ('\n', spj->stream); > - spj->insert_separator = FALSE; > + spj->insert_separator = false; > } else { > fputc (' ', spj->stream); > } > } else { > - spj->state->first = FALSE; > + spj->state->first = false; > } > } > return spj; > @@ -58,7 +58,7 @@ json_begin_aggregate (struct sprinter *sp, char open, char close) > > fputc (open, spj->stream); > state->parent = spj->state; > - state->first = TRUE; > + state->first = true; > state->close = close; > spj->state = state; > } > @@ -132,7 +132,7 @@ json_integer (struct sprinter *sp, int val) > } > > static void > -json_boolean (struct sprinter *sp, notmuch_bool_t val) > +json_boolean (struct sprinter *sp, bool val) > { > struct sprinter_json *spj = json_begin_value (sp); > > @@ -154,7 +154,7 @@ json_map_key (struct sprinter *sp, const char *key) > > json_string (sp, key); > fputs (": ", spj->stream); > - spj->state->first = TRUE; > + spj->state->first = true; > } > > static void > @@ -167,7 +167,7 @@ json_separator (struct sprinter *sp) > { > struct sprinter_json *spj = (struct sprinter_json *) sp; > > - spj->insert_separator = TRUE; > + spj->insert_separator = true; > } > > struct sprinter * > @@ -186,7 +186,7 @@ sprinter_json_create (const void *ctx, FILE *stream) > .map_key = json_map_key, > .separator = json_separator, > .set_prefix = json_set_prefix, > - .is_text_printer = FALSE, > + .is_text_printer = false, > } > }; > struct sprinter_json *res; > diff --git a/sprinter-sexp.c b/sprinter-sexp.c > index 08783e11d3bd..6891ea4254f8 100644 > --- a/sprinter-sexp.c > +++ b/sprinter-sexp.c > @@ -33,7 +33,7 @@ struct sprinter_sexp { > > /* A flag to signify that a separator should be inserted in the > * output as soon as possible. */ > - notmuch_bool_t insert_separator; > + bool insert_separator; > }; > > struct sexp_state { > @@ -41,7 +41,7 @@ struct sexp_state { > > /* True if nothing has been printed in this aggregate yet. > * Suppresses the space before a value. */ > - notmuch_bool_t first; > + bool first; > }; > > /* Helper function to set up the stream to print a value. If this > @@ -55,12 +55,12 @@ sexp_begin_value (struct sprinter *sp) > if (! sps->state->first) { > if (sps->insert_separator) { > fputc ('\n', sps->stream); > - sps->insert_separator = FALSE; > + sps->insert_separator = false; > } else { > fputc (' ', sps->stream); > } > } else { > - sps->state->first = FALSE; > + sps->state->first = false; > } > } > return sps; > @@ -76,7 +76,7 @@ sexp_begin_aggregate (struct sprinter *sp) > > fputc ('(', sps->stream); > state->parent = sps->state; > - state->first = TRUE; > + state->first = true; > sps->state = state; > } > > @@ -169,7 +169,7 @@ sexp_integer (struct sprinter *sp, int val) > } > > static void > -sexp_boolean (struct sprinter *sp, notmuch_bool_t val) > +sexp_boolean (struct sprinter *sp, bool val) > { > struct sprinter_sexp *sps = sexp_begin_value (sp); > > @@ -202,7 +202,7 @@ sexp_separator (struct sprinter *sp) > { > struct sprinter_sexp *sps = (struct sprinter_sexp *) sp; > > - sps->insert_separator = TRUE; > + sps->insert_separator = true; > } > > struct sprinter * > @@ -221,7 +221,7 @@ sprinter_sexp_create (const void *ctx, FILE *stream) > .map_key = sexp_map_key, > .separator = sexp_separator, > .set_prefix = sexp_set_prefix, > - .is_text_printer = FALSE, > + .is_text_printer = false, > } > }; > struct sprinter_sexp *res; > diff --git a/sprinter-text.c b/sprinter-text.c > index 7779488f99a3..648b54b1e886 100644 > --- a/sprinter-text.c > +++ b/sprinter-text.c > @@ -21,7 +21,7 @@ struct sprinter_text { > /* A flag to indicate if this is the first tag. Used in list of tags > * for summary. > */ > - notmuch_bool_t first_tag; > + bool first_tag; > }; > > static void > @@ -52,7 +52,7 @@ text_integer (struct sprinter *sp, int val) > } > > static void > -text_boolean (struct sprinter *sp, notmuch_bool_t val) > +text_boolean (struct sprinter *sp, bool val) > { > struct sprinter_text *sptxt = (struct sprinter_text *) sp; > > @@ -128,7 +128,7 @@ sprinter_text_create (const void *ctx, FILE *stream) > .map_key = text_map_key, > .separator = text_separator, > .set_prefix = text_set_prefix, > - .is_text_printer = TRUE, > + .is_text_printer = true, > }, > }; > struct sprinter_text *res; > diff --git a/sprinter.h b/sprinter.h > index f859672f8b3f..9d2e9b6f7140 100644 > --- a/sprinter.h > +++ b/sprinter.h > @@ -1,7 +1,7 @@ > #ifndef NOTMUCH_SPRINTER_H > #define NOTMUCH_SPRINTER_H > > -/* Necessary for notmuch_bool_t */ > +/* Necessary for bool */ > #include "notmuch-client.h" > > /* Structure printer interface. This is used to create output > @@ -34,7 +34,7 @@ typedef struct sprinter { > void (*string) (struct sprinter *, const char *); > void (*string_len) (struct sprinter *, const char *, size_t); > void (*integer) (struct sprinter *, int); > - void (*boolean) (struct sprinter *, notmuch_bool_t); > + void (*boolean) (struct sprinter *, bool); > void (*null) (struct sprinter *); > > /* Print the key of a map's key/value pair. The char * must be UTF-8 > @@ -58,7 +58,7 @@ typedef struct sprinter { > > /* True if this is the special-cased plain text printer. > */ > - notmuch_bool_t is_text_printer; > + bool is_text_printer; > } sprinter_t; > > > diff --git a/tag-util.c b/tag-util.c > index d9fca7b832fd..1837b1aeafa3 100644 > --- a/tag-util.c > +++ b/tag-util.c > @@ -7,7 +7,7 @@ > > struct _tag_operation_t { > const char *tag; > - notmuch_bool_t remove; > + bool remove; > }; > > struct _tag_op_list_t { > @@ -35,7 +35,7 @@ line_error (tag_parse_status_t status, > } > > const char * > -illegal_tag (const char *tag, notmuch_bool_t remove) > +illegal_tag (const char *tag, bool remove) > { > if (*tag == '\0' && ! remove) > return "empty tag forbidden"; > @@ -84,7 +84,7 @@ parse_tag_line (void *ctx, char *line, > > /* Parse tags. */ > while ((tok = strtok_len (tok + tok_len, " ", &tok_len)) != NULL) { > - notmuch_bool_t remove; > + bool remove; > char *tag; > > /* Optional explicit end of tags marker. */ > @@ -168,7 +168,7 @@ parse_tag_command_line (void *ctx, int argc, char **argv, > if (argv[i][0] != '+' && argv[i][0] != '-') > break; > > - notmuch_bool_t is_remove = argv[i][0] == '-'; > + bool is_remove = argv[i][0] == '-'; > const char *msg; > > msg = illegal_tag (argv[i] + 1, is_remove); > @@ -215,7 +215,7 @@ makes_changes (notmuch_message_t *message, > size_t i; > > notmuch_tags_t *tags; > - notmuch_bool_t changes = FALSE; > + bool changes = false; > > /* First, do we delete an existing tag? */ > for (tags = notmuch_message_get_tags (message); > @@ -239,11 +239,11 @@ makes_changes (notmuch_message_t *message, > notmuch_tags_destroy (tags); > > if (changes) > - return TRUE; > + return true; > > /* Now check for adding new tags */ > for (i = 0; i < list->count; i++) { > - notmuch_bool_t exists = FALSE; > + bool exists = false; > > if (list->ops[i].remove) > continue; > @@ -253,7 +253,7 @@ makes_changes (notmuch_message_t *message, > notmuch_tags_move_to_next (tags)) { > const char *cur_tag = notmuch_tags_get (tags); > if (strcmp (cur_tag, list->ops[i].tag) == 0) { > - exists = TRUE; > + exists = true; > break; > } > } > @@ -264,9 +264,9 @@ makes_changes (notmuch_message_t *message, > * but this is OK from a correctness point of view > */ > if (! exists) > - return TRUE; > + return true; > } > - return FALSE; > + return false; > > } > > @@ -359,7 +359,7 @@ tag_op_list_create (void *ctx) > int > tag_op_list_append (tag_op_list_t *list, > const char *tag, > - notmuch_bool_t remove) > + bool remove) > { > /* Make room if current array is full. This should be a fairly > * rare case, considering the initial array size. > @@ -387,7 +387,7 @@ tag_op_list_append (tag_op_list_t *list, > * Is the i'th tag operation a remove? > */ > > -notmuch_bool_t > +bool > tag_op_list_isremove (const tag_op_list_t *list, size_t i) > { > assert (i < list->count); > diff --git a/tag-util.h b/tag-util.h > index 8a4074ce168f..a2f0ddfaa280 100644 > --- a/tag-util.h > +++ b/tag-util.h > @@ -99,7 +99,7 @@ parse_tag_command_line (void *ctx, int argc, char **argv, > * explanatory message otherwise. > */ > const char * > -illegal_tag (const char *tag, notmuch_bool_t remove); > +illegal_tag (const char *tag, bool remove); > > /* > * Create an empty list of tag operations > @@ -111,14 +111,14 @@ tag_op_list_t * > tag_op_list_create (void *ctx); > > /* > - * Add a tag operation (delete iff remove == TRUE) to a list. > + * Add a tag operation (delete iff remove == true) to a list. > * The list is expanded as necessary. > */ > > int > tag_op_list_append (tag_op_list_t *list, > const char *tag, > - notmuch_bool_t remove); > + bool remove); > > /* > * Apply a list of tag operations, in order, to a given message. > @@ -157,7 +157,7 @@ tag_op_list_tag (const tag_op_list_t *list, size_t i); > * Is the i'th tag operation a remove? > */ > > -notmuch_bool_t > +bool > tag_op_list_isremove (const tag_op_list_t *list, size_t i); > > #endif > diff --git a/test/arg-test.c b/test/arg-test.c > index 64751df4ada1..7aff825507a5 100644 > --- a/test/arg-test.c > +++ b/test/arg-test.c > @@ -12,9 +12,9 @@ int main(int argc, char **argv){ > const char *pos_arg1=NULL; > const char *pos_arg2=NULL; > const char *string_val=NULL; > - notmuch_bool_t bool_val = FALSE; > - notmuch_bool_t fl_set = FALSE, int_set = FALSE, bool_set = FALSE, > - kw_set = FALSE, string_set = FALSE, pos1_set = FALSE, pos2_set = FALSE; > + bool bool_val = false; > + bool fl_set = false, int_set = false, bool_set = false, > + kw_set = false, string_set = false, pos1_set = false, pos2_set = false; > > notmuch_opt_desc_t parent_options[] = { > { .opt_flags = &fl_val, .name = "flag", .present = &fl_set, .keywords = > diff --git a/test/hex-xcode.c b/test/hex-xcode.c > index 221ccdb90843..33046e9a5178 100644 > --- a/test/hex-xcode.c > +++ b/test/hex-xcode.c > @@ -16,7 +16,7 @@ enum direction { > DECODE > }; > > -static int inplace = FALSE; > +static bool inplace = false; > > static int > xcode (void *ctx, enum direction dir, char *in, char **buf_p, size_t *size_p) > @@ -45,7 +45,7 @@ main (int argc, char **argv) > { > > int dir = DECODE; > - notmuch_bool_t omit_newline = FALSE; > + bool omit_newline = false; > > notmuch_opt_desc_t options[] = { > { .opt_keyword = &dir, .name = "direction", .keywords = > @@ -71,7 +71,7 @@ main (int argc, char **argv) > char *buffer = NULL; > size_t buf_size = 0; > > - notmuch_bool_t read_stdin = TRUE; > + bool read_stdin = true; > > for (; opt_index < argc; opt_index++) { > > @@ -82,7 +82,7 @@ main (int argc, char **argv) > if (! omit_newline) > putchar ('\n'); > > - read_stdin = FALSE; > + read_stdin = false; > } > > if (! read_stdin) > diff --git a/test/random-corpus.c b/test/random-corpus.c > index e3b855e1efd8..9272afda8bed 100644 > --- a/test/random-corpus.c > +++ b/test/random-corpus.c > @@ -179,7 +179,7 @@ main (int argc, char **argv) > exit (1); > } > > - config = notmuch_config_open (ctx, config_path, FALSE); > + config = notmuch_config_open (ctx, config_path, false); > if (config == NULL) > return 1; > > -- > 2.11.0 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch