summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-01-24 17:10:08 +0100
committerThomas Haller <thaller@redhat.com>2022-02-10 22:30:27 +0100
commitf0c565a79fb67e4590f860f83f9abed155e33a4d (patch)
tree392c64cd637814f419f4e71aecc476f4894ac689
parentdc64cff166791135dd9194ddb73ee3af20c08b5d (diff)
downloadNetworkManager-f0c565a79fb67e4590f860f83f9abed155e33a4d.tar.gz
glib-aux: add nm_strvarray_*() helpers for cmp/equal functions
-rw-r--r--src/libnm-glib-aux/nm-shared-utils.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h
index 54550f2737..390b4ccb4a 100644
--- a/src/libnm-glib-aux/nm-shared-utils.h
+++ b/src/libnm-glib-aux/nm-shared-utils.h
@@ -3139,6 +3139,33 @@ nm_strvarray_remove_first(GArray *strv, const char *needle)
return TRUE;
}
+static inline int
+nm_strvarray_cmp(const GArray *a, const GArray *b)
+{
+ NM_CMP_SELF(a, b);
+
+ return nm_strv_cmp_n((const char *const *) a->data,
+ a->len,
+ (const char *const *) b->data,
+ b->len);
+}
+
+#define nm_strvarray_equal(a, b) (nm_strvarray_cmp((a), (b)) == 0)
+
+static inline int
+_nm_strvarray_cmp_strv(const GArray *strv, const char *const *ss, gsize ss_len)
+{
+ return nm_strv_cmp_n(strv ? (const char *const *) strv->data : NULL,
+ strv ? ((gssize) strv->len) : -1,
+ ss,
+ ss_len);
+}
+#define nm_strvarray_cmp_strv(strv, ss, ss_len) \
+ _nm_strvarray_cmp_strv((strv), NM_CAST_STRV_CC(ss), (ss_len))
+
+#define nm_strvarray_equal_strv(strv, ss, ss_len) \
+ (nm_strvarray_cmp_strv((strv), (ss), (ss_len)) == 0)
+
/*****************************************************************************/
struct _NMVariantAttributeSpec {