From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 6C41F429E25 for ; Sun, 3 Mar 2013 13:55:37 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" X-Spam-Flag: NO X-Spam-Score: -0.7 X-Spam-Level: X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E50fYIkb1IFp for ; Sun, 3 Mar 2013 13:55:34 -0800 (PST) Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 942C8431FAE for ; Sun, 3 Mar 2013 13:55:25 -0800 (PST) Received: by mail-lb0-f179.google.com with SMTP id j14so3506579lbo.10 for ; Sun, 03 Mar 2013 13:55:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:in-reply-to:references:x-gm-message-state; bh=6yGGNMOFH3Wsp9Py5WltSKwvD9/MYnI7KjrSJpNuoO8=; b=T4GrSps9+5jNwmTU5MC59TRKbrpH2HQk5R8Jicoy3/MFgTZqsesP/GT8VKJlhSVOIh 8DaWgbxH/oPr5KJqMFkvERGXwgmh460JzLFdD8oRYWVJ6Xf4Ev7yVH8zC7U2HS3Uq7hR nvry3cXWKpEM7KoybtSaBxAdD0A6VxTv/jpaqPFFoXK/Lyt6WsOUX80dKc/q4ZcUosru 3KUdTs36vl14Wk0poP/GmB2cYqiGQCrRfSUdD6MaGP5ZGQZ/7XtNYFmo0kUrttn3vflO bL9/KdDmd5TUs/LvFyNoZNsP2fv4+f72yJ09xGMV9KRQLWauyOrgdWPp+G+c2P15VLNx ynCA== X-Received: by 10.112.23.136 with SMTP id m8mr3665256lbf.53.1362347724020; Sun, 03 Mar 2013 13:55:24 -0800 (PST) Received: from localhost (dsl-hkibrasgw4-50df51-27.dhcp.inet.fi. [80.223.81.27]) by mx.google.com with ESMTPS id ev7sm6608297lbb.15.2013.03.03.13.55.22 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sun, 03 Mar 2013 13:55:23 -0800 (PST) From: Jani Nikula To: notmuch@notmuchmail.org Subject: [PATCH v2 4/6] cli: config: make notmuch_config_open() "is new" parameter input only Date: Sun, 3 Mar 2013 23:55:08 +0200 Message-Id: <5faebfc5d36d7e85a4dd1acbca0417d8a6a2602d.1362347362.git.jani@nikula.org> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: References: In-Reply-To: References: X-Gm-Message-State: ALoCoQlar5YEbUpyT5C+8HigLFhRYDpD5/dponXclI3wg6H1pc09IP5yO4ATzXFtPmQfViXlnz22 X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2013 21:55:38 -0000 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. --- notmuch-client.h | 2 +- notmuch-config.c | 32 +++++++++++--------------------- notmuch-count.c | 2 +- notmuch-dump.c | 2 +- notmuch-new.c | 2 +- notmuch-reply.c | 2 +- notmuch-restore.c | 2 +- notmuch-search.c | 2 +- notmuch-setup.c | 7 +++---- notmuch-show.c | 2 +- notmuch-tag.c | 2 +- notmuch.c | 5 ++--- test/random-corpus.c | 2 +- 13 files changed, 26 insertions(+), 38 deletions(-) diff --git a/notmuch-client.h b/notmuch-client.h index 07367e0..b3dcb21 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 e733e92..247fbe4 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 2f98128..61722ed 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 a3244e0..845a67e 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 feb9c32..4915418 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 22c58ff..9da42b9 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 cf26a42..dd2507f 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 0b0a879..fac6663 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 94d0aa7..72d862a 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 cbfc2d1..5ae5d7d 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 d9daf8f..148e856 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 ec2f20f..e434d03 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 8b7748e..790193d 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; -- 1.7.10.4