From: Jani Nikula Date: Sun, 3 Mar 2013 21:55:08 +0000 (+0200) Subject: cli: config: make notmuch_config_open() "is new" parameter input only X-Git-Tag: 0.16_rc1~188 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=e76f6517de020783d828be59f461f1d4f465c4b4 cli: config: make notmuch_config_open() "is new" parameter input only We now have a notmuch_config_is_new() function to query whether a config was created or not. Change the notmuch_config_open() is_new parameter into boolean create_new to determine whether the function should create a new config if one doesn't exist. This reduces the complexity of the API. --- diff --git a/notmuch-client.h b/notmuch-client.h index 07367e01..b3dcb21a 100644 --- a/notmuch-client.h +++ b/notmuch-client.h @@ -248,7 +248,7 @@ typedef struct _notmuch_config notmuch_config_t; notmuch_config_t * notmuch_config_open (void *ctx, const char *filename, - notmuch_bool_t *is_new_ret); + notmuch_bool_t create_new); void notmuch_config_close (notmuch_config_t *config); diff --git a/notmuch-config.c b/notmuch-config.c index e733e929..247fbe4b 100644 --- a/notmuch-config.c +++ b/notmuch-config.c @@ -233,10 +233,9 @@ get_username_from_passwd_file (void *ctx) notmuch_config_t * notmuch_config_open (void *ctx, const char *filename, - notmuch_bool_t *is_new_ret) + notmuch_bool_t create_new) { GError *error = NULL; - int is_new = 0; size_t tmp; char *notmuch_config_env = NULL; int file_had_database_group; @@ -245,9 +244,6 @@ notmuch_config_open (void *ctx, int file_had_maildir_group; int file_had_search_group; - if (is_new_ret) - *is_new_ret = 0; - notmuch_config_t *config = talloc (ctx, notmuch_config_t); if (config == NULL) { fprintf (stderr, "Out of memory.\n"); @@ -286,17 +282,16 @@ notmuch_config_open (void *ctx, G_KEY_FILE_KEEP_COMMENTS, &error)) { - /* If the caller passed a non-NULL value for is_new_ret, then - * the caller is prepared for a default configuration file in - * the case of FILE NOT FOUND. Otherwise, any read failure is - * an error. + /* If create_new is true, then the caller is prepared for a + * default configuration file in the case of FILE NOT + * FOUND. Otherwise, any read failure is an error. */ - if (is_new_ret && + if (create_new && error->domain == G_FILE_ERROR && error->code == G_FILE_ERROR_NOENT) { g_error_free (error); - is_new = 1; + config->is_new = TRUE; } else { @@ -379,7 +374,7 @@ notmuch_config_open (void *ctx, } if (notmuch_config_get_search_exclude_tags (config, &tmp) == NULL) { - if (is_new) { + if (config->is_new) { const char *tags[] = { "deleted", "spam" }; notmuch_config_set_search_exclude_tags (config, tags, 2); } else { @@ -399,7 +394,7 @@ notmuch_config_open (void *ctx, /* Whenever we know of configuration sections that don't appear in * the configuration file, we add some comments to help the user * understand what can be done. */ - if (is_new) + if (config->is_new) { g_key_file_set_comment (config->key_file, NULL, NULL, toplevel_config_comment, NULL); @@ -434,11 +429,6 @@ notmuch_config_open (void *ctx, search_config_comment, NULL); } - if (is_new_ret) - *is_new_ret = is_new; - - config->is_new = is_new; - return config; } @@ -719,7 +709,7 @@ notmuch_config_command_get (void *ctx, char *item) { notmuch_config_t *config; - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; @@ -781,7 +771,7 @@ notmuch_config_command_set (void *ctx, char *item, int argc, char *argv[]) if (_item_split (item, &group, &key)) return 1; - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; @@ -818,7 +808,7 @@ notmuch_config_command_list (void *ctx) char **groups; size_t g, groups_length; - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-count.c b/notmuch-count.c index 2f981282..61722edb 100644 --- a/notmuch-count.c +++ b/notmuch-count.c @@ -62,7 +62,7 @@ notmuch_count_command (void *ctx, int argc, char *argv[]) return 1; } - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-dump.c b/notmuch-dump.c index a3244e0a..845a67e2 100644 --- a/notmuch-dump.c +++ b/notmuch-dump.c @@ -34,7 +34,7 @@ notmuch_dump_command (unused (void *ctx), int argc, char *argv[]) notmuch_tags_t *tags; const char *query_str = ""; - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-new.c b/notmuch-new.c index feb9c32f..49154180 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -875,7 +875,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) return 1; } - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-reply.c b/notmuch-reply.c index 22c58ff3..9da42b93 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -762,7 +762,7 @@ notmuch_reply_command (void *ctx, int argc, char *argv[]) notmuch_exit_if_unsupported_format (); - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-restore.c b/notmuch-restore.c index cf26a423..dd2507f3 100644 --- a/notmuch-restore.c +++ b/notmuch-restore.c @@ -139,7 +139,7 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) int opt_index; int input_format = DUMP_FORMAT_AUTO; - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-search.c b/notmuch-search.c index 0b0a879e..fac6663f 100644 --- a/notmuch-search.c +++ b/notmuch-search.c @@ -371,7 +371,7 @@ notmuch_search_command (void *ctx, int argc, char *argv[]) notmuch_exit_if_unsupported_format (); - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-setup.c b/notmuch-setup.c index 94d0aa7b..72d862ab 100644 --- a/notmuch-setup.c +++ b/notmuch-setup.c @@ -130,7 +130,6 @@ notmuch_setup_command (unused (void *ctx), size_t old_other_emails_len; GPtrArray *other_emails; unsigned int i; - int is_new; const char **new_tags; size_t new_tags_len; const char **search_exclude_tags; @@ -147,9 +146,9 @@ notmuch_setup_command (unused (void *ctx), chomp_newline (response); \ } while (0) - config = notmuch_config_open (ctx, NULL, &is_new); + config = notmuch_config_open (ctx, NULL, TRUE); - if (is_new) + if (notmuch_config_is_new (config)) welcome_message_pre_setup (); prompt ("Your full name [%s]: ", notmuch_config_get_user_name (config)); @@ -229,7 +228,7 @@ notmuch_setup_command (unused (void *ctx), if (! notmuch_config_save (config)) { - if (is_new) + if (notmuch_config_is_new (config)) welcome_message_post_setup (); return 0; } else { diff --git a/notmuch-show.c b/notmuch-show.c index cbfc2d1c..5ae5d7de 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -1176,7 +1176,7 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[])) else params.entire_thread = FALSE; - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch-tag.c b/notmuch-tag.c index d9daf8fb..148e856a 100644 --- a/notmuch-tag.c +++ b/notmuch-tag.c @@ -236,7 +236,7 @@ notmuch_tag_command (void *ctx, int argc, char *argv[]) return 1; } - config = notmuch_config_open (ctx, NULL, NULL); + config = notmuch_config_open (ctx, NULL, FALSE); if (config == NULL) return 1; diff --git a/notmuch.c b/notmuch.c index ec2f20fa..e434d033 100644 --- a/notmuch.c +++ b/notmuch.c @@ -202,16 +202,15 @@ static int notmuch_command (void *ctx, unused(int argc), unused(char *argv[])) { notmuch_config_t *config; - notmuch_bool_t is_new; char *db_path; struct stat st; - config = notmuch_config_open (ctx, NULL, &is_new); + config = notmuch_config_open (ctx, NULL, TRUE); /* If the user has never configured notmuch, then run * notmuch_setup_command which will give a nice welcome message, * and interactively guide the user through the configuration. */ - if (is_new) { + if (notmuch_config_is_new (config)) { notmuch_config_close (config); return notmuch_setup_command (ctx, 0, NULL); } diff --git a/test/random-corpus.c b/test/random-corpus.c index 8b7748ef..790193d2 100644 --- a/test/random-corpus.c +++ b/test/random-corpus.c @@ -160,7 +160,7 @@ main (int argc, char **argv) exit (1); } - config = notmuch_config_open (ctx, config_path, NULL); + config = notmuch_config_open (ctx, config_path, FALSE); if (config == NULL) return 1;