From 682dc28c890c031d5cb34543626283b163c72657 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 3 Mar 2013 23:55:08 +0200 Subject: [PATCH] [PATCH v2 4/6] cli: config: make notmuch_config_open() "is new" parameter input only --- cc/67820385a4047ccf915d15e113b4c6085db2b8 | 386 ++++++++++++++++++++++ 1 file changed, 386 insertions(+) create mode 100644 cc/67820385a4047ccf915d15e113b4c6085db2b8 diff --git a/cc/67820385a4047ccf915d15e113b4c6085db2b8 b/cc/67820385a4047ccf915d15e113b4c6085db2b8 new file mode 100644 index 000000000..f5bbbd8a7 --- /dev/null +++ b/cc/67820385a4047ccf915d15e113b4c6085db2b8 @@ -0,0 +1,386 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +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 + -- 2.26.2