mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
cli: search: Convert --output to keyword argument
Now, when address related outputs are in a separate command, it makes no sense to combine multiple --output options in search command line. Using switch statement to handle different outputs is more readable than a series of if statements.
This commit is contained in:
parent
5c27136e64
commit
5c32365d87
2 changed files with 13 additions and 15 deletions
|
@ -78,9 +78,6 @@ Supported options for **search** include
|
|||
by null characters (--format=text0), as a JSON array
|
||||
(--format=json), or as an S-Expression list (--format=sexp).
|
||||
|
||||
This option can be given multiple times to combine different
|
||||
outputs.
|
||||
|
||||
``--sort=``\ (**newest-first**\ \|\ **oldest-first**)
|
||||
This option can be used to present results in either
|
||||
chronological order (**oldest-first**) or reverse chronological
|
||||
|
|
|
@ -587,7 +587,7 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
|
|||
int opt_index, ret;
|
||||
|
||||
notmuch_opt_desc_t options[] = {
|
||||
{ NOTMUCH_OPT_KEYWORD_FLAGS, &ctx->output, "output", 'o',
|
||||
{ NOTMUCH_OPT_KEYWORD, &ctx->output, "output", 'o',
|
||||
(notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY },
|
||||
{ "threads", OUTPUT_THREADS },
|
||||
{ "messages", OUTPUT_MESSAGES },
|
||||
|
@ -607,13 +607,11 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
|
|||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
ctx->output = OUTPUT_SUMMARY;
|
||||
opt_index = parse_arguments (argc, argv, options, 1);
|
||||
if (opt_index < 0)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
if (! ctx->output)
|
||||
ctx->output = OUTPUT_SUMMARY;
|
||||
|
||||
if (ctx->output != OUTPUT_FILES && ctx->output != OUTPUT_MESSAGES &&
|
||||
ctx->dupe != -1) {
|
||||
fprintf (stderr, "Error: --duplicate=N is only supported with --output=files and --output=messages.\n");
|
||||
|
@ -624,17 +622,20 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
|
|||
argc - opt_index, argv + opt_index))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
if (ctx->output == OUTPUT_SUMMARY ||
|
||||
ctx->output == OUTPUT_THREADS)
|
||||
switch (ctx->output) {
|
||||
case OUTPUT_SUMMARY:
|
||||
case OUTPUT_THREADS:
|
||||
ret = do_search_threads (ctx);
|
||||
else if (ctx->output == OUTPUT_MESSAGES ||
|
||||
ctx->output == OUTPUT_FILES)
|
||||
break;
|
||||
case OUTPUT_MESSAGES:
|
||||
case OUTPUT_FILES:
|
||||
ret = do_search_messages (ctx);
|
||||
else if (ctx->output == OUTPUT_TAGS)
|
||||
break;
|
||||
case OUTPUT_TAGS:
|
||||
ret = do_search_tags (ctx);
|
||||
else {
|
||||
fprintf (stderr, "Error: the combination of outputs is not supported.\n");
|
||||
ret = 1;
|
||||
break;
|
||||
default:
|
||||
INTERNAL_ERROR ("Unexpected output");
|
||||
}
|
||||
|
||||
_notmuch_search_cleanup (ctx);
|
||||
|
|
Loading…
Reference in a new issue