mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 09:24:54 +01:00
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.
This commit is contained in:
parent
ba33a15ec3
commit
ed6f941c2a
1 changed files with 34 additions and 21 deletions
|
@ -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);
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue