tag: add support for an optional tag argument in a tag format string

E..g {volume:max}
This commit is contained in:
Daniel Eklöf 2019-01-21 20:14:25 +01:00
parent 09fcedc33f
commit 7936e197af

17
tag.c
View file

@ -423,10 +423,19 @@ tags_expand_template(const char *template, const struct tag_set *tags)
continue;
}
/* Extract tag name */
char tag_name[end - begin];
strncpy(tag_name, begin + 1, end - begin - 1);
tag_name[end - begin - 1] = '\0';
/* Extract tag name + argument*/
char tag_name_and_arg[end - begin];
strncpy(tag_name_and_arg, begin + 1, end - begin - 1);
tag_name_and_arg[end - begin - 1] = '\0';
const char *tag_name = NULL;
const char *tag_arg = NULL;
{
char *saveptr;
tag_name = strtok_r(tag_name_and_arg, ":", &saveptr);
tag_arg = strtok_r(NULL, ":", &saveptr);
}
/* Lookup tag */
const struct tag *tag = tag_for_name(tags, tag_name);