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);

Reply via email to