mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
cli: convert notmuch_bool_t to stdbool
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.
This commit is contained in:
parent
54aef07159
commit
0f314c0c99
29 changed files with 275 additions and 270 deletions
|
@ -6,11 +6,11 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Search the array of keywords for a given argument, assigning the
|
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.
|
matches.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
_process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) {
|
_process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) {
|
||||||
|
|
||||||
const notmuch_keyword_t *keywords;
|
const notmuch_keyword_t *keywords;
|
||||||
|
@ -29,64 +29,64 @@ _process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char
|
||||||
else
|
else
|
||||||
*arg_desc->opt_keyword = keywords->value;
|
*arg_desc->opt_keyword = keywords->value;
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
if (next != '\0')
|
if (next != '\0')
|
||||||
fprintf (stderr, "Unknown keyword argument \"%s\" for option \"%s\".\n", arg_str, arg_desc->name);
|
fprintf (stderr, "Unknown keyword argument \"%s\" for option \"%s\".\n", arg_str, arg_desc->name);
|
||||||
else
|
else
|
||||||
fprintf (stderr, "Option \"%s\" needs a keyword argument.\n", arg_desc->name);
|
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) {
|
_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) {
|
if (next == '\0' || strcmp (arg_str, "true") == 0) {
|
||||||
value = TRUE;
|
value = true;
|
||||||
} else if (strcmp (arg_str, "false") == 0) {
|
} else if (strcmp (arg_str, "false") == 0) {
|
||||||
value = FALSE;
|
value = false;
|
||||||
} else {
|
} else {
|
||||||
fprintf (stderr, "Unknown argument \"%s\" for (boolean) option \"%s\".\n", arg_str, arg_desc->name);
|
fprintf (stderr, "Unknown argument \"%s\" for (boolean) option \"%s\".\n", arg_str, arg_desc->name);
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
*arg_desc->opt_bool = value;
|
*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) {
|
_process_int_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) {
|
||||||
|
|
||||||
char *endptr;
|
char *endptr;
|
||||||
if (next == '\0' || arg_str[0] == '\0') {
|
if (next == '\0' || arg_str[0] == '\0') {
|
||||||
fprintf (stderr, "Option \"%s\" needs an integer argument.\n", arg_desc->name);
|
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);
|
*arg_desc->opt_int = strtol (arg_str, &endptr, 10);
|
||||||
if (*endptr == '\0')
|
if (*endptr == '\0')
|
||||||
return TRUE;
|
return true;
|
||||||
|
|
||||||
fprintf (stderr, "Unable to parse argument \"%s\" for option \"%s\" as an integer.\n",
|
fprintf (stderr, "Unable to parse argument \"%s\" for option \"%s\" as an integer.\n",
|
||||||
arg_str, arg_desc->name);
|
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) {
|
_process_string_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) {
|
||||||
|
|
||||||
if (next == '\0') {
|
if (next == '\0') {
|
||||||
fprintf (stderr, "Option \"%s\" needs a string argument.\n", arg_desc->name);
|
fprintf (stderr, "Option \"%s\" needs a string argument.\n", arg_desc->name);
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
if (arg_str[0] == '\0') {
|
if (arg_str[0] == '\0') {
|
||||||
fprintf (stderr, "String argument for option \"%s\" must be non-empty.\n", arg_desc->name);
|
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;
|
*arg_desc->opt_string = arg_str;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return number of non-NULL opt_* fields in opt_desc. */
|
/* 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;
|
!!opt_desc->opt_position;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return TRUE if opt_desc is valid. */
|
/* Return true if opt_desc is valid. */
|
||||||
static notmuch_bool_t _opt_valid (const notmuch_opt_desc_t *opt_desc)
|
static bool _opt_valid (const notmuch_opt_desc_t *opt_desc)
|
||||||
{
|
{
|
||||||
int n = _opt_set_count (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.
|
that does not exist.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
notmuch_bool_t
|
bool
|
||||||
parse_position_arg (const char *arg_str, int pos_arg_index,
|
parse_position_arg (const char *arg_str, int pos_arg_index,
|
||||||
const notmuch_opt_desc_t *arg_desc) {
|
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) {
|
if (pos_arg_counter == pos_arg_index) {
|
||||||
*arg_desc->opt_position = arg_str;
|
*arg_desc->opt_position = arg_str;
|
||||||
if (arg_desc->present)
|
if (arg_desc->present)
|
||||||
*arg_desc->present = TRUE;
|
*arg_desc->present = true;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
pos_arg_counter++;
|
pos_arg_counter++;
|
||||||
}
|
}
|
||||||
arg_desc++;
|
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 ++;
|
opt_index ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch_bool_t opt_status = FALSE;
|
bool opt_status = false;
|
||||||
if (try->opt_keyword || try->opt_flags)
|
if (try->opt_keyword || try->opt_flags)
|
||||||
opt_status = _process_keyword_arg (try, next, value);
|
opt_status = _process_keyword_arg (try, next, value);
|
||||||
else if (try->opt_bool)
|
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;
|
return -1;
|
||||||
|
|
||||||
if (try->present)
|
if (try->present)
|
||||||
*try->present = TRUE;
|
*try->present = true;
|
||||||
|
|
||||||
return opt_index+1;
|
return opt_index+1;
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,7 @@ parse_arguments (int argc, char **argv,
|
||||||
const notmuch_opt_desc_t *options, int opt_index) {
|
const notmuch_opt_desc_t *options, int opt_index) {
|
||||||
|
|
||||||
int pos_arg_index = 0;
|
int pos_arg_index = 0;
|
||||||
notmuch_bool_t more_args = TRUE;
|
bool more_args = true;
|
||||||
|
|
||||||
while (more_args && opt_index < argc) {
|
while (more_args && opt_index < argc) {
|
||||||
if (strncmp (argv[opt_index],"--",2) != 0) {
|
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);
|
opt_index = parse_option (argc, argv, options, opt_index);
|
||||||
if (opt_index < 0) {
|
if (opt_index < 0) {
|
||||||
fprintf (stderr, "Unrecognized option: %s\n", argv[prev_opt_index]);
|
fprintf (stderr, "Unrecognized option: %s\n", argv[prev_opt_index]);
|
||||||
more_args = FALSE;
|
more_args = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef NOTMUCH_OPTS_H
|
#ifndef NOTMUCH_OPTS_H
|
||||||
#define NOTMUCH_OPTS_H
|
#define NOTMUCH_OPTS_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "notmuch.h"
|
#include "notmuch.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -17,7 +19,7 @@ typedef struct notmuch_keyword {
|
||||||
typedef struct notmuch_opt_desc {
|
typedef struct notmuch_opt_desc {
|
||||||
/* One and only one of opt_* must be set. */
|
/* One and only one of opt_* must be set. */
|
||||||
const struct notmuch_opt_desc *opt_inherit;
|
const struct notmuch_opt_desc *opt_inherit;
|
||||||
notmuch_bool_t *opt_bool;
|
bool *opt_bool;
|
||||||
int *opt_int;
|
int *opt_int;
|
||||||
int *opt_keyword;
|
int *opt_keyword;
|
||||||
int *opt_flags;
|
int *opt_flags;
|
||||||
|
@ -27,8 +29,8 @@ typedef struct notmuch_opt_desc {
|
||||||
/* Must be set except for opt_inherit and opt_position. */
|
/* Must be set except for opt_inherit and opt_position. */
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
/* Optional, if non-NULL, set to TRUE if the option is present. */
|
/* Optional, if non-NULL, set to true if the option is present. */
|
||||||
notmuch_bool_t *present;
|
bool *present;
|
||||||
|
|
||||||
/* Must be set for opt_keyword and opt_flags. */
|
/* Must be set for opt_keyword and opt_flags. */
|
||||||
const struct notmuch_keyword *keywords;
|
const struct notmuch_keyword *keywords;
|
||||||
|
@ -64,7 +66,7 @@ parse_arguments (int argc, char **argv, const notmuch_opt_desc_t *options, int o
|
||||||
int
|
int
|
||||||
parse_option (int argc, char **argv, const notmuch_opt_desc_t* options, int opt_index);
|
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,
|
parse_position_arg (const char *arg,
|
||||||
int position_arg_index,
|
int position_arg_index,
|
||||||
const notmuch_opt_desc_t* options);
|
const notmuch_opt_desc_t* options);
|
||||||
|
|
6
crypto.c
6
crypto.c
|
@ -37,8 +37,8 @@ create_gpg_context (notmuch_crypto_t *crypto)
|
||||||
}
|
}
|
||||||
crypto->gpgctx = gpgctx;
|
crypto->gpgctx = gpgctx;
|
||||||
|
|
||||||
g_mime_gpg_context_set_use_agent ((GMimeGpgContext *) gpgctx, TRUE);
|
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_always_trust ((GMimeGpgContext *) gpgctx, false);
|
||||||
|
|
||||||
return gpgctx;
|
return gpgctx;
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ create_pkcs7_context (notmuch_crypto_t *crypto)
|
||||||
crypto->pkcs7ctx = pkcs7ctx;
|
crypto->pkcs7ctx = pkcs7ctx;
|
||||||
|
|
||||||
g_mime_pkcs7_context_set_always_trust ((GMimePkcs7Context *) pkcs7ctx,
|
g_mime_pkcs7_context_set_always_trust ((GMimePkcs7Context *) pkcs7ctx,
|
||||||
FALSE);
|
false);
|
||||||
|
|
||||||
return pkcs7ctx;
|
return pkcs7ctx;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,20 +28,20 @@
|
||||||
#define RUNNING_ON_VALGRIND 0
|
#define RUNNING_ON_VALGRIND 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
notmuch_bool_t
|
bool
|
||||||
debugger_is_active (void)
|
debugger_is_active (void)
|
||||||
{
|
{
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
|
|
||||||
if (RUNNING_ON_VALGRIND)
|
if (RUNNING_ON_VALGRIND)
|
||||||
return TRUE;
|
return true;
|
||||||
|
|
||||||
sprintf (buf, "/proc/%d/exe", getppid ());
|
sprintf (buf, "/proc/%d/exe", getppid ());
|
||||||
if (readlink (buf, buf, sizeof (buf)) != -1 &&
|
if (readlink (buf, buf, sizeof (buf)) != -1 &&
|
||||||
strncmp (basename (buf), "gdb", 3) == 0)
|
strncmp (basename (buf), "gdb", 3) == 0)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "gmime-filter-reply.h"
|
#include "gmime-filter-reply.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,8 +89,8 @@ static void
|
||||||
g_mime_filter_reply_init (GMimeFilterReply *filter, GMimeFilterReplyClass *klass)
|
g_mime_filter_reply_init (GMimeFilterReply *filter, GMimeFilterReplyClass *klass)
|
||||||
{
|
{
|
||||||
(void) klass;
|
(void) klass;
|
||||||
filter->saw_nl = TRUE;
|
filter->saw_nl = true;
|
||||||
filter->saw_angle = FALSE;
|
filter->saw_angle = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -117,43 +119,43 @@ filter_filter (GMimeFilter *filter, char *inbuf, size_t inlen, size_t prespace,
|
||||||
|
|
||||||
(void) prespace;
|
(void) prespace;
|
||||||
if (reply->encode) {
|
if (reply->encode) {
|
||||||
g_mime_filter_set_size (filter, 3 * inlen, FALSE);
|
g_mime_filter_set_size (filter, 3 * inlen, false);
|
||||||
|
|
||||||
outptr = filter->outbuf;
|
outptr = filter->outbuf;
|
||||||
while (inptr < inend) {
|
while (inptr < inend) {
|
||||||
if (reply->saw_nl) {
|
if (reply->saw_nl) {
|
||||||
*outptr++ = '>';
|
*outptr++ = '>';
|
||||||
*outptr++ = ' ';
|
*outptr++ = ' ';
|
||||||
reply->saw_nl = FALSE;
|
reply->saw_nl = false;
|
||||||
}
|
}
|
||||||
if (*inptr == '\n')
|
if (*inptr == '\n')
|
||||||
reply->saw_nl = TRUE;
|
reply->saw_nl = true;
|
||||||
else
|
else
|
||||||
reply->saw_nl = FALSE;
|
reply->saw_nl = false;
|
||||||
if (*inptr != '\r')
|
if (*inptr != '\r')
|
||||||
*outptr++ = *inptr;
|
*outptr++ = *inptr;
|
||||||
inptr++;
|
inptr++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
g_mime_filter_set_size (filter, inlen + 1, FALSE);
|
g_mime_filter_set_size (filter, inlen + 1, false);
|
||||||
|
|
||||||
outptr = filter->outbuf;
|
outptr = filter->outbuf;
|
||||||
while (inptr < inend) {
|
while (inptr < inend) {
|
||||||
if (reply->saw_nl) {
|
if (reply->saw_nl) {
|
||||||
if (*inptr == '>')
|
if (*inptr == '>')
|
||||||
reply->saw_angle = TRUE;
|
reply->saw_angle = true;
|
||||||
else
|
else
|
||||||
*outptr++ = *inptr;
|
*outptr++ = *inptr;
|
||||||
reply->saw_nl = FALSE;
|
reply->saw_nl = false;
|
||||||
} else if (reply->saw_angle) {
|
} else if (reply->saw_angle) {
|
||||||
if (*inptr == ' ')
|
if (*inptr == ' ')
|
||||||
;
|
;
|
||||||
else
|
else
|
||||||
*outptr++ = *inptr;
|
*outptr++ = *inptr;
|
||||||
reply->saw_angle = FALSE;
|
reply->saw_angle = false;
|
||||||
} else if (*inptr != '\r') {
|
} else if (*inptr != '\r') {
|
||||||
if (*inptr == '\n')
|
if (*inptr == '\n')
|
||||||
reply->saw_nl = TRUE;
|
reply->saw_nl = true;
|
||||||
*outptr++ = *inptr;
|
*outptr++ = *inptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,19 +181,19 @@ filter_reset (GMimeFilter *filter)
|
||||||
{
|
{
|
||||||
GMimeFilterReply *reply = (GMimeFilterReply *) filter;
|
GMimeFilterReply *reply = (GMimeFilterReply *) filter;
|
||||||
|
|
||||||
reply->saw_nl = TRUE;
|
reply->saw_nl = true;
|
||||||
reply->saw_angle = FALSE;
|
reply->saw_angle = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* g_mime_filter_reply_new:
|
* 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)
|
* @dots: encode/decode dots (as for SMTP)
|
||||||
*
|
*
|
||||||
* Creates a new #GMimeFilterReply filter.
|
* 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
|
* otherwise any lines starting with "> " will have that removed
|
||||||
*
|
*
|
||||||
* Returns: a new #GMimeFilterReply filter.
|
* Returns: a new #GMimeFilterReply filter.
|
||||||
|
|
10
mime-node.c
10
mime-node.c
|
@ -112,7 +112,7 @@ mime_node_open (const void *ctx, notmuch_message_t *message,
|
||||||
status = NOTMUCH_STATUS_OUT_OF_MEMORY;
|
status = NOTMUCH_STATUS_OUT_OF_MEMORY;
|
||||||
goto DONE;
|
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);
|
mctx->parser = g_mime_parser_new_with_stream (mctx->stream);
|
||||||
if (!mctx->parser) {
|
if (!mctx->parser) {
|
||||||
|
@ -175,7 +175,7 @@ node_verify (mime_node_t *node, GMimeObject *part,
|
||||||
{
|
{
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
|
|
||||||
node->verify_attempted = TRUE;
|
node->verify_attempted = true;
|
||||||
node->sig_list = g_mime_multipart_signed_verify
|
node->sig_list = g_mime_multipart_signed_verify
|
||||||
(GMIME_MULTIPART_SIGNED (part), cryptoctx, &err);
|
(GMIME_MULTIPART_SIGNED (part), cryptoctx, &err);
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ node_decrypt_and_verify (mime_node_t *node, GMimeObject *part,
|
||||||
GMimeDecryptResult *decrypt_result = NULL;
|
GMimeDecryptResult *decrypt_result = NULL;
|
||||||
GMimeMultipartEncrypted *encrypteddata = GMIME_MULTIPART_ENCRYPTED (part);
|
GMimeMultipartEncrypted *encrypteddata = GMIME_MULTIPART_ENCRYPTED (part);
|
||||||
|
|
||||||
node->decrypt_attempted = TRUE;
|
node->decrypt_attempted = true;
|
||||||
node->decrypted_child = g_mime_multipart_encrypted_decrypt
|
node->decrypted_child = g_mime_multipart_encrypted_decrypt
|
||||||
(encrypteddata, cryptoctx, &decrypt_result, &err);
|
(encrypteddata, cryptoctx, &decrypt_result, &err);
|
||||||
if (! node->decrypted_child) {
|
if (! node->decrypted_child) {
|
||||||
|
@ -207,8 +207,8 @@ node_decrypt_and_verify (mime_node_t *node, GMimeObject *part,
|
||||||
goto DONE;
|
goto DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
node->decrypt_success = TRUE;
|
node->decrypt_success = true;
|
||||||
node->verify_attempted = TRUE;
|
node->verify_attempted = true;
|
||||||
|
|
||||||
/* This may be NULL if the part is not signed. */
|
/* This may be NULL if the part is not signed. */
|
||||||
node->sig_list = g_mime_decrypt_result_get_signatures (decrypt_result);
|
node->sig_list = g_mime_decrypt_result_get_signatures (decrypt_result);
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#ifndef _GNU_SOURCE
|
#ifndef _GNU_SOURCE
|
||||||
#define _GNU_SOURCE /* for getline */
|
#define _GNU_SOURCE /* for getline */
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sysexits.h>
|
#include <sysexits.h>
|
||||||
|
|
||||||
|
@ -72,8 +73,8 @@ typedef struct notmuch_show_format {
|
||||||
} notmuch_show_format_t;
|
} notmuch_show_format_t;
|
||||||
|
|
||||||
typedef struct notmuch_crypto {
|
typedef struct notmuch_crypto {
|
||||||
notmuch_bool_t verify;
|
bool verify;
|
||||||
notmuch_bool_t decrypt;
|
bool decrypt;
|
||||||
#if (GMIME_MAJOR_VERSION < 3)
|
#if (GMIME_MAJOR_VERSION < 3)
|
||||||
notmuch_crypto_context_t* gpgctx;
|
notmuch_crypto_context_t* gpgctx;
|
||||||
notmuch_crypto_context_t* pkcs7ctx;
|
notmuch_crypto_context_t* pkcs7ctx;
|
||||||
|
@ -82,12 +83,12 @@ typedef struct notmuch_crypto {
|
||||||
} notmuch_crypto_t;
|
} notmuch_crypto_t;
|
||||||
|
|
||||||
typedef struct notmuch_show_params {
|
typedef struct notmuch_show_params {
|
||||||
notmuch_bool_t entire_thread;
|
bool entire_thread;
|
||||||
notmuch_bool_t omit_excluded;
|
bool omit_excluded;
|
||||||
notmuch_bool_t output_body;
|
bool output_body;
|
||||||
int part;
|
int part;
|
||||||
notmuch_crypto_t crypto;
|
notmuch_crypto_t crypto;
|
||||||
notmuch_bool_t include_html;
|
bool include_html;
|
||||||
GMimeStream *out_stream;
|
GMimeStream *out_stream;
|
||||||
} notmuch_show_params_t;
|
} notmuch_show_params_t;
|
||||||
|
|
||||||
|
@ -247,12 +248,12 @@ show_one_part (const char *filename, int part);
|
||||||
|
|
||||||
void
|
void
|
||||||
format_part_sprinter (const void *ctx, struct sprinter *sp, mime_node_t *node,
|
format_part_sprinter (const void *ctx, struct sprinter *sp, mime_node_t *node,
|
||||||
notmuch_bool_t output_body,
|
bool output_body,
|
||||||
notmuch_bool_t include_html);
|
bool include_html);
|
||||||
|
|
||||||
void
|
void
|
||||||
format_headers_sprinter (struct sprinter *sp, GMimeMessage *message,
|
format_headers_sprinter (struct sprinter *sp, GMimeMessage *message,
|
||||||
notmuch_bool_t reply);
|
bool reply);
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NOTMUCH_SHOW_TEXT_PART_REPLY = 1 << 0,
|
NOTMUCH_SHOW_TEXT_PART_REPLY = 1 << 0,
|
||||||
|
@ -286,7 +287,7 @@ notmuch_config_close (notmuch_config_t *config);
|
||||||
int
|
int
|
||||||
notmuch_config_save (notmuch_config_t *config);
|
notmuch_config_save (notmuch_config_t *config);
|
||||||
|
|
||||||
notmuch_bool_t
|
bool
|
||||||
notmuch_config_is_new (notmuch_config_t *config);
|
notmuch_config_is_new (notmuch_config_t *config);
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
|
@ -345,12 +346,12 @@ notmuch_config_set_new_ignore (notmuch_config_t *config,
|
||||||
const char *new_ignore[],
|
const char *new_ignore[],
|
||||||
size_t length);
|
size_t length);
|
||||||
|
|
||||||
notmuch_bool_t
|
bool
|
||||||
notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config);
|
notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config);
|
||||||
|
|
||||||
void
|
void
|
||||||
notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config,
|
notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config,
|
||||||
notmuch_bool_t synchronize_flags);
|
bool synchronize_flags);
|
||||||
|
|
||||||
const char **
|
const char **
|
||||||
notmuch_config_get_search_exclude_tags (notmuch_config_t *config, size_t *length);
|
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
|
int
|
||||||
notmuch_run_hook (const char *db_path, const char *hook);
|
notmuch_run_hook (const char *db_path, const char *hook);
|
||||||
|
|
||||||
notmuch_bool_t
|
bool
|
||||||
debugger_is_active (void);
|
debugger_is_active (void);
|
||||||
|
|
||||||
/* mime-node.c */
|
/* mime-node.c */
|
||||||
|
@ -406,14 +407,14 @@ struct mime_node {
|
||||||
int part_num;
|
int part_num;
|
||||||
|
|
||||||
/* True if decryption of this part was attempted. */
|
/* 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
|
/* True if decryption of this part's child succeeded. In this
|
||||||
* case, the decrypted part is substituted for the second child of
|
* case, the decrypted part is substituted for the second child of
|
||||||
* this part (which would usually be the encrypted data). */
|
* 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. */
|
/* 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
|
/* The list of signatures for signed or encrypted containers. If
|
||||||
* there are no signatures, this will be NULL. */
|
* there are no signatures, this will be NULL. */
|
||||||
|
@ -487,7 +488,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
|
||||||
const char *query_str,
|
const char *query_str,
|
||||||
dump_format_t output_format,
|
dump_format_t output_format,
|
||||||
dump_include_t include,
|
dump_include_t include,
|
||||||
notmuch_bool_t gzip_output);
|
bool gzip_output);
|
||||||
|
|
||||||
/* If status is non-zero (i.e. error) print appropriate
|
/* If status is non-zero (i.e. error) print appropriate
|
||||||
messages to stderr.
|
messages to stderr.
|
||||||
|
|
|
@ -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 *path = notmuch_config_get_database_path (config);
|
||||||
const char *backup_path = NULL;
|
const char *backup_path = NULL;
|
||||||
notmuch_status_t ret;
|
notmuch_status_t ret;
|
||||||
notmuch_bool_t quiet = FALSE;
|
bool quiet = false;
|
||||||
int opt_index;
|
int opt_index;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
|
|
|
@ -122,7 +122,7 @@ static const char crypto_config_comment[] =
|
||||||
struct _notmuch_config {
|
struct _notmuch_config {
|
||||||
char *filename;
|
char *filename;
|
||||||
GKeyFile *key_file;
|
GKeyFile *key_file;
|
||||||
notmuch_bool_t is_new;
|
bool is_new;
|
||||||
|
|
||||||
char *database_path;
|
char *database_path;
|
||||||
char *crypto_gpg_path;
|
char *crypto_gpg_path;
|
||||||
|
@ -134,7 +134,7 @@ struct _notmuch_config {
|
||||||
size_t new_tags_length;
|
size_t new_tags_length;
|
||||||
const char **new_ignore;
|
const char **new_ignore;
|
||||||
size_t new_ignore_length;
|
size_t new_ignore_length;
|
||||||
notmuch_bool_t maildir_synchronize_flags;
|
bool maildir_synchronize_flags;
|
||||||
const char **search_exclude_tags;
|
const char **search_exclude_tags;
|
||||||
size_t search_exclude_tags_length;
|
size_t search_exclude_tags_length;
|
||||||
};
|
};
|
||||||
|
@ -212,8 +212,8 @@ get_username_from_passwd_file (void *ctx)
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
get_config_from_file (notmuch_config_t *config, notmuch_bool_t create_new)
|
get_config_from_file (notmuch_config_t *config, bool create_new)
|
||||||
{
|
{
|
||||||
#define BUF_SIZE 4096
|
#define BUF_SIZE 4096
|
||||||
char *config_str = NULL;
|
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;
|
int config_bufsize = BUF_SIZE;
|
||||||
size_t len;
|
size_t len;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
notmuch_bool_t ret = FALSE;
|
bool ret = false;
|
||||||
|
|
||||||
FILE *fp = fopen(config->filename, "r");
|
FILE *fp = fopen(config->filename, "r");
|
||||||
if (fp == NULL) {
|
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.
|
* default configuration file in the case of FILE NOT FOUND.
|
||||||
*/
|
*/
|
||||||
if (create_new) {
|
if (create_new) {
|
||||||
config->is_new = TRUE;
|
config->is_new = true;
|
||||||
ret = TRUE;
|
ret = true;
|
||||||
} else {
|
} else {
|
||||||
fprintf (stderr, "Configuration file %s not found.\n"
|
fprintf (stderr, "Configuration file %s not found.\n"
|
||||||
"Try running 'notmuch setup' to create a configuration.\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,
|
if (g_key_file_load_from_data (config->key_file, config_str, config_len,
|
||||||
G_KEY_FILE_KEEP_COMMENTS, &error)) {
|
G_KEY_FILE_KEEP_COMMENTS, &error)) {
|
||||||
ret = TRUE;
|
ret = true;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,7 +352,7 @@ notmuch_config_open (void *ctx,
|
||||||
talloc_set_destructor (config, notmuch_config_destructor);
|
talloc_set_destructor (config, notmuch_config_destructor);
|
||||||
|
|
||||||
/* non-zero defaults */
|
/* non-zero defaults */
|
||||||
config->maildir_synchronize_flags = TRUE;
|
config->maildir_synchronize_flags = true;
|
||||||
|
|
||||||
if (filename) {
|
if (filename) {
|
||||||
config->filename = talloc_strdup (config, filename);
|
config->filename = talloc_strdup (config, filename);
|
||||||
|
@ -366,7 +366,7 @@ notmuch_config_open (void *ctx,
|
||||||
config->key_file = g_key_file_new ();
|
config->key_file = g_key_file_new ();
|
||||||
|
|
||||||
if (config_mode & NOTMUCH_CONFIG_OPEN) {
|
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)) {
|
if (! get_config_from_file (config, create_new)) {
|
||||||
talloc_free (config);
|
talloc_free (config);
|
||||||
|
@ -466,7 +466,7 @@ notmuch_config_open (void *ctx,
|
||||||
g_key_file_get_boolean (config->key_file,
|
g_key_file_get_boolean (config->key_file,
|
||||||
"maildir", "synchronize_flags", &error);
|
"maildir", "synchronize_flags", &error);
|
||||||
if (error) {
|
if (error) {
|
||||||
notmuch_config_set_maildir_synchronize_flags (config, TRUE);
|
notmuch_config_set_maildir_synchronize_flags (config, true);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -579,7 +579,7 @@ notmuch_config_save (notmuch_config_t *config)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch_bool_t
|
bool
|
||||||
notmuch_config_is_new (notmuch_config_t *config)
|
notmuch_config_is_new (notmuch_config_t *config)
|
||||||
{
|
{
|
||||||
return config->is_new;
|
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)
|
notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config)
|
||||||
{
|
{
|
||||||
return config->maildir_synchronize_flags;
|
return config->maildir_synchronize_flags;
|
||||||
|
@ -1094,7 +1094,7 @@ notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config)
|
||||||
|
|
||||||
void
|
void
|
||||||
notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config,
|
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,
|
g_key_file_set_boolean (config->key_file,
|
||||||
"maildir", "synchronize_flags", synchronize_flags);
|
"maildir", "synchronize_flags", synchronize_flags);
|
||||||
|
|
|
@ -29,8 +29,8 @@ enum {
|
||||||
|
|
||||||
/* The following is to allow future options to be added more easily */
|
/* The following is to allow future options to be added more easily */
|
||||||
enum {
|
enum {
|
||||||
EXCLUDE_TRUE,
|
EXCLUDE_true,
|
||||||
EXCLUDE_FALSE,
|
EXCLUDE_false,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Return the number of files matching the query, or -1 for an error */
|
/* 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;
|
char *query_str;
|
||||||
int opt_index;
|
int opt_index;
|
||||||
int output = OUTPUT_MESSAGES;
|
int output = OUTPUT_MESSAGES;
|
||||||
int exclude = EXCLUDE_TRUE;
|
int exclude = EXCLUDE_true;
|
||||||
const char **search_exclude_tags = NULL;
|
const char **search_exclude_tags = NULL;
|
||||||
size_t search_exclude_tags_length = 0;
|
size_t search_exclude_tags_length = 0;
|
||||||
notmuch_bool_t batch = FALSE;
|
bool batch = false;
|
||||||
notmuch_bool_t print_lastmod = FALSE;
|
bool print_lastmod = false;
|
||||||
FILE *input = stdin;
|
FILE *input = stdin;
|
||||||
const char *input_file_name = NULL;
|
const char *input_file_name = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -176,8 +176,8 @@ notmuch_count_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
{ "files", OUTPUT_FILES },
|
{ "files", OUTPUT_FILES },
|
||||||
{ 0, 0 } } },
|
{ 0, 0 } } },
|
||||||
{ .opt_keyword = &exclude, .name = "exclude", .keywords =
|
{ .opt_keyword = &exclude, .name = "exclude", .keywords =
|
||||||
(notmuch_keyword_t []){ { "true", EXCLUDE_TRUE },
|
(notmuch_keyword_t []){ { "true", EXCLUDE_true },
|
||||||
{ "false", EXCLUDE_FALSE },
|
{ "false", EXCLUDE_false },
|
||||||
{ 0, 0 } } },
|
{ 0, 0 } } },
|
||||||
{ .opt_bool = &print_lastmod, .name = "lastmod" },
|
{ .opt_bool = &print_lastmod, .name = "lastmod" },
|
||||||
{ .opt_bool = &batch, .name = "batch" },
|
{ .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]);
|
notmuch_process_shared_options (argv[0]);
|
||||||
|
|
||||||
if (input_file_name) {
|
if (input_file_name) {
|
||||||
batch = TRUE;
|
batch = true;
|
||||||
input = fopen (input_file_name, "r");
|
input = fopen (input_file_name, "r");
|
||||||
if (input == NULL) {
|
if (input == NULL) {
|
||||||
fprintf (stderr, "Error opening %s for reading: %s\n",
|
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;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exclude == EXCLUDE_TRUE) {
|
if (exclude == EXCLUDE_true) {
|
||||||
search_exclude_tags = notmuch_config_get_search_exclude_tags
|
search_exclude_tags = notmuch_config_get_search_exclude_tags
|
||||||
(config, &search_exclude_tags_length);
|
(config, &search_exclude_tags_length);
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ dump_properties_message (void *ctx,
|
||||||
{
|
{
|
||||||
const char *message_id;
|
const char *message_id;
|
||||||
notmuch_message_properties_t *list;
|
notmuch_message_properties_t *list;
|
||||||
notmuch_bool_t first = TRUE;
|
bool first = true;
|
||||||
|
|
||||||
message_id = notmuch_message_get_message_id (message);
|
message_id = notmuch_message_get_message_id (message);
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ dump_properties_message (void *ctx,
|
||||||
return 0;
|
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)) {
|
notmuch_message_properties_valid (list); notmuch_message_properties_move_to_next (list)) {
|
||||||
const char *key, *val;
|
const char *key, *val;
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ dump_properties_message (void *ctx,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
gzprintf (output, "#= %s", *buffer_p);
|
gzprintf (output, "#= %s", *buffer_p);
|
||||||
first = FALSE;
|
first = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
key = notmuch_message_properties_key (list);
|
key = notmuch_message_properties_key (list);
|
||||||
|
@ -277,7 +277,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
|
||||||
const char *query_str,
|
const char *query_str,
|
||||||
dump_format_t output_format,
|
dump_format_t output_format,
|
||||||
dump_include_t include,
|
dump_include_t include,
|
||||||
notmuch_bool_t gzip_output)
|
bool gzip_output)
|
||||||
{
|
{
|
||||||
gzFile output = NULL;
|
gzFile output = NULL;
|
||||||
const char *mode = gzip_output ? "w9" : "wT";
|
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 output_format = DUMP_FORMAT_BATCH_TAG;
|
||||||
int include = 0;
|
int include = 0;
|
||||||
notmuch_bool_t gzip_output = 0;
|
bool gzip_output = 0;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
{ .opt_keyword = &output_format, .name = "format", .keywords =
|
{ .opt_keyword = &output_format, .name = "format", .keywords =
|
||||||
|
|
|
@ -65,7 +65,7 @@ safe_gethostname (char *hostname, size_t len)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Call fsync() on a directory path. */
|
/* Call fsync() on a directory path. */
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
sync_dir (const char *dir)
|
sync_dir (const char *dir)
|
||||||
{
|
{
|
||||||
int fd, r;
|
int fd, r;
|
||||||
|
@ -73,7 +73,7 @@ sync_dir (const char *dir)
|
||||||
fd = open (dir, O_RDONLY);
|
fd = open (dir, O_RDONLY);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
fprintf (stderr, "Error: open %s: %s\n", dir, strerror (errno));
|
fprintf (stderr, "Error: open %s: %s\n", dir, strerror (errno));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = fsync (fd);
|
r = fsync (fd);
|
||||||
|
@ -88,29 +88,29 @@ sync_dir (const char *dir)
|
||||||
/*
|
/*
|
||||||
* Check the specified folder name does not contain a directory
|
* Check the specified folder name does not contain a directory
|
||||||
* component ".." to prevent writes outside of the Maildir
|
* 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)
|
is_valid_folder_name (const char *folder)
|
||||||
{
|
{
|
||||||
const char *p = folder;
|
const char *p = folder;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if ((p[0] == '.') && (p[1] == '.') && (p[2] == '\0' || p[2] == '/'))
|
if ((p[0] == '.') && (p[1] == '.') && (p[2] == '\0' || p[2] == '/'))
|
||||||
return FALSE;
|
return false;
|
||||||
p = strchr (p, '/');
|
p = strchr (p, '/');
|
||||||
if (!p)
|
if (!p)
|
||||||
return TRUE;
|
return true;
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make the given directory and its parents as necessary, using the
|
* 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.
|
* results are not cleaned up on errors.
|
||||||
*/
|
*/
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
mkdir_recursive (const void *ctx, const char *path, int mode)
|
mkdir_recursive (const void *ctx, const char *path, int mode)
|
||||||
{
|
{
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
@ -123,13 +123,13 @@ mkdir_recursive (const void *ctx, const char *path, int mode)
|
||||||
if (! S_ISDIR (st.st_mode)) {
|
if (! S_ISDIR (st.st_mode)) {
|
||||||
fprintf (stderr, "Error: '%s' is not a directory: %s\n",
|
fprintf (stderr, "Error: '%s' is not a directory: %s\n",
|
||||||
path, strerror (EEXIST));
|
path, strerror (EEXIST));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
} else if (errno != ENOENT) {
|
} else if (errno != ENOENT) {
|
||||||
fprintf (stderr, "Error: stat '%s': %s\n", path, strerror (errno));
|
fprintf (stderr, "Error: stat '%s': %s\n", path, strerror (errno));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mkdir parents, if any */
|
/* 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);
|
parent = talloc_strndup (ctx, path, slash - path);
|
||||||
if (! parent) {
|
if (! parent) {
|
||||||
fprintf (stderr, "Error: %s\n", strerror (ENOMEM));
|
fprintf (stderr, "Error: %s\n", strerror (ENOMEM));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! mkdir_recursive (ctx, parent, mode))
|
if (! mkdir_recursive (ctx, parent, mode))
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mkdir (path, mode)) {
|
if (mkdir (path, mode)) {
|
||||||
fprintf (stderr, "Error: mkdir '%s': %s\n", path, strerror (errno));
|
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
|
* 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.
|
* otherwise. Partial results are not cleaned up on errors.
|
||||||
*/
|
*/
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
maildir_create_folder (const void *ctx, const char *maildir)
|
maildir_create_folder (const void *ctx, const char *maildir)
|
||||||
{
|
{
|
||||||
const char *subdirs[] = { "cur", "new", "tmp" };
|
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]);
|
subdir = talloc_asprintf (ctx, "%s/%s", maildir, subdirs[i]);
|
||||||
if (! subdir) {
|
if (! subdir) {
|
||||||
fprintf (stderr, "Error: %s\n", strerror (ENOMEM));
|
fprintf (stderr, "Error: %s\n", strerror (ENOMEM));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! mkdir_recursive (ctx, subdir, mode))
|
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.
|
* empty input.
|
||||||
*/
|
*/
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
copy_fd (int fdout, int fdin)
|
copy_fd (int fdout, int fdin)
|
||||||
{
|
{
|
||||||
notmuch_bool_t empty = TRUE;
|
bool empty = true;
|
||||||
|
|
||||||
while (! interrupted) {
|
while (! interrupted) {
|
||||||
ssize_t remain;
|
ssize_t remain;
|
||||||
|
@ -262,7 +262,7 @@ copy_fd (int fdout, int fdin)
|
||||||
continue;
|
continue;
|
||||||
fprintf (stderr, "Error: reading from standard input: %s\n",
|
fprintf (stderr, "Error: reading from standard input: %s\n",
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = buf;
|
p = buf;
|
||||||
|
@ -273,11 +273,11 @@ copy_fd (int fdout, int fdin)
|
||||||
if (written <= 0) {
|
if (written <= 0) {
|
||||||
fprintf (stderr, "Error: writing to temporary file: %s",
|
fprintf (stderr, "Error: writing to temporary file: %s",
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
p += written;
|
p += written;
|
||||||
remain -= written;
|
remain -= written;
|
||||||
empty = FALSE;
|
empty = false;
|
||||||
} while (remain > 0);
|
} while (remain > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -367,19 +367,19 @@ FAIL:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add the specified message file to the notmuch database, applying
|
* 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
|
* synchronized to maildir flags (which may result in message file
|
||||||
* rename).
|
* rename).
|
||||||
*
|
*
|
||||||
* Return NOTMUCH_STATUS_SUCCESS on success, errors otherwise. If keep
|
* 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
|
* success status is returned; otherwise such errors cause the message
|
||||||
* to be removed from the database. Failure to add the message to the
|
* to be removed from the database. Failure to add the message to the
|
||||||
* database results in error status regardless of keep.
|
* database results in error status regardless of keep.
|
||||||
*/
|
*/
|
||||||
static notmuch_status_t
|
static notmuch_status_t
|
||||||
add_file (notmuch_database_t *notmuch, const char *path, tag_op_list_t *tag_ops,
|
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_message_t *message;
|
||||||
notmuch_status_t status;
|
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;
|
tag_op_list_t *tag_ops;
|
||||||
char *query_string = NULL;
|
char *query_string = NULL;
|
||||||
const char *folder = "";
|
const char *folder = "";
|
||||||
notmuch_bool_t create_folder = FALSE;
|
bool create_folder = false;
|
||||||
notmuch_bool_t keep = FALSE;
|
bool keep = false;
|
||||||
notmuch_bool_t no_hooks = FALSE;
|
bool no_hooks = false;
|
||||||
notmuch_bool_t synchronize_flags;
|
bool synchronize_flags;
|
||||||
char *maildir;
|
char *maildir;
|
||||||
char *newpath;
|
char *newpath;
|
||||||
int opt_index;
|
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++) {
|
for (i = 0; i < new_tags_length; i++) {
|
||||||
const char *error_msg;
|
const char *error_msg;
|
||||||
|
|
||||||
error_msg = illegal_tag (new_tags[i], FALSE);
|
error_msg = illegal_tag (new_tags[i], false);
|
||||||
if (error_msg) {
|
if (error_msg) {
|
||||||
fprintf (stderr, "Error: tag '%s' in new.tags: %s\n",
|
fprintf (stderr, "Error: tag '%s' in new.tags: %s\n",
|
||||||
new_tags[i], error_msg);
|
new_tags[i], error_msg);
|
||||||
return EXIT_FAILURE;
|
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;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ enum verbosity {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int output_is_a_tty;
|
int output_is_a_tty;
|
||||||
enum verbosity verbosity;
|
enum verbosity verbosity;
|
||||||
notmuch_bool_t debug;
|
bool debug;
|
||||||
const char **new_tags;
|
const char **new_tags;
|
||||||
size_t new_tags_length;
|
size_t new_tags_length;
|
||||||
const char **new_ignore;
|
const char **new_ignore;
|
||||||
|
@ -60,7 +60,7 @@ typedef struct {
|
||||||
_filename_list_t *removed_directories;
|
_filename_list_t *removed_directories;
|
||||||
_filename_list_t *directory_mtimes;
|
_filename_list_t *directory_mtimes;
|
||||||
|
|
||||||
notmuch_bool_t synchronize_flags;
|
bool synchronize_flags;
|
||||||
} add_files_state_t;
|
} add_files_state_t;
|
||||||
|
|
||||||
static volatile sig_atomic_t do_print_progress = 0;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
_special_directory (const char *entry)
|
_special_directory (const char *entry)
|
||||||
{
|
{
|
||||||
return strcmp (entry, ".") == 0 || strcmp (entry, "..") == 0;
|
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.
|
/* 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)
|
_entry_in_ignore_list (const char *entry, add_files_state_t *state)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < state->new_ignore_length; i++)
|
for (i = 0; i < state->new_ignore_length; i++)
|
||||||
if (strcmp (entry, state->new_ignore[i]) == 0)
|
if (strcmp (entry, state->new_ignore[i]) == 0)
|
||||||
return TRUE;
|
return true;
|
||||||
|
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add a single file to the database. */
|
/* Add a single file to the database. */
|
||||||
|
@ -376,7 +376,7 @@ add_files (notmuch_database_t *notmuch,
|
||||||
notmuch_filenames_t *db_subdirs = NULL;
|
notmuch_filenames_t *db_subdirs = NULL;
|
||||||
time_t stat_time;
|
time_t stat_time;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
notmuch_bool_t is_maildir;
|
bool is_maildir;
|
||||||
|
|
||||||
if (stat (path, &st)) {
|
if (stat (path, &st)) {
|
||||||
fprintf (stderr, "Error reading directory %s: %s\n",
|
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);
|
status = notmuch_database_remove_message (notmuch, path);
|
||||||
if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) {
|
if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) {
|
||||||
add_files_state->renamed_messages++;
|
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);
|
notmuch_message_maildir_flags_to_tags (message);
|
||||||
status = NOTMUCH_STATUS_SUCCESS;
|
status = NOTMUCH_STATUS_SUCCESS;
|
||||||
} else if (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;
|
notmuch_database_t *notmuch;
|
||||||
add_files_state_t add_files_state = {
|
add_files_state_t add_files_state = {
|
||||||
.verbosity = VERBOSITY_NORMAL,
|
.verbosity = VERBOSITY_NORMAL,
|
||||||
.debug = FALSE,
|
.debug = false,
|
||||||
.output_is_a_tty = isatty (fileno (stdout)),
|
.output_is_a_tty = isatty (fileno (stdout)),
|
||||||
};
|
};
|
||||||
struct timeval tv_start;
|
struct timeval tv_start;
|
||||||
|
@ -953,9 +953,9 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
_filename_node_t *f;
|
_filename_node_t *f;
|
||||||
int opt_index;
|
int opt_index;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
notmuch_bool_t timer_is_active = FALSE;
|
bool timer_is_active = false;
|
||||||
notmuch_bool_t no_hooks = FALSE;
|
bool no_hooks = false;
|
||||||
notmuch_bool_t quiet = FALSE, verbose = FALSE;
|
bool quiet = false, verbose = false;
|
||||||
notmuch_status_t status;
|
notmuch_status_t status;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
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++) {
|
for (i = 0; i < add_files_state.new_tags_length; i++) {
|
||||||
const char *error_msg;
|
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) {
|
if (error_msg) {
|
||||||
fprintf (stderr, "Error: tag '%s' in new.tags: %s\n",
|
fprintf (stderr, "Error: tag '%s' in new.tags: %s\n",
|
||||||
add_files_state.new_tags[i], error_msg);
|
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, "",
|
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.");
|
fprintf (stderr, "Backup failed. Aborting upgrade.");
|
||||||
return EXIT_FAILURE;
|
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 &&
|
if (add_files_state.verbosity == VERBOSITY_NORMAL &&
|
||||||
add_files_state.output_is_a_tty && ! debugger_is_active ()) {
|
add_files_state.output_is_a_tty && ! debugger_is_active ()) {
|
||||||
setup_progress_printing_timer ();
|
setup_progress_printing_timer ();
|
||||||
timer_is_active = TRUE;
|
timer_is_active = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = add_files (notmuch, db_path, &add_files_state);
|
ret = add_files (notmuch, db_path, &add_files_state);
|
||||||
|
|
|
@ -93,7 +93,7 @@ typedef enum {
|
||||||
} address_match_t;
|
} address_match_t;
|
||||||
|
|
||||||
/* Match given string against given address according to mode. */
|
/* 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)
|
match_address (const char *str, const char *address, address_match_t mode)
|
||||||
{
|
{
|
||||||
switch (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 strcasecmp (address, str) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Match given string against user's configured "primary" and "other"
|
/* 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
|
/* Is the given address configured as one of the user's "primary" or
|
||||||
* "other" addresses. */
|
* "other" addresses. */
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
address_is_users (const char *address, notmuch_config_t *config)
|
address_is_users (const char *address, notmuch_config_t *config)
|
||||||
{
|
{
|
||||||
return address_match (address, config, STRING_IS_USER_ADDRESS) != NULL;
|
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
|
/* Does the address in the Reply-To header of 'message' already appear
|
||||||
* in either the 'To' or 'Cc' header of the message?
|
* in either the 'To' or 'Cc' header of the message?
|
||||||
*/
|
*/
|
||||||
static notmuch_bool_t
|
static bool
|
||||||
reply_to_header_is_redundant (GMimeMessage *message,
|
reply_to_header_is_redundant (GMimeMessage *message,
|
||||||
InternetAddressList *reply_to_list)
|
InternetAddressList *reply_to_list)
|
||||||
{
|
{
|
||||||
|
@ -229,7 +229,7 @@ reply_to_header_is_redundant (GMimeMessage *message,
|
||||||
InternetAddress *address;
|
InternetAddress *address;
|
||||||
InternetAddressMailbox *mailbox;
|
InternetAddressMailbox *mailbox;
|
||||||
InternetAddressList *recipients;
|
InternetAddressList *recipients;
|
||||||
notmuch_bool_t ret = FALSE;
|
bool ret = false;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (reply_to_list == NULL ||
|
if (reply_to_list == NULL ||
|
||||||
|
@ -253,7 +253,7 @@ reply_to_header_is_redundant (GMimeMessage *message,
|
||||||
mailbox = INTERNET_ADDRESS_MAILBOX (address);
|
mailbox = INTERNET_ADDRESS_MAILBOX (address);
|
||||||
addr = internet_address_mailbox_get_addr (mailbox);
|
addr = internet_address_mailbox_get_addr (mailbox);
|
||||||
if (strcmp (addr, reply_to) == 0) {
|
if (strcmp (addr, reply_to) == 0) {
|
||||||
ret = TRUE;
|
ret = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -323,7 +323,7 @@ static const char *
|
||||||
add_recipients_from_message (GMimeMessage *reply,
|
add_recipients_from_message (GMimeMessage *reply,
|
||||||
notmuch_config_t *config,
|
notmuch_config_t *config,
|
||||||
GMimeMessage *message,
|
GMimeMessage *message,
|
||||||
notmuch_bool_t reply_all)
|
bool reply_all)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* There is a memory leak here with gmime-2.6 because get_sender
|
/* 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_config_t *config,
|
||||||
notmuch_message_t *message,
|
notmuch_message_t *message,
|
||||||
GMimeMessage *mime_message,
|
GMimeMessage *mime_message,
|
||||||
notmuch_bool_t reply_all,
|
bool reply_all,
|
||||||
notmuch_bool_t limited)
|
bool limited)
|
||||||
{
|
{
|
||||||
const char *subject, *from_addr = NULL;
|
const char *subject, *from_addr = NULL;
|
||||||
const char *in_reply_to, *orig_references, *references;
|
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_query_t *query,
|
||||||
notmuch_show_params_t *params,
|
notmuch_show_params_t *params,
|
||||||
int format,
|
int format,
|
||||||
notmuch_bool_t reply_all)
|
bool reply_all)
|
||||||
{
|
{
|
||||||
GMimeMessage *reply;
|
GMimeMessage *reply;
|
||||||
mime_node_t *node;
|
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 */
|
/* The headers of the reply message we've created */
|
||||||
sp->map_key (sp, "reply-headers");
|
sp->map_key (sp, "reply-headers");
|
||||||
format_headers_sprinter (sp, reply, TRUE);
|
format_headers_sprinter (sp, reply, true);
|
||||||
|
|
||||||
/* Start the original */
|
/* Start the original */
|
||||||
sp->map_key (sp, "original");
|
sp->map_key (sp, "original");
|
||||||
format_part_sprinter (config, sp, node, TRUE, FALSE);
|
format_part_sprinter (config, sp, node, true, false);
|
||||||
|
|
||||||
/* End */
|
/* End */
|
||||||
sp->end (sp);
|
sp->end (sp);
|
||||||
|
@ -702,7 +702,7 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
.part = -1,
|
.part = -1,
|
||||||
};
|
};
|
||||||
int format = FORMAT_DEFAULT;
|
int format = FORMAT_DEFAULT;
|
||||||
int reply_all = TRUE;
|
int reply_all = true;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
{ .opt_keyword = &format, .name = "format", .keywords =
|
{ .opt_keyword = &format, .name = "format", .keywords =
|
||||||
|
@ -713,8 +713,8 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
{ 0, 0 } } },
|
{ 0, 0 } } },
|
||||||
{ .opt_int = ¬much_format_version, .name = "format-version" },
|
{ .opt_int = ¬much_format_version, .name = "format-version" },
|
||||||
{ .opt_keyword = &reply_all, .name = "reply-to", .keywords =
|
{ .opt_keyword = &reply_all, .name = "reply-to", .keywords =
|
||||||
(notmuch_keyword_t []){ { "all", TRUE },
|
(notmuch_keyword_t []){ { "all", true },
|
||||||
{ "sender", FALSE },
|
{ "sender", false },
|
||||||
{ 0, 0 } } },
|
{ 0, 0 } } },
|
||||||
{ .opt_bool = ¶ms.crypto.decrypt, .name = "decrypt" },
|
{ .opt_bool = ¶ms.crypto.decrypt, .name = "decrypt" },
|
||||||
{ .opt_inherit = notmuch_shared_options },
|
{ .opt_inherit = notmuch_shared_options },
|
||||||
|
|
|
@ -211,7 +211,7 @@ parse_sup_line (void *ctx, char *line,
|
||||||
tok_len++;
|
tok_len++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tag_op_list_append (tag_ops, tok, FALSE))
|
if (tag_op_list_append (tag_ops, tok, false))
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ int
|
||||||
notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[])
|
notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
notmuch_database_t *notmuch;
|
notmuch_database_t *notmuch;
|
||||||
notmuch_bool_t accumulate = FALSE;
|
bool accumulate = false;
|
||||||
tag_op_flag_t flags = 0;
|
tag_op_flag_t flags = 0;
|
||||||
tag_op_list_t *tag_ops;
|
tag_op_list_t *tag_ops;
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ do_search_threads (search_context_t *ctx)
|
||||||
int files = notmuch_thread_get_total_files (thread);
|
int files = notmuch_thread_get_total_files (thread);
|
||||||
int total = notmuch_thread_get_total_messages (thread);
|
int total = notmuch_thread_get_total_messages (thread);
|
||||||
const char *relative_date = NULL;
|
const char *relative_date = NULL;
|
||||||
notmuch_bool_t first_tag = TRUE;
|
bool first_tag = true;
|
||||||
|
|
||||||
format->begin_map (format);
|
format->begin_map (format);
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ do_search_threads (search_context_t *ctx)
|
||||||
if (format->is_text_printer) {
|
if (format->is_text_printer) {
|
||||||
/* Special case for the text formatter */
|
/* Special case for the text formatter */
|
||||||
if (first_tag)
|
if (first_tag)
|
||||||
first_tag = FALSE;
|
first_tag = false;
|
||||||
else
|
else
|
||||||
fputc (' ', stdout);
|
fputc (' ', stdout);
|
||||||
fputs (tag, stdout);
|
fputs (tag, stdout);
|
||||||
|
@ -295,9 +295,9 @@ static int mailbox_compare (const void *v1, const void *v2)
|
||||||
return ret;
|
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. */
|
* 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)
|
is_duplicate (const search_context_t *ctx, const char *name, const char *addr)
|
||||||
{
|
{
|
||||||
char *key;
|
char *key;
|
||||||
|
@ -315,12 +315,12 @@ is_duplicate (const search_context_t *ctx, const char *name, const char *addr)
|
||||||
if (l) {
|
if (l) {
|
||||||
mailbox = l->data;
|
mailbox = l->data;
|
||||||
mailbox->count++;
|
mailbox->count++;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mailbox = new_mailbox (ctx->format, name, addr);
|
mailbox = new_mailbox (ctx->format, name, addr);
|
||||||
if (! mailbox)
|
if (! mailbox)
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX: It would be more efficient to prepend to the list, but
|
* 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))
|
if (list != g_list_append (list, mailbox))
|
||||||
INTERNAL_ERROR ("appending to list changed list head\n");
|
INTERNAL_ERROR ("appending to list changed list head\n");
|
||||||
|
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
key = talloc_strdup (ctx->format, addr);
|
key = talloc_strdup (ctx->format, addr);
|
||||||
if (! key)
|
if (! key)
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
mailbox = new_mailbox (ctx->format, name, addr);
|
mailbox = new_mailbox (ctx->format, name, addr);
|
||||||
if (! mailbox)
|
if (! mailbox)
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
list = g_list_append (NULL, mailbox);
|
list = g_list_append (NULL, mailbox);
|
||||||
if (! list)
|
if (! list)
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
g_hash_table_insert (ctx->addresses, key, list);
|
g_hash_table_insert (ctx->addresses, key, list);
|
||||||
|
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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
|
/* name_addr has the name part quoted if necessary. Compare
|
||||||
* 'John Doe <john@doe.com>' vs. '"Doe, John" <john@doe.com>' */
|
* 'John Doe <john@doe.com>' vs. '"Doe, John" <john@doe.com>' */
|
||||||
name_addr = internet_address_to_string (ia, FALSE);
|
name_addr = internet_address_to_string (ia, false);
|
||||||
|
|
||||||
if (format->is_text_printer) {
|
if (format->is_text_printer) {
|
||||||
if (ctx->output & OUTPUT_COUNT) {
|
if (ctx->output & OUTPUT_COUNT) {
|
||||||
|
|
|
@ -187,7 +187,7 @@ notmuch_setup_command (notmuch_config_t *config,
|
||||||
(const char **)
|
(const char **)
|
||||||
other_emails->pdata,
|
other_emails->pdata,
|
||||||
other_emails->len);
|
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]: ",
|
prompt ("Top-level directory of your email archive [%s]: ",
|
||||||
notmuch_config_get_database_path (config));
|
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,
|
notmuch_config_set_new_tags (config, (const char **) tags->pdata,
|
||||||
tags->len);
|
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,
|
(const char **) tags->pdata,
|
||||||
tags->len);
|
tags->len);
|
||||||
|
|
||||||
g_ptr_array_free (tags, TRUE);
|
g_ptr_array_free (tags, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (notmuch_config_save (config))
|
if (notmuch_config_save (config))
|
||||||
|
|
|
@ -196,7 +196,7 @@ _is_from_line (const char *line)
|
||||||
|
|
||||||
void
|
void
|
||||||
format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
|
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
|
/* Any changes to the JSON or S-Expression format should be
|
||||||
* reflected in the file devel/schemata. */
|
* reflected in the file devel/schemata. */
|
||||||
|
@ -283,7 +283,7 @@ show_text_part_content (GMimeObject *part, GMimeStream *stream_out,
|
||||||
return;
|
return;
|
||||||
|
|
||||||
stream_filter = g_mime_stream_filter_new (stream_out);
|
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),
|
g_mime_stream_filter_add(GMIME_STREAM_FILTER (stream_filter),
|
||||||
crlf_filter);
|
crlf_filter);
|
||||||
g_object_unref (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) {
|
if (flags & NOTMUCH_SHOW_TEXT_PART_REPLY) {
|
||||||
GMimeFilter *reply_filter;
|
GMimeFilter *reply_filter;
|
||||||
reply_filter = g_mime_filter_reply_new (TRUE);
|
reply_filter = g_mime_filter_reply_new (true);
|
||||||
if (reply_filter) {
|
if (reply_filter) {
|
||||||
g_mime_stream_filter_add (GMIME_STREAM_FILTER (stream_filter),
|
g_mime_stream_filter_add (GMIME_STREAM_FILTER (stream_filter),
|
||||||
reply_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++) {
|
for (unsigned int i = 0; i < array_map_len; i++) {
|
||||||
if (errors & key_map[i].bit) {
|
if (errors & key_map[i].bit) {
|
||||||
sp->map_key (sp, key_map[i].string);
|
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 ?
|
GMimeObject *meta = node->envelope_part ?
|
||||||
GMIME_OBJECT (node->envelope_part) : node->part;
|
GMIME_OBJECT (node->envelope_part) : node->part;
|
||||||
GMimeContentType *content_type = g_mime_object_get_content_type (meta);
|
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;
|
GMimeStream *stream = params->out_stream;
|
||||||
const char *part_type;
|
const char *part_type;
|
||||||
int i;
|
int i;
|
||||||
|
@ -603,8 +603,8 @@ format_omitted_part_meta_sprinter (sprinter_t *sp, GMimeObject *meta, GMimePart
|
||||||
|
|
||||||
void
|
void
|
||||||
format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node,
|
format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node,
|
||||||
notmuch_bool_t output_body,
|
bool output_body,
|
||||||
notmuch_bool_t include_html)
|
bool include_html)
|
||||||
{
|
{
|
||||||
/* Any changes to the JSON or S-Expression format should be
|
/* Any changes to the JSON or S-Expression format should be
|
||||||
* reflected in the file devel/schemata. */
|
* 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);
|
format_message_sprinter (sp, node->envelope_file);
|
||||||
|
|
||||||
sp->map_key (sp, "headers");
|
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) {
|
if (output_body) {
|
||||||
sp->map_key (sp, "body");
|
sp->map_key (sp, "body");
|
||||||
sp->begin_list (sp);
|
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);
|
||||||
}
|
}
|
||||||
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->begin_map (sp);
|
||||||
|
|
||||||
sp->map_key (sp, "headers");
|
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->map_key (sp, "body");
|
||||||
sp->begin_list (sp);
|
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++)
|
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 */
|
/* Close content structures */
|
||||||
for (i = 0; i < nclose; i++)
|
for (i = 0; i < nclose; i++)
|
||||||
|
@ -898,8 +898,8 @@ show_messages (void *ctx,
|
||||||
notmuch_show_params_t *params)
|
notmuch_show_params_t *params)
|
||||||
{
|
{
|
||||||
notmuch_message_t *message;
|
notmuch_message_t *message;
|
||||||
notmuch_bool_t match;
|
bool match;
|
||||||
notmuch_bool_t excluded;
|
bool excluded;
|
||||||
int next_indent;
|
int next_indent;
|
||||||
notmuch_status_t status, res = NOTMUCH_STATUS_SUCCESS;
|
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;
|
sprinter_t *sprinter;
|
||||||
notmuch_show_params_t params = {
|
notmuch_show_params_t params = {
|
||||||
.part = -1,
|
.part = -1,
|
||||||
.omit_excluded = TRUE,
|
.omit_excluded = true,
|
||||||
.output_body = TRUE,
|
.output_body = true,
|
||||||
};
|
};
|
||||||
int format = NOTMUCH_FORMAT_NOT_SPECIFIED;
|
int format = NOTMUCH_FORMAT_NOT_SPECIFIED;
|
||||||
notmuch_bool_t exclude = TRUE;
|
bool exclude = true;
|
||||||
notmuch_bool_t entire_thread_set = FALSE;
|
bool entire_thread_set = false;
|
||||||
notmuch_bool_t single_message;
|
bool single_message;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
{ .opt_keyword = &format, .name = "format", .keywords =
|
{ .opt_keyword = &format, .name = "format", .keywords =
|
||||||
|
@ -1118,7 +1118,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
|
|
||||||
/* decryption implies verification */
|
/* decryption implies verification */
|
||||||
if (params.crypto.decrypt)
|
if (params.crypto.decrypt)
|
||||||
params.crypto.verify = TRUE;
|
params.crypto.verify = true;
|
||||||
|
|
||||||
/* specifying a part implies single message display */
|
/* specifying a part implies single message display */
|
||||||
single_message = params.part >= 0;
|
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) {
|
} else if (format == NOTMUCH_FORMAT_RAW) {
|
||||||
/* raw format only supports single message display */
|
/* raw format only supports single message display */
|
||||||
single_message = TRUE;
|
single_message = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch_exit_if_unsupported_format ();
|
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. */
|
* format=sexp. */
|
||||||
if (! entire_thread_set &&
|
if (! entire_thread_set &&
|
||||||
(format == NOTMUCH_FORMAT_JSON || format == NOTMUCH_FORMAT_SEXP))
|
(format == NOTMUCH_FORMAT_JSON || format == NOTMUCH_FORMAT_SEXP))
|
||||||
params.entire_thread = TRUE;
|
params.entire_thread = true;
|
||||||
|
|
||||||
if (!params.output_body) {
|
if (!params.output_body) {
|
||||||
if (params.part > 0) {
|
if (params.part > 0) {
|
||||||
fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n");
|
fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n");
|
||||||
params.output_body = TRUE;
|
params.output_body = true;
|
||||||
} else {
|
} else {
|
||||||
if (format != NOTMUCH_FORMAT_JSON && format != NOTMUCH_FORMAT_SEXP)
|
if (format != NOTMUCH_FORMAT_JSON && format != NOTMUCH_FORMAT_SEXP)
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
|
@ -1222,9 +1222,9 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exclude == FALSE) {
|
if (exclude == false) {
|
||||||
notmuch_query_set_omit_excluded (query, FALSE);
|
notmuch_query_set_omit_excluded (query, false);
|
||||||
params.omit_excluded = FALSE;
|
params.omit_excluded = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = do_show (config, query, formatter, sprinter, ¶ms);
|
ret = do_show (config, query, formatter, sprinter, ¶ms);
|
||||||
|
|
|
@ -194,8 +194,8 @@ notmuch_tag_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
notmuch_database_t *notmuch;
|
notmuch_database_t *notmuch;
|
||||||
struct sigaction action;
|
struct sigaction action;
|
||||||
tag_op_flag_t tag_flags = TAG_FLAG_NONE;
|
tag_op_flag_t tag_flags = TAG_FLAG_NONE;
|
||||||
notmuch_bool_t batch = FALSE;
|
bool batch = false;
|
||||||
notmuch_bool_t remove_all = FALSE;
|
bool remove_all = false;
|
||||||
FILE *input = stdin;
|
FILE *input = stdin;
|
||||||
const char *input_file_name = NULL;
|
const char *input_file_name = NULL;
|
||||||
int opt_index;
|
int opt_index;
|
||||||
|
@ -223,7 +223,7 @@ notmuch_tag_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
notmuch_process_shared_options (argv[0]);
|
notmuch_process_shared_options (argv[0]);
|
||||||
|
|
||||||
if (input_file_name) {
|
if (input_file_name) {
|
||||||
batch = TRUE;
|
batch = true;
|
||||||
input = fopen (input_file_name, "r");
|
input = fopen (input_file_name, "r");
|
||||||
if (input == NULL) {
|
if (input == NULL) {
|
||||||
fprintf (stderr, "Error opening %s for reading: %s\n",
|
fprintf (stderr, "Error opening %s for reading: %s\n",
|
||||||
|
|
12
notmuch.c
12
notmuch.c
|
@ -46,7 +46,7 @@ notmuch_command (notmuch_config_t *config, int argc, char *argv[]);
|
||||||
static int
|
static int
|
||||||
_help_for (const char *topic);
|
_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 char *notmuch_requested_db_uuid = NULL;
|
||||||
|
|
||||||
const notmuch_opt_desc_t notmuch_shared_options [] = {
|
const notmuch_opt_desc_t notmuch_shared_options [] = {
|
||||||
|
@ -371,13 +371,13 @@ notmuch_command (notmuch_config_t *config,
|
||||||
* is).
|
* is).
|
||||||
*
|
*
|
||||||
* Does not return if the external command is found and
|
* Does not return if the external command is found and
|
||||||
* executed. Return TRUE if external command is not found. Return
|
* executed. Return true if external command is not found. Return
|
||||||
* FALSE on errors.
|
* false on errors.
|
||||||
*/
|
*/
|
||||||
static notmuch_bool_t try_external_command(char *argv[])
|
static bool try_external_command(char *argv[])
|
||||||
{
|
{
|
||||||
char *old_argv0 = argv[0];
|
char *old_argv0 = argv[0];
|
||||||
notmuch_bool_t ret = TRUE;
|
bool ret = true;
|
||||||
|
|
||||||
argv[0] = talloc_asprintf (NULL, "notmuch-%s", old_argv0);
|
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) {
|
if (errno != ENOENT) {
|
||||||
fprintf (stderr, "Error: Running external command '%s' failed: %s\n",
|
fprintf (stderr, "Error: Running external command '%s' failed: %s\n",
|
||||||
argv[0], strerror(errno));
|
argv[0], strerror(errno));
|
||||||
ret = FALSE;
|
ret = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
talloc_free (argv[0]);
|
talloc_free (argv[0]);
|
||||||
|
|
|
@ -13,14 +13,14 @@ struct sprinter_json {
|
||||||
/* A flag to signify that a separator should be inserted in the
|
/* A flag to signify that a separator should be inserted in the
|
||||||
* output as soon as possible.
|
* output as soon as possible.
|
||||||
*/
|
*/
|
||||||
notmuch_bool_t insert_separator;
|
bool insert_separator;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct json_state {
|
struct json_state {
|
||||||
struct json_state *parent;
|
struct json_state *parent;
|
||||||
/* True if nothing has been printed in this aggregate yet.
|
/* True if nothing has been printed in this aggregate yet.
|
||||||
* Suppresses the comma before a value. */
|
* Suppresses the comma before a value. */
|
||||||
notmuch_bool_t first;
|
bool first;
|
||||||
/* The character that closes the current aggregate. */
|
/* The character that closes the current aggregate. */
|
||||||
char close;
|
char close;
|
||||||
};
|
};
|
||||||
|
@ -37,12 +37,12 @@ json_begin_value (struct sprinter *sp)
|
||||||
fputc (',', spj->stream);
|
fputc (',', spj->stream);
|
||||||
if (spj->insert_separator) {
|
if (spj->insert_separator) {
|
||||||
fputc ('\n', spj->stream);
|
fputc ('\n', spj->stream);
|
||||||
spj->insert_separator = FALSE;
|
spj->insert_separator = false;
|
||||||
} else {
|
} else {
|
||||||
fputc (' ', spj->stream);
|
fputc (' ', spj->stream);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
spj->state->first = FALSE;
|
spj->state->first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return spj;
|
return spj;
|
||||||
|
@ -58,7 +58,7 @@ json_begin_aggregate (struct sprinter *sp, char open, char close)
|
||||||
|
|
||||||
fputc (open, spj->stream);
|
fputc (open, spj->stream);
|
||||||
state->parent = spj->state;
|
state->parent = spj->state;
|
||||||
state->first = TRUE;
|
state->first = true;
|
||||||
state->close = close;
|
state->close = close;
|
||||||
spj->state = state;
|
spj->state = state;
|
||||||
}
|
}
|
||||||
|
@ -132,7 +132,7 @@ json_integer (struct sprinter *sp, int val)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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);
|
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);
|
json_string (sp, key);
|
||||||
fputs (": ", spj->stream);
|
fputs (": ", spj->stream);
|
||||||
spj->state->first = TRUE;
|
spj->state->first = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -167,7 +167,7 @@ json_separator (struct sprinter *sp)
|
||||||
{
|
{
|
||||||
struct sprinter_json *spj = (struct sprinter_json *) sp;
|
struct sprinter_json *spj = (struct sprinter_json *) sp;
|
||||||
|
|
||||||
spj->insert_separator = TRUE;
|
spj->insert_separator = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sprinter *
|
struct sprinter *
|
||||||
|
@ -186,7 +186,7 @@ sprinter_json_create (const void *ctx, FILE *stream)
|
||||||
.map_key = json_map_key,
|
.map_key = json_map_key,
|
||||||
.separator = json_separator,
|
.separator = json_separator,
|
||||||
.set_prefix = json_set_prefix,
|
.set_prefix = json_set_prefix,
|
||||||
.is_text_printer = FALSE,
|
.is_text_printer = false,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
struct sprinter_json *res;
|
struct sprinter_json *res;
|
||||||
|
|
|
@ -33,7 +33,7 @@ struct sprinter_sexp {
|
||||||
|
|
||||||
/* A flag to signify that a separator should be inserted in the
|
/* A flag to signify that a separator should be inserted in the
|
||||||
* output as soon as possible. */
|
* output as soon as possible. */
|
||||||
notmuch_bool_t insert_separator;
|
bool insert_separator;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sexp_state {
|
struct sexp_state {
|
||||||
|
@ -41,7 +41,7 @@ struct sexp_state {
|
||||||
|
|
||||||
/* True if nothing has been printed in this aggregate yet.
|
/* True if nothing has been printed in this aggregate yet.
|
||||||
* Suppresses the space before a value. */
|
* 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
|
/* 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->state->first) {
|
||||||
if (sps->insert_separator) {
|
if (sps->insert_separator) {
|
||||||
fputc ('\n', sps->stream);
|
fputc ('\n', sps->stream);
|
||||||
sps->insert_separator = FALSE;
|
sps->insert_separator = false;
|
||||||
} else {
|
} else {
|
||||||
fputc (' ', sps->stream);
|
fputc (' ', sps->stream);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sps->state->first = FALSE;
|
sps->state->first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sps;
|
return sps;
|
||||||
|
@ -76,7 +76,7 @@ sexp_begin_aggregate (struct sprinter *sp)
|
||||||
|
|
||||||
fputc ('(', sps->stream);
|
fputc ('(', sps->stream);
|
||||||
state->parent = sps->state;
|
state->parent = sps->state;
|
||||||
state->first = TRUE;
|
state->first = true;
|
||||||
sps->state = state;
|
sps->state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ sexp_integer (struct sprinter *sp, int val)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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);
|
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;
|
struct sprinter_sexp *sps = (struct sprinter_sexp *) sp;
|
||||||
|
|
||||||
sps->insert_separator = TRUE;
|
sps->insert_separator = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sprinter *
|
struct sprinter *
|
||||||
|
@ -221,7 +221,7 @@ sprinter_sexp_create (const void *ctx, FILE *stream)
|
||||||
.map_key = sexp_map_key,
|
.map_key = sexp_map_key,
|
||||||
.separator = sexp_separator,
|
.separator = sexp_separator,
|
||||||
.set_prefix = sexp_set_prefix,
|
.set_prefix = sexp_set_prefix,
|
||||||
.is_text_printer = FALSE,
|
.is_text_printer = false,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
struct sprinter_sexp *res;
|
struct sprinter_sexp *res;
|
||||||
|
|
|
@ -21,7 +21,7 @@ struct sprinter_text {
|
||||||
/* A flag to indicate if this is the first tag. Used in list of tags
|
/* A flag to indicate if this is the first tag. Used in list of tags
|
||||||
* for summary.
|
* for summary.
|
||||||
*/
|
*/
|
||||||
notmuch_bool_t first_tag;
|
bool first_tag;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -52,7 +52,7 @@ text_integer (struct sprinter *sp, int val)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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;
|
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,
|
.map_key = text_map_key,
|
||||||
.separator = text_separator,
|
.separator = text_separator,
|
||||||
.set_prefix = text_set_prefix,
|
.set_prefix = text_set_prefix,
|
||||||
.is_text_printer = TRUE,
|
.is_text_printer = true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
struct sprinter_text *res;
|
struct sprinter_text *res;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef NOTMUCH_SPRINTER_H
|
#ifndef NOTMUCH_SPRINTER_H
|
||||||
#define NOTMUCH_SPRINTER_H
|
#define NOTMUCH_SPRINTER_H
|
||||||
|
|
||||||
/* Necessary for notmuch_bool_t */
|
/* Necessary for bool */
|
||||||
#include "notmuch-client.h"
|
#include "notmuch-client.h"
|
||||||
|
|
||||||
/* Structure printer interface. This is used to create output
|
/* Structure printer interface. This is used to create output
|
||||||
|
@ -34,7 +34,7 @@ typedef struct sprinter {
|
||||||
void (*string) (struct sprinter *, const char *);
|
void (*string) (struct sprinter *, const char *);
|
||||||
void (*string_len) (struct sprinter *, const char *, size_t);
|
void (*string_len) (struct sprinter *, const char *, size_t);
|
||||||
void (*integer) (struct sprinter *, int);
|
void (*integer) (struct sprinter *, int);
|
||||||
void (*boolean) (struct sprinter *, notmuch_bool_t);
|
void (*boolean) (struct sprinter *, bool);
|
||||||
void (*null) (struct sprinter *);
|
void (*null) (struct sprinter *);
|
||||||
|
|
||||||
/* Print the key of a map's key/value pair. The char * must be UTF-8
|
/* 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.
|
/* True if this is the special-cased plain text printer.
|
||||||
*/
|
*/
|
||||||
notmuch_bool_t is_text_printer;
|
bool is_text_printer;
|
||||||
} sprinter_t;
|
} sprinter_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
24
tag-util.c
24
tag-util.c
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
struct _tag_operation_t {
|
struct _tag_operation_t {
|
||||||
const char *tag;
|
const char *tag;
|
||||||
notmuch_bool_t remove;
|
bool remove;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _tag_op_list_t {
|
struct _tag_op_list_t {
|
||||||
|
@ -35,7 +35,7 @@ line_error (tag_parse_status_t status,
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
illegal_tag (const char *tag, notmuch_bool_t remove)
|
illegal_tag (const char *tag, bool remove)
|
||||||
{
|
{
|
||||||
if (*tag == '\0' && ! remove)
|
if (*tag == '\0' && ! remove)
|
||||||
return "empty tag forbidden";
|
return "empty tag forbidden";
|
||||||
|
@ -84,7 +84,7 @@ parse_tag_line (void *ctx, char *line,
|
||||||
|
|
||||||
/* Parse tags. */
|
/* Parse tags. */
|
||||||
while ((tok = strtok_len (tok + tok_len, " ", &tok_len)) != NULL) {
|
while ((tok = strtok_len (tok + tok_len, " ", &tok_len)) != NULL) {
|
||||||
notmuch_bool_t remove;
|
bool remove;
|
||||||
char *tag;
|
char *tag;
|
||||||
|
|
||||||
/* Optional explicit end of tags marker. */
|
/* 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] != '-')
|
if (argv[i][0] != '+' && argv[i][0] != '-')
|
||||||
break;
|
break;
|
||||||
|
|
||||||
notmuch_bool_t is_remove = argv[i][0] == '-';
|
bool is_remove = argv[i][0] == '-';
|
||||||
const char *msg;
|
const char *msg;
|
||||||
|
|
||||||
msg = illegal_tag (argv[i] + 1, is_remove);
|
msg = illegal_tag (argv[i] + 1, is_remove);
|
||||||
|
@ -215,7 +215,7 @@ makes_changes (notmuch_message_t *message,
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
notmuch_tags_t *tags;
|
notmuch_tags_t *tags;
|
||||||
notmuch_bool_t changes = FALSE;
|
bool changes = false;
|
||||||
|
|
||||||
/* First, do we delete an existing tag? */
|
/* First, do we delete an existing tag? */
|
||||||
for (tags = notmuch_message_get_tags (message);
|
for (tags = notmuch_message_get_tags (message);
|
||||||
|
@ -239,11 +239,11 @@ makes_changes (notmuch_message_t *message,
|
||||||
notmuch_tags_destroy (tags);
|
notmuch_tags_destroy (tags);
|
||||||
|
|
||||||
if (changes)
|
if (changes)
|
||||||
return TRUE;
|
return true;
|
||||||
|
|
||||||
/* Now check for adding new tags */
|
/* Now check for adding new tags */
|
||||||
for (i = 0; i < list->count; i++) {
|
for (i = 0; i < list->count; i++) {
|
||||||
notmuch_bool_t exists = FALSE;
|
bool exists = false;
|
||||||
|
|
||||||
if (list->ops[i].remove)
|
if (list->ops[i].remove)
|
||||||
continue;
|
continue;
|
||||||
|
@ -253,7 +253,7 @@ makes_changes (notmuch_message_t *message,
|
||||||
notmuch_tags_move_to_next (tags)) {
|
notmuch_tags_move_to_next (tags)) {
|
||||||
const char *cur_tag = notmuch_tags_get (tags);
|
const char *cur_tag = notmuch_tags_get (tags);
|
||||||
if (strcmp (cur_tag, list->ops[i].tag) == 0) {
|
if (strcmp (cur_tag, list->ops[i].tag) == 0) {
|
||||||
exists = TRUE;
|
exists = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -264,9 +264,9 @@ makes_changes (notmuch_message_t *message,
|
||||||
* but this is OK from a correctness point of view
|
* but this is OK from a correctness point of view
|
||||||
*/
|
*/
|
||||||
if (! exists)
|
if (! exists)
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ tag_op_list_create (void *ctx)
|
||||||
int
|
int
|
||||||
tag_op_list_append (tag_op_list_t *list,
|
tag_op_list_append (tag_op_list_t *list,
|
||||||
const char *tag,
|
const char *tag,
|
||||||
notmuch_bool_t remove)
|
bool remove)
|
||||||
{
|
{
|
||||||
/* Make room if current array is full. This should be a fairly
|
/* Make room if current array is full. This should be a fairly
|
||||||
* rare case, considering the initial array size.
|
* 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?
|
* 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)
|
tag_op_list_isremove (const tag_op_list_t *list, size_t i)
|
||||||
{
|
{
|
||||||
assert (i < list->count);
|
assert (i < list->count);
|
||||||
|
|
|
@ -99,7 +99,7 @@ parse_tag_command_line (void *ctx, int argc, char **argv,
|
||||||
* explanatory message otherwise.
|
* explanatory message otherwise.
|
||||||
*/
|
*/
|
||||||
const char *
|
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
|
* Create an empty list of tag operations
|
||||||
|
@ -111,14 +111,14 @@ tag_op_list_t *
|
||||||
tag_op_list_create (void *ctx);
|
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.
|
* The list is expanded as necessary.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
tag_op_list_append (tag_op_list_t *list,
|
tag_op_list_append (tag_op_list_t *list,
|
||||||
const char *tag,
|
const char *tag,
|
||||||
notmuch_bool_t remove);
|
bool remove);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Apply a list of tag operations, in order, to a given message.
|
* 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?
|
* 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);
|
tag_op_list_isremove (const tag_op_list_t *list, size_t i);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12,9 +12,9 @@ int main(int argc, char **argv){
|
||||||
const char *pos_arg1=NULL;
|
const char *pos_arg1=NULL;
|
||||||
const char *pos_arg2=NULL;
|
const char *pos_arg2=NULL;
|
||||||
const char *string_val=NULL;
|
const char *string_val=NULL;
|
||||||
notmuch_bool_t bool_val = FALSE;
|
bool bool_val = false;
|
||||||
notmuch_bool_t fl_set = FALSE, int_set = FALSE, bool_set = FALSE,
|
bool fl_set = false, int_set = false, bool_set = false,
|
||||||
kw_set = FALSE, string_set = FALSE, pos1_set = FALSE, pos2_set = FALSE;
|
kw_set = false, string_set = false, pos1_set = false, pos2_set = false;
|
||||||
|
|
||||||
notmuch_opt_desc_t parent_options[] = {
|
notmuch_opt_desc_t parent_options[] = {
|
||||||
{ .opt_flags = &fl_val, .name = "flag", .present = &fl_set, .keywords =
|
{ .opt_flags = &fl_val, .name = "flag", .present = &fl_set, .keywords =
|
||||||
|
|
|
@ -16,7 +16,7 @@ enum direction {
|
||||||
DECODE
|
DECODE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int inplace = FALSE;
|
static bool inplace = false;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
xcode (void *ctx, enum direction dir, char *in, char **buf_p, size_t *size_p)
|
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;
|
int dir = DECODE;
|
||||||
notmuch_bool_t omit_newline = FALSE;
|
bool omit_newline = false;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
{ .opt_keyword = &dir, .name = "direction", .keywords =
|
{ .opt_keyword = &dir, .name = "direction", .keywords =
|
||||||
|
@ -71,7 +71,7 @@ main (int argc, char **argv)
|
||||||
char *buffer = NULL;
|
char *buffer = NULL;
|
||||||
size_t buf_size = 0;
|
size_t buf_size = 0;
|
||||||
|
|
||||||
notmuch_bool_t read_stdin = TRUE;
|
bool read_stdin = true;
|
||||||
|
|
||||||
for (; opt_index < argc; opt_index++) {
|
for (; opt_index < argc; opt_index++) {
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ main (int argc, char **argv)
|
||||||
if (! omit_newline)
|
if (! omit_newline)
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
|
|
||||||
read_stdin = FALSE;
|
read_stdin = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! read_stdin)
|
if (! read_stdin)
|
||||||
|
|
|
@ -179,7 +179,7 @@ main (int argc, char **argv)
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
config = notmuch_config_open (ctx, config_path, FALSE);
|
config = notmuch_config_open (ctx, config_path, false);
|
||||||
if (config == NULL)
|
if (config == NULL)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue