Re: [PATCH 2/2] CLI: move indexopts variable out of shared options block

2021-10-23 Thread David Bremner
David Bremner  writes:

> This reduces the amount of global state.  Furthermore, index options
> can be set (in principle) in several ways, not just in the one
> function for processing indexing command line options.

series applied to master.

d
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


[PATCH 2/2] CLI: move indexopts variable out of shared options block

2021-06-12 Thread David Bremner
This reduces the amount of global state.  Furthermore, index options
can be set (in principle) in several ways, not just in the one
function for processing indexing command line options.
---
 notmuch-client.h  |  3 +--
 notmuch-insert.c  |  6 --
 notmuch-new.c |  7 +--
 notmuch-reindex.c |  5 +++--
 notmuch.c | 13 +
 5 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/notmuch-client.h b/notmuch-client.h
index 8227fea4..6abe3ea5 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -499,11 +499,10 @@ int notmuch_minimal_options (const char *subcommand_name,
 struct _notmuch_client_indexing_cli_choices {
 int decrypt_policy;
 bool decrypt_policy_set;
-notmuch_indexopts_t *opts;
 };
 extern struct _notmuch_client_indexing_cli_choices indexing_cli_choices;
 extern const notmuch_opt_desc_t notmuch_shared_indexing_options [];
 notmuch_status_t
-notmuch_process_shared_indexing_options (notmuch_database_t *notmuch);
+notmuch_process_shared_indexing_options (notmuch_indexopts_t *opts);
 
 #endif
diff --git a/notmuch-insert.c b/notmuch-insert.c
index e3d87e4a..beeefe12 100644
--- a/notmuch-insert.c
+++ b/notmuch-insert.c
@@ -461,6 +461,8 @@ notmuch_insert_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 char *maildir;
 char *newpath;
 int opt_index;
+notmuch_indexopts_t *indexopts = notmuch_database_get_default_indexopts 
(notmuch);
+
 void *local = talloc_new (NULL);
 
 notmuch_opt_desc_t options[] = {
@@ -552,7 +554,7 @@ notmuch_insert_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 
 notmuch_exit_if_unmatched_db_uuid (notmuch);
 
-status = notmuch_process_shared_indexing_options (notmuch);
+status = notmuch_process_shared_indexing_options (indexopts);
 if (status != NOTMUCH_STATUS_SUCCESS) {
fprintf (stderr, "Error: Failed to process index options. (%s)\n",
 notmuch_status_to_string (status));
@@ -560,7 +562,7 @@ notmuch_insert_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 }
 
 /* Index the message. */
-status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep, 
indexing_cli_choices.opts);
+status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep, 
indexopts);
 
 /* Commit changes. */
 close_status = notmuch_database_close (notmuch);
diff --git a/notmuch-new.c b/notmuch-new.c
index 1ee498fa..1fb22c1f 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -45,6 +45,7 @@ typedef struct {
 const char *db_path;
 const char *mail_root;
 
+notmuch_indexopts_t *indexopts;
 int output_is_a_tty;
 enum verbosity verbosity;
 bool debug;
@@ -376,7 +377,7 @@ add_file (notmuch_database_t *notmuch, const char *filename,
 if (status)
goto DONE;
 
-status = notmuch_database_index_file (notmuch, filename, 
indexing_cli_choices.opts, &message);
+status = notmuch_database_index_file (notmuch, filename, state->indexopts, 
&message);
 switch (status) {
 /* Success. */
 case NOTMUCH_STATUS_SUCCESS:
@@ -1150,6 +1151,8 @@ notmuch_new_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 else if (verbose)
add_files_state.verbosity = VERBOSITY_VERBOSE;
 
+add_files_state.indexopts = notmuch_database_get_default_indexopts 
(notmuch);
+
 add_files_state.new_tags = notmuch_config_get_values (notmuch, 
NOTMUCH_CONFIG_NEW_TAGS);
 
 if (print_status_database (
@@ -1219,7 +1222,7 @@ notmuch_new_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 if (notmuch == NULL)
return EXIT_FAILURE;
 
-status = notmuch_process_shared_indexing_options (notmuch);
+status = notmuch_process_shared_indexing_options 
(add_files_state.indexopts);
 if (status != NOTMUCH_STATUS_SUCCESS) {
fprintf (stderr, "Error: Failed to process index options. (%s)\n",
 notmuch_status_to_string (status));
diff --git a/notmuch-reindex.c b/notmuch-reindex.c
index a7380a4b..0d957959 100644
--- a/notmuch-reindex.c
+++ b/notmuch-reindex.c
@@ -90,6 +90,7 @@ notmuch_reindex_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 int opt_index;
 int ret;
 notmuch_status_t status;
+notmuch_indexopts_t *indexopts = notmuch_database_get_default_indexopts 
(notmuch);
 
 /* Set up our handler for SIGINT */
 memset (&action, 0, sizeof (struct sigaction));
@@ -112,7 +113,7 @@ notmuch_reindex_command (notmuch_database_t *notmuch, int 
argc, char *argv[])
 
 notmuch_exit_if_unmatched_db_uuid (notmuch);
 
-status = notmuch_process_shared_indexing_options (notmuch);
+status = notmuch_process_shared_indexing_options (indexopts);
 if (status != NOTMUCH_STATUS_SUCCESS) {
fprintf (stderr, "Error: Failed to process index options. (%s)\n",
 notmuch_status_to_string (status));
@@ -130,7 +131,7 @@ notmuch_reindex_command (notmuch_database_t *notmuch, int 
argc, char *argv[])