mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-04 10:40:58 +01:00
shared: move _nm_utils_strv_cleanup() to shared utils
This commit is contained in:
parent
17f9191656
commit
d1c6d64e6a
5 changed files with 36 additions and 50 deletions
|
|
@ -210,22 +210,9 @@ finish:
|
|||
char **
|
||||
nmc_strsplit_set (const char *str, const char *delimiter, int max_tokens)
|
||||
{
|
||||
char **result;
|
||||
uint i;
|
||||
uint j;
|
||||
|
||||
result = g_strsplit_set (str, delimiter, max_tokens);
|
||||
|
||||
/* remove empty strings */
|
||||
for (i = 0; result && result[i]; i++) {
|
||||
if (*(result[i]) == '\0') {
|
||||
g_free (result[i]);
|
||||
for (j = i; result[j]; j++)
|
||||
result[j] = result[j + 1];
|
||||
i--;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return _nm_utils_strv_cleanup (g_strsplit_set (str, delimiter, max_tokens),
|
||||
FALSE, TRUE, FALSE);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
|
|
|||
|
|
@ -175,11 +175,6 @@ gssize _nm_utils_ptrarray_find_first (gconstpointer *list, gssize len, gconstpoi
|
|||
gssize _nm_utils_ptrarray_find_binary_search (gconstpointer *list, gsize len, gconstpointer needle, GCompareDataFunc cmpfcn, gpointer user_data);
|
||||
gssize _nm_utils_array_find_binary_search (gconstpointer list, gsize elem_size, gsize len, gconstpointer needle, GCompareDataFunc cmpfcn, gpointer user_data);
|
||||
|
||||
char **_nm_utils_strv_cleanup (char **strv,
|
||||
gboolean strip_whitespace,
|
||||
gboolean skip_empty,
|
||||
gboolean skip_repeated);
|
||||
|
||||
char ** _nm_utils_strsplit_set (const char *str,
|
||||
const char *delimiters,
|
||||
int max_tokens);
|
||||
|
|
|
|||
|
|
@ -444,36 +444,6 @@ nm_utils_same_ssid (const guint8 *ssid1, gsize len1,
|
|||
return memcmp (ssid1, ssid2, len1) == 0 ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
char **
|
||||
_nm_utils_strv_cleanup (char **strv,
|
||||
gboolean strip_whitespace,
|
||||
gboolean skip_empty,
|
||||
gboolean skip_repeated)
|
||||
{
|
||||
guint i, j;
|
||||
|
||||
if (!strv || !*strv)
|
||||
return strv;
|
||||
|
||||
if (strip_whitespace) {
|
||||
for (i = 0; strv[i]; i++)
|
||||
g_strstrip (strv[i]);
|
||||
}
|
||||
if (!skip_empty && !skip_repeated)
|
||||
return strv;
|
||||
j = 0;
|
||||
for (i = 0; strv[i]; i++) {
|
||||
if ( (skip_empty && !*strv[i])
|
||||
|| (skip_repeated && nm_utils_strv_find_first (strv, j, strv[i]) >= 0))
|
||||
g_free (strv[i]);
|
||||
else
|
||||
strv[j++] = strv[i];
|
||||
}
|
||||
strv[j] = NULL;
|
||||
return strv;
|
||||
}
|
||||
|
||||
|
||||
gboolean
|
||||
_nm_utils_string_slist_validate (GSList *list, const char **valid_values)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -204,6 +204,35 @@ nm_utils_strv_find_first (char **list, gssize len, const char *needle)
|
|||
return -1;
|
||||
}
|
||||
|
||||
char **
|
||||
_nm_utils_strv_cleanup (char **strv,
|
||||
gboolean strip_whitespace,
|
||||
gboolean skip_empty,
|
||||
gboolean skip_repeated)
|
||||
{
|
||||
guint i, j;
|
||||
|
||||
if (!strv || !*strv)
|
||||
return strv;
|
||||
|
||||
if (strip_whitespace) {
|
||||
for (i = 0; strv[i]; i++)
|
||||
g_strstrip (strv[i]);
|
||||
}
|
||||
if (!skip_empty && !skip_repeated)
|
||||
return strv;
|
||||
j = 0;
|
||||
for (i = 0; strv[i]; i++) {
|
||||
if ( (skip_empty && !*strv[i])
|
||||
|| (skip_repeated && nm_utils_strv_find_first (strv, j, strv[i]) >= 0))
|
||||
g_free (strv[i]);
|
||||
else
|
||||
strv[j++] = strv[i];
|
||||
}
|
||||
strv[j] = NULL;
|
||||
return strv;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
gint
|
||||
|
|
|
|||
|
|
@ -45,6 +45,11 @@ void nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str);
|
|||
|
||||
gssize nm_utils_strv_find_first (char **list, gssize len, const char *needle);
|
||||
|
||||
char **_nm_utils_strv_cleanup (char **strv,
|
||||
gboolean strip_whitespace,
|
||||
gboolean skip_empty,
|
||||
gboolean skip_repeated);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
gint64 _nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue