unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Tomi Ollila <tomi.ollila@iki.fi>
To: David Bremner <david@tethera.net>, notmuch@notmuchmail.org
Subject: Re: [PATCH 01/38] lib: add _notmuch_string_map_set
Date: Sun, 24 Jan 2021 13:28:41 +0200	[thread overview]
Message-ID: <m25z3mlgk6.fsf@guru.guru-group.fi> (raw)
In-Reply-To: <20210116170406.842014-2-david@tethera.net>


On Sat, Jan 16 2021, David Bremner wrote:


First, is this patch series safe to be applied and put into use ? :D

I've looked this through once. So much stuff hard to figure out
if there is something broken. 

Most of the comments here and other patches are about style (line
break), but some (IIRC at least 2) which changes functionality a bit...

> This will be used (and tested) by the configuration caching code to be
> added in the next commit.
> ---
>  lib/notmuch-private.h |  5 +++++
>  lib/string-map.c      | 15 +++++++++++++++
>  2 files changed, 20 insertions(+)
>
> diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h
> index 57ec7f72..51016b0b 100644
> --- a/lib/notmuch-private.h
> +++ b/lib/notmuch-private.h
> @@ -638,6 +638,11 @@ _notmuch_string_map_append (notmuch_string_map_t *map,
>  			    const char *key,
>  			    const char *value);
>  
> +void
> +_notmuch_string_map_set (notmuch_string_map_t *map,
> +			 const char *key,
> +			 const char *value);
> +
>  const char *
>  _notmuch_string_map_get (notmuch_string_map_t *map, const char *key);
>  
> diff --git a/lib/string-map.c b/lib/string-map.c
> index a88404c7..1f3215fb 100644
> --- a/lib/string-map.c
> +++ b/lib/string-map.c
> @@ -142,6 +142,21 @@ bsearch_first (notmuch_string_pair_t *array, size_t len, const char *key, bool e
>  	return NULL;
>  
>  }
> +void
> +_notmuch_string_map_set (notmuch_string_map_t *map, const char *key, const char *val)

The style in string-map.c (and matches the .h above) would indicate the abobe should be:

_notmuch_string_map_set (notmuch_string_map_t *map, 
                         const char *key, 
                         const char *val)

> +{
> +    notmuch_string_pair_t *pair;
> +
> +    /* this means that calling string_map_set invalidates iterators */
> +    _notmuch_string_map_sort (map);
> +    pair = bsearch_first (map->pairs, map->length, key, true);
> +    if (! pair)
> +       _notmuch_string_map_append (map, key, val);
> +    else {
> +       talloc_free (pair->value);
> +       pair->value = talloc_strdup (map->pairs, val);
> +    }
> +}
>  
>  const char *
>  _notmuch_string_map_get (notmuch_string_map_t *map, const char *key)
> -- 
> 2.29.2

  reply	other threads:[~2021-01-24 11:29 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-16 17:03 v4 merged config David Bremner
2021-01-16 17:03 ` [PATCH 01/38] lib: add _notmuch_string_map_set David Bremner
2021-01-24 11:28   ` Tomi Ollila [this message]
2021-01-24 12:06     ` David Bremner
2021-01-16 17:03 ` [PATCH 02/38] lib: cache configuration information from database David Bremner
2021-01-16 17:03 ` [PATCH 03/38] lib: add stub for notmuch_database_open_with_config David Bremner
2021-01-16 17:03 ` [PATCH 04/38] lib/open: add support for config profiles and default locations David Bremner
2021-01-24 11:58   ` Tomi Ollila
2021-01-16 17:03 ` [PATCH 05/38] CLI: generalize notmuch_config_mode_t David Bremner
2021-01-16 17:03 ` [PATCH 06/38] lib/config: add notmuch_config_key_{get,set} David Bremner
2021-01-16 17:03 ` [PATCH 07/38] lib/open: load default values for known configuration keys David Bremner
2021-01-16 17:03 ` [PATCH 08/38] CLI: add (unused) database argument to subcommands David Bremner
2021-01-16 17:03 ` [PATCH 09/38] util: add strsplit_len: simplified strtok with delimiter escaping David Bremner
2021-01-16 17:03 ` [PATCH 10/38] lib/config: add config values iterator David Bremner
2021-01-16 17:03 ` [PATCH 11/38] lib/config: make values iterators restartable David Bremner
2021-01-16 17:03 ` [PATCH 12/38] CLI/count: switch to new configuration framework David Bremner
2021-01-16 17:03 ` [PATCH 13/38] cli/dump: convert to new config framework David Bremner
2021-01-16 17:03 ` [PATCH 14/38] lib: add notmuch_config_get_bool David Bremner
2021-01-16 17:03 ` [PATCH 15/38] CLI/restore: convert to new config framework David Bremner
2021-01-16 17:03 ` [PATCH 16/38] CLI/insert: " David Bremner
2021-01-16 17:03 ` [PATCH 17/38] cli/reindex: convert " David Bremner
2021-01-16 17:03 ` [PATCH 18/38] CLI/reply: convert to " David Bremner
2021-01-16 17:03 ` [PATCH 19/38] CLI/{search,address}: convert to new configuration framework David Bremner
2021-01-16 17:03 ` [PATCH 20/38] cli/config: add accessor for config file name David Bremner
2021-01-16 17:03 ` [PATCH 21/38] CLI/show: mostly switch show to new config framework David Bremner
2021-01-16 17:03 ` [PATCH 22/38] cli/tag: convert " David Bremner
2021-01-16 17:03 ` [PATCH 23/38] lib/config: add _notmuch_config_cache David Bremner
2021-01-16 17:03 ` [PATCH 24/38] lib: split notmuch_database_compact David Bremner
2021-01-16 17:03 ` [PATCH 25/38] cli/compact: convert to new configuration framework David Bremner
2021-01-16 17:03 ` [PATCH 26/38] bindings/notmuch2: add missing crypto error status codes David Bremner
2021-01-16 17:03 ` [PATCH 27/38] lib/config: add NOTMUCH_CONFIG_NEW_IGNORE David Bremner
2021-01-16 17:03 ` [PATCH 28/38] lib/open: factor out first part of open David Bremner
2021-01-16 17:03 ` [PATCH 29/38] lib: add NOTMUCH_STATUS_NO_CONFIG David Bremner
2021-01-16 17:03 ` [PATCH 30/38] lib/database: move n_d_create* to open.cc David Bremner
2021-01-16 17:03 ` [PATCH 31/38] lib: add NOTMUCH_STATUS_DATABASE_EXISTS David Bremner
2021-01-16 17:04 ` [PATCH 32/38] lib: introduce notmuch_database_create_with_config David Bremner
2021-01-16 17:04 ` [PATCH 33/38] cli/new: refactor database upgrade code David Bremner
2021-01-16 17:04 ` [PATCH 34/38] cli/new: convert to new config framework David Bremner
2021-01-16 17:04 ` [PATCH 35/38] lib/config: add HOOK_DIR David Bremner
2021-01-16 17:04 ` [PATCH 36/38] lib/open: set HOOK_DIR on open David Bremner
2021-01-16 17:04 ` [PATCH 37/38] CLI: use configured hook directory David Bremner
2021-01-24 12:59   ` Tomi Ollila
2021-01-16 17:04 ` [PATCH 38/38] doc: describe new config framework David Bremner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m25z3mlgk6.fsf@guru.guru-group.fi \
    --to=tomi.ollila@iki.fi \
    --cc=david@tethera.net \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).