diff options
author | Thomas Haller <thaller@redhat.com> | 2020-03-26 17:26:29 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-04-04 19:51:34 +0200 |
commit | db035d113bc261ae0ac29b92ed5324e2c9e671fb (patch) | |
tree | 538d71e9646aa515a7fe48fab370c81da8dade4e /clients | |
parent | d9381362a517bdb721a7ddfbd8bcc30914bf8518 (diff) | |
download | NetworkManager-db035d113bc261ae0ac29b92ed5324e2c9e671fb.tar.gz |
cli: simplify _value_strsplit() by using nm_utils_strsplit_set_full()
The two modes VALUE_STRSPLIT_MODE_OBJLIST and VALUE_STRSPLIT_MODE_MULTILIST
basically do regular split and afterwards g_strstrip() all values and
remove empty tokens.
That is what the NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP flag already does.
Use it.
There should be no change in behavior.
Diffstat (limited to 'clients')
-rw-r--r-- | clients/common/nm-meta-setting-desc.c | 37 |
1 files changed, 8 insertions, 29 deletions
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c index 2795f497b5..fbd6fdb144 100644 --- a/clients/common/nm-meta-setting-desc.c +++ b/clients/common/nm-meta-setting-desc.c @@ -190,8 +190,6 @@ _value_strsplit (const char *value, gsize *out_len) { gs_free const char **strv = NULL; - gsize i; - gsize len; /* FIXME: some modes should support backslash escaping. * In particular, to distinguish from _value_str_as_index_list(), which @@ -200,43 +198,24 @@ _value_strsplit (const char *value, /* note that all modes remove empty tokens (",", "a,,b", ",,"). */ switch (split_mode) { case VALUE_STRSPLIT_MODE_OBJLIST: - strv = nm_utils_strsplit_set (value, ESCAPED_TOKENS_DELIMITERS); + strv = nm_utils_strsplit_set_full (value, + ESCAPED_TOKENS_DELIMITERS, + NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP); break; case VALUE_STRSPLIT_MODE_MULTILIST: - strv = nm_utils_strsplit_set (value, ESCAPED_TOKENS_WITH_SPACES_DELIMTERS); + strv = nm_utils_strsplit_set_full (value, + ESCAPED_TOKENS_WITH_SPACES_DELIMTERS, + NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP); break; case VALUE_STRSPLIT_MODE_ESCAPED_TOKENS: strv = nm_utils_escaped_tokens_split (value, ESCAPED_TOKENS_DELIMITERS); - NM_SET_OUT (out_len, NM_PTRARRAY_LEN (strv)); - return g_steal_pointer (&strv); + break; case VALUE_STRSPLIT_MODE_ESCAPED_TOKENS_WITH_SPACES: strv = nm_utils_escaped_tokens_split (value, ESCAPED_TOKENS_WITH_SPACES_DELIMTERS); - NM_SET_OUT (out_len, NM_PTRARRAY_LEN (strv)); - return g_steal_pointer (&strv); - default: - nm_assert_not_reached (); break; } - NM_SET_OUT (out_len, 0); - - if (!strv) - return NULL; - - len = 0; - for (i = 0; strv[i]; i++) { - const char *s = strv[i]; - - s = nm_str_skip_leading_spaces (s); - if (s[0] == '\0') - continue; - - g_strchomp ((char *) s); - strv[len++] = s; - } - strv[len] = NULL; - - NM_SET_OUT (out_len, len); + NM_SET_OUT (out_len, NM_PTRARRAY_LEN (strv)); return g_steal_pointer (&strv); } |