summaryrefslogtreecommitdiff
path: root/clients
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-03-26 17:26:29 +0100
committerThomas Haller <thaller@redhat.com>2020-04-04 19:51:34 +0200
commitdb035d113bc261ae0ac29b92ed5324e2c9e671fb (patch)
tree538d71e9646aa515a7fe48fab370c81da8dade4e /clients
parentd9381362a517bdb721a7ddfbd8bcc30914bf8518 (diff)
downloadNetworkManager-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.c37
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);
}