Quoth Pieter Praet on Jan 23 at 5:22 am: > From: Austin Clements <amdragon at MIT.EDU> > > * notmuch-setup.c (notmuch_setup_command): > Break tag printing and response parsing out into separate functions > called `print_tag_list' respectively `parse_tag_list', for reuse > with the 'search.exclude_tags' option.
Since I'm revising this patch a little bit anyway, how about setup: Create functions for tag list printing and parsing This refactors the tag list printing and parsing currently used for new.tags so that both can be reused for the new search.exclude_tags option. > > --- > notmuch-setup.c | 55 > ++++++++++++++++++++++++++++++++++--------------------- > 1 files changed, 34 insertions(+), 21 deletions(-) > > diff --git a/notmuch-setup.c b/notmuch-setup.c > index c3ea937..dcfa607 100644 > --- a/notmuch-setup.c > +++ b/notmuch-setup.c > @@ -87,6 +87,38 @@ welcome_message_post_setup (void) > "have sufficient storage space available now.\n\n"); > } > > +static void > +print_tag_list (const char **tags, size_t tags_len) > +{ > + unsigned int i; > + for (i = 0; i < tags_len; i++) { > + if (i != 0) > + printf (" "); > + printf ("%s", tags[i]); > + } > +} > + > +static GPtrArray * > +parse_tag_list (void *ctx, char *response) > +{ > + GPtrArray *tags = g_ptr_array_new (); > + char *tag = response; > + char *space; > + > + while (tag && *tag) { > + space = strchr (tag, ' '); > + if (space) > + g_ptr_array_add (tags, talloc_strndup (ctx, tag, space - tag)); > + else > + g_ptr_array_add (tags, talloc_strdup (ctx, tag)); > + tag = space; > + while (tag && *tag == ' ') > + tag++; > + } > + > + return tags; > +} > + > int > notmuch_setup_command (unused (void *ctx), > unused (int argc), unused (char *argv[])) > @@ -164,30 +196,11 @@ notmuch_setup_command (unused (void *ctx), > new_tags = notmuch_config_get_new_tags (config, &new_tags_len); > > printf ("Tags to apply to all new messages (separated by spaces) ["); > - > - for (i = 0; i < new_tags_len; i++) { > - if (i != 0) > - printf (" "); > - printf ("%s", new_tags[i]); > - } > - > + print_tag_list(new_tags, new_tags_len); Missing space before paren. (Sorry, my fault.) > prompt ("]: "); > > if (strlen (response)) { > - GPtrArray *tags = g_ptr_array_new (); > - char *tag = response; > - char *space; > - > - while (tag && *tag) { > - space = strchr (tag, ' '); > - if (space) > - g_ptr_array_add (tags, talloc_strndup (ctx, tag, space - tag)); > - else > - g_ptr_array_add (tags, talloc_strdup (ctx, tag)); > - tag = space; > - while (tag && *tag == ' ') > - tag++; > - } > + GPtrArray *tags = parse_tag_list (ctx, response); > > notmuch_config_set_new_tags (config, (const char **) tags->pdata, > tags->len);