mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
cli/show: convert keyword options to booleans
There are two keyword options here that impliment boolean options. It is simpler to use the built-in boolean argument handling, and also more robust against divergence in parsing boolean and keyword arguments.
This commit is contained in:
parent
37d1fa5672
commit
15815d4e4c
1 changed files with 9 additions and 25 deletions
|
@ -1055,18 +1055,6 @@ static const notmuch_show_format_t *formatters[] = {
|
||||||
[NOTMUCH_FORMAT_RAW] = &format_raw,
|
[NOTMUCH_FORMAT_RAW] = &format_raw,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
|
||||||
ENTIRE_THREAD_DEFAULT = -1,
|
|
||||||
ENTIRE_THREAD_FALSE = FALSE,
|
|
||||||
ENTIRE_THREAD_TRUE = TRUE,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The following is to allow future options to be added more easily */
|
|
||||||
enum {
|
|
||||||
EXCLUDE_TRUE,
|
|
||||||
EXCLUDE_FALSE,
|
|
||||||
};
|
|
||||||
|
|
||||||
int
|
int
|
||||||
notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -1082,8 +1070,11 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
.output_body = TRUE,
|
.output_body = TRUE,
|
||||||
};
|
};
|
||||||
int format = NOTMUCH_FORMAT_NOT_SPECIFIED;
|
int format = NOTMUCH_FORMAT_NOT_SPECIFIED;
|
||||||
int exclude = EXCLUDE_TRUE;
|
int exclude = TRUE;
|
||||||
int entire_thread = ENTIRE_THREAD_DEFAULT;
|
|
||||||
|
/* This value corresponds to neither true nor false being passed
|
||||||
|
* on the command line */
|
||||||
|
int entire_thread = -1;
|
||||||
notmuch_bool_t single_message;
|
notmuch_bool_t single_message;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
|
@ -1095,15 +1086,8 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
{ "raw", NOTMUCH_FORMAT_RAW },
|
{ "raw", NOTMUCH_FORMAT_RAW },
|
||||||
{ 0, 0 } } },
|
{ 0, 0 } } },
|
||||||
{ NOTMUCH_OPT_INT, ¬much_format_version, "format-version", 0, 0 },
|
{ NOTMUCH_OPT_INT, ¬much_format_version, "format-version", 0, 0 },
|
||||||
{ NOTMUCH_OPT_KEYWORD, &exclude, "exclude", 'x',
|
{ NOTMUCH_OPT_BOOLEAN, &exclude, "exclude", 'x', 0 },
|
||||||
(notmuch_keyword_t []){ { "true", EXCLUDE_TRUE },
|
{ NOTMUCH_OPT_BOOLEAN, &entire_thread, "entire-thread", 't', 0 },
|
||||||
{ "false", EXCLUDE_FALSE },
|
|
||||||
{ 0, 0 } } },
|
|
||||||
{ NOTMUCH_OPT_KEYWORD, &entire_thread, "entire-thread", 't',
|
|
||||||
(notmuch_keyword_t []){ { "true", ENTIRE_THREAD_TRUE },
|
|
||||||
{ "false", ENTIRE_THREAD_FALSE },
|
|
||||||
{ "", ENTIRE_THREAD_TRUE },
|
|
||||||
{ 0, 0 } } },
|
|
||||||
{ NOTMUCH_OPT_INT, ¶ms.part, "part", 'p', 0 },
|
{ NOTMUCH_OPT_INT, ¶ms.part, "part", 'p', 0 },
|
||||||
{ NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.decrypt, "decrypt", 'd', 0 },
|
{ NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.decrypt, "decrypt", 'd', 0 },
|
||||||
{ NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.verify, "verify", 'v', 0 },
|
{ NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.verify, "verify", 'v', 0 },
|
||||||
|
@ -1148,7 +1132,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
|
|
||||||
/* 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 == ENTIRE_THREAD_DEFAULT) {
|
if (entire_thread != FALSE && entire_thread != TRUE) {
|
||||||
if (format == NOTMUCH_FORMAT_JSON || format == NOTMUCH_FORMAT_SEXP)
|
if (format == NOTMUCH_FORMAT_JSON || format == NOTMUCH_FORMAT_SEXP)
|
||||||
params.entire_thread = TRUE;
|
params.entire_thread = TRUE;
|
||||||
else
|
else
|
||||||
|
@ -1228,7 +1212,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exclude == 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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue