From c083e4f8d818146bd5e683868f004c8885d38683 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Thu, 16 Apr 2020 20:44:17 +0200 Subject: [PATCH] keywordset: Add keywordset_add Add function keywordset_add to update a keywordset with names from a string, not requiring embedded "+" markers. --- keywordset.c | 15 +++++++++++++++ keywordset.h | 1 + 2 files changed, 16 insertions(+) diff --git a/keywordset.c b/keywordset.c index 374d6ab8..1ce14df3 100644 --- a/keywordset.c +++ b/keywordset.c @@ -115,6 +115,21 @@ void keywordset_update(struct keywordset *kws, char *input) { keywordset_update_phase(kws, input, PHASE_UPDATE); } +void keywordset_add(struct keywordset *kws, char *input) { + char *c=input; + char *name_start; + while (*c) { + while (*c && isspace(*c)) + c++; + if (*c) { + name_start=c++; + while (*c && !isspace(*c)) + c++; + add_name(kws, name_start, c-name_start); + } + } +} + struct keywordset *keywordset_new(char *input) { struct keywordset *kws = xmalloc(sizeof(*kws)); kws->nr_slots = KEYWORDSET_INITIAL_SLOTS; diff --git a/keywordset.h b/keywordset.h index 7484235b..26b60b02 100644 --- a/keywordset.h +++ b/keywordset.h @@ -3,6 +3,7 @@ struct keywordset *keywordset_new(char *input); void keywordset_update(struct keywordset *kws, char *input); +void keywordset_add(struct keywordset *kws, char *input); char *keywordset_get(struct keywordset *kws); int keywordset_ismember(struct keywordset *kws, char *name); void keywordset_purge(struct keywordset *kws);