From 0b04d9ad83dfdf5ba177608b6a4ab041bc079a30 Mon Sep 17 00:00:00 2001 From: Tomas Korbar Date: Mon, 23 Mar 2026 13:13:13 +0100 Subject: [PATCH] Add nm_utils_g_ptr_array_add_string_item convenience function --- src/core/nm-core-utils.c | 20 ++++++++++++++++++++ src/core/nm-core-utils.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/src/core/nm-core-utils.c b/src/core/nm-core-utils.c index 91d2466099..0b38b241d2 100644 --- a/src/core/nm-core-utils.c +++ b/src/core/nm-core-utils.c @@ -4161,6 +4161,26 @@ nm_utils_g_value_set_strv(GValue *value, GPtrArray *strings) g_value_take_boxed(value, strv); } +void +nm_utils_g_ptr_array_add_string_item(GPtrArray *array, const char *str, gboolean dup) +{ + int i; + + g_return_if_fail(array != NULL); + g_return_if_fail(str != NULL); + + /* Check for dupes before adding */ + for (i = 0; i < array->len; i++) { + const char *candidate = g_ptr_array_index(array, i); + + if (candidate && nm_streq(candidate, str)) + return; + } + + /* No dupes, add the new item */ + g_ptr_array_add(array, dup ? g_strdup(str) : (gpointer) str); +} + /*****************************************************************************/ const char * diff --git a/src/core/nm-core-utils.h b/src/core/nm-core-utils.h index 44fd5766a6..f087e965ec 100644 --- a/src/core/nm-core-utils.h +++ b/src/core/nm-core-utils.h @@ -423,6 +423,8 @@ void _nm_utils_set_testing(NMUtilsTestFlags flags); void nm_utils_g_value_set_strv(GValue *value, GPtrArray *strings); +void nm_utils_g_ptr_array_add_string_item(GPtrArray *array, const char *str, gboolean dup); + /*****************************************************************************/ const char *nm_utils_dnsmasq_status_to_string(int status, char *dest, gsize size);