From db035d113bc261ae0ac29b92ed5324e2c9e671fb Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 26 Mar 2020 17:26:29 +0100 Subject: [PATCH] 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. --- clients/common/nm-meta-setting-desc.c | 37 ++++++--------------------- 1 file 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); }