summaryrefslogtreecommitdiffstats
path: root/notmuch-search.c
diff options
context:
space:
mode:
authorMichal Sojka <sojkam1@fel.cvut.cz>2014-11-05 01:25:52 +0100
committerDavid Bremner <david@tethera.net>2014-11-05 23:11:20 +0100
commit5e16b94a238a44627356dd0e43cf8c50b7f0ce21 (patch)
tree3eea25cd1dc84056bb445081a91542aed0c98e0c /notmuch-search.c
parent33f9109fd3b72e9648505b3d259a97553c5bf4b2 (diff)
cli: search: Convert ctx. to ctx->
In the next commit, notmuch_search_command will be refactored to several smaller functions. In order to simplify the next commit to verbatim move of several lines to new functions with search_context_t* argument, we convert all references to this structure to pointer dereferences. To do so we rename the context variable and use the original name ctx as the pointer to the renamed structure.
Diffstat (limited to 'notmuch-search.c')
-rw-r--r--notmuch-search.c81
1 files changed, 41 insertions, 40 deletions
diff --git a/notmuch-search.c b/notmuch-search.c
index 3d2012b7..6765a166 100644
--- a/notmuch-search.c
+++ b/notmuch-search.c
@@ -474,7 +474,7 @@ do_search_tags (const search_context_t *ctx)
int
notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
{
- search_context_t ctx = {
+ search_context_t search_context = {
.format_sel = NOTMUCH_FORMAT_TEXT,
.exclude = NOTMUCH_EXCLUDE_TRUE,
.sort = NOTMUCH_SORT_NEWEST_FIRST,
@@ -483,23 +483,24 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
.limit = -1, /* unlimited */
.dupe = -1,
};
+ search_context_t *ctx = &search_context;
char *query_str;
int opt_index, ret;
unsigned int i;
notmuch_opt_desc_t options[] = {
- { NOTMUCH_OPT_KEYWORD, &ctx.sort, "sort", 's',
+ { NOTMUCH_OPT_KEYWORD, &ctx->sort, "sort", 's',
(notmuch_keyword_t []){ { "oldest-first", NOTMUCH_SORT_OLDEST_FIRST },
{ "newest-first", NOTMUCH_SORT_NEWEST_FIRST },
{ 0, 0 } } },
- { NOTMUCH_OPT_KEYWORD, &ctx.format_sel, "format", 'f',
+ { NOTMUCH_OPT_KEYWORD, &ctx->format_sel, "format", 'f',
(notmuch_keyword_t []){ { "json", NOTMUCH_FORMAT_JSON },
{ "sexp", NOTMUCH_FORMAT_SEXP },
{ "text", NOTMUCH_FORMAT_TEXT },
{ "text0", NOTMUCH_FORMAT_TEXT0 },
{ 0, 0 } } },
{ NOTMUCH_OPT_INT, &notmuch_format_version, "format-version", 0, 0 },
- { NOTMUCH_OPT_KEYWORD_FLAGS, &ctx.output, "output", 'o',
+ { NOTMUCH_OPT_KEYWORD_FLAGS, &ctx->output, "output", 'o',
(notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY },
{ "threads", OUTPUT_THREADS },
{ "messages", OUTPUT_MESSAGES },
@@ -508,15 +509,15 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
{ "files", OUTPUT_FILES },
{ "tags", OUTPUT_TAGS },
{ 0, 0 } } },
- { NOTMUCH_OPT_KEYWORD, &ctx.exclude, "exclude", 'x',
+ { NOTMUCH_OPT_KEYWORD, &ctx->exclude, "exclude", 'x',
(notmuch_keyword_t []){ { "true", NOTMUCH_EXCLUDE_TRUE },
{ "false", NOTMUCH_EXCLUDE_FALSE },
{ "flag", NOTMUCH_EXCLUDE_FLAG },
{ "all", NOTMUCH_EXCLUDE_ALL },
{ 0, 0 } } },
- { NOTMUCH_OPT_INT, &ctx.offset, "offset", 'O', 0 },
- { NOTMUCH_OPT_INT, &ctx.limit, "limit", 'L', 0 },
- { NOTMUCH_OPT_INT, &ctx.dupe, "duplicate", 'D', 0 },
+ { NOTMUCH_OPT_INT, &ctx->offset, "offset", 'O', 0 },
+ { NOTMUCH_OPT_INT, &ctx->limit, "limit", 'L', 0 },
+ { NOTMUCH_OPT_INT, &ctx->dupe, "duplicate", 'D', 0 },
{ 0, 0, 0, 0, 0 }
};
@@ -524,31 +525,31 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
if (opt_index < 0)
return EXIT_FAILURE;
- if (! ctx.output)
- ctx.output = OUTPUT_SUMMARY;
+ if (! ctx->output)
+ ctx->output = OUTPUT_SUMMARY;
- if (ctx.output != OUTPUT_FILES && ctx.output != OUTPUT_MESSAGES &&
- ctx.dupe != -1) {
+ 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");
return EXIT_FAILURE;
}
- switch (ctx.format_sel) {
+ switch (ctx->format_sel) {
case NOTMUCH_FORMAT_TEXT:
- ctx.format = sprinter_text_create (config, stdout);
+ ctx->format = sprinter_text_create (config, stdout);
break;
case NOTMUCH_FORMAT_TEXT0:
- if (ctx.output == OUTPUT_SUMMARY) {
+ if (ctx->output == OUTPUT_SUMMARY) {
fprintf (stderr, "Error: --format=text0 is not compatible with --output=summary.\n");
return EXIT_FAILURE;
}
- ctx.format = sprinter_text0_create (config, stdout);
+ ctx->format = sprinter_text0_create (config, stdout);
break;
case NOTMUCH_FORMAT_JSON:
- ctx.format = sprinter_json_create (config, stdout);
+ ctx->format = sprinter_json_create (config, stdout);
break;
case NOTMUCH_FORMAT_SEXP:
- ctx.format = sprinter_sexp_create (config, stdout);
+ ctx->format = sprinter_sexp_create (config, stdout);
break;
default:
/* this should never happen */
@@ -558,10 +559,10 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_exit_if_unsupported_format ();
if (notmuch_database_open (notmuch_config_get_database_path (config),
- NOTMUCH_DATABASE_MODE_READ_ONLY, &ctx.notmuch))
+ NOTMUCH_DATABASE_MODE_READ_ONLY, &ctx->notmuch))
return EXIT_FAILURE;
- query_str = query_string_from_args (ctx.notmuch, argc-opt_index, argv+opt_index);
+ query_str = query_string_from_args (ctx->notmuch, argc-opt_index, argv+opt_index);
if (query_str == NULL) {
fprintf (stderr, "Out of memory.\n");
return EXIT_FAILURE;
@@ -571,51 +572,51 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
return EXIT_FAILURE;
}
- ctx.query = notmuch_query_create (ctx.notmuch, query_str);
- if (ctx.query == NULL) {
+ ctx->query = notmuch_query_create (ctx->notmuch, query_str);
+ if (ctx->query == NULL) {
fprintf (stderr, "Out of memory\n");
return EXIT_FAILURE;
}
- notmuch_query_set_sort (ctx.query, ctx.sort);
+ notmuch_query_set_sort (ctx->query, ctx->sort);
- if (ctx.exclude == NOTMUCH_EXCLUDE_FLAG && ctx.output != OUTPUT_SUMMARY) {
+ if (ctx->exclude == NOTMUCH_EXCLUDE_FLAG && ctx->output != OUTPUT_SUMMARY) {
/* If we are not doing summary output there is nowhere to
* print the excluded flag so fall back on including the
* excluded messages. */
fprintf (stderr, "Warning: this output format cannot flag excluded messages.\n");
- ctx.exclude = NOTMUCH_EXCLUDE_FALSE;
+ ctx->exclude = NOTMUCH_EXCLUDE_FALSE;
}
- if (ctx.exclude != NOTMUCH_EXCLUDE_FALSE) {
+ if (ctx->exclude != NOTMUCH_EXCLUDE_FALSE) {
const char **search_exclude_tags;
size_t search_exclude_tags_length;
search_exclude_tags = notmuch_config_get_search_exclude_tags
(config, &search_exclude_tags_length);
for (i = 0; i < search_exclude_tags_length; i++)
- notmuch_query_add_tag_exclude (ctx.query, search_exclude_tags[i]);
- notmuch_query_set_omit_excluded (ctx.query, ctx.exclude);
+ notmuch_query_add_tag_exclude (ctx->query, search_exclude_tags[i]);
+ notmuch_query_set_omit_excluded (ctx->query, ctx->exclude);
}
- if (ctx.output == OUTPUT_SUMMARY ||
- ctx.output == OUTPUT_THREADS)
- ret = do_search_threads (&ctx);
- else if (ctx.output == OUTPUT_MESSAGES ||
- ctx.output == OUTPUT_FILES ||
- (ctx.output & OUTPUT_ADDRESS_FLAGS && !(ctx.output & ~OUTPUT_ADDRESS_FLAGS)))
- ret = do_search_messages (&ctx);
- else if (ctx.output == OUTPUT_TAGS)
- ret = do_search_tags (&ctx);
+ if (ctx->output == OUTPUT_SUMMARY ||
+ ctx->output == OUTPUT_THREADS)
+ ret = do_search_threads (ctx);
+ else if (ctx->output == OUTPUT_MESSAGES ||
+ ctx->output == OUTPUT_FILES ||
+ (ctx->output & OUTPUT_ADDRESS_FLAGS && !(ctx->output & ~OUTPUT_ADDRESS_FLAGS)))
+ ret = do_search_messages (ctx);
+ else if (ctx->output == OUTPUT_TAGS)
+ ret = do_search_tags (ctx);
else {
fprintf (stderr, "Error: the combination of outputs is not supported.\n");
ret = 1;
}
- notmuch_query_destroy (ctx.query);
- notmuch_database_destroy (ctx.notmuch);
+ notmuch_query_destroy (ctx->query);
+ notmuch_database_destroy (ctx->notmuch);
- talloc_free (ctx.format);
+ talloc_free (ctx->format);
return ret ? EXIT_FAILURE : EXIT_SUCCESS;
}