mirror of
https://github.com/openvswitch/ovs
synced 2025-10-17 14:28:02 +00:00
svec: New function svec_split().
This is useful in an upcoming commit.
This commit is contained in:
16
lib/svec.c
16
lib/svec.c
@@ -366,6 +366,22 @@ svec_join(const struct svec *svec,
|
||||
return ds_cstr(&ds);
|
||||
}
|
||||
|
||||
/* Breaks 's' into tokens at any character in 'delimiters', and appends each
|
||||
* token to 'svec'. Empty tokens are not added. */
|
||||
void
|
||||
svec_split(struct svec *svec, const char *s_, const char *delimiters)
|
||||
{
|
||||
char *s = xstrdup(s_);
|
||||
char *save_ptr = NULL;
|
||||
char *token;
|
||||
|
||||
for (token = strtok_r(s, delimiters, &save_ptr); token != NULL;
|
||||
token = strtok_r(NULL, delimiters, &save_ptr)) {
|
||||
svec_add(svec, token);
|
||||
}
|
||||
free(s);
|
||||
}
|
||||
|
||||
const char *
|
||||
svec_back(const struct svec *svec)
|
||||
{
|
||||
|
@@ -52,6 +52,7 @@ void svec_swap(struct svec *a, struct svec *b);
|
||||
void svec_print(const struct svec *svec, const char *title);
|
||||
void svec_parse_words(struct svec *svec, const char *words);
|
||||
bool svec_equal(const struct svec *, const struct svec *);
|
||||
void svec_split(struct svec *, const char *s, const char *delimiters);
|
||||
char *svec_join(const struct svec *,
|
||||
const char *delimiter, const char *terminator);
|
||||
const char *svec_back(const struct svec *);
|
||||
|
Reference in New Issue
Block a user