diff options
author | Thomas Haller <thaller@redhat.com> | 2022-01-24 17:10:08 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2022-02-10 22:30:27 +0100 |
commit | f0c565a79fb67e4590f860f83f9abed155e33a4d (patch) | |
tree | 392c64cd637814f419f4e71aecc476f4894ac689 | |
parent | dc64cff166791135dd9194ddb73ee3af20c08b5d (diff) | |
download | NetworkManager-f0c565a79fb67e4590f860f83f9abed155e33a4d.tar.gz |
glib-aux: add nm_strvarray_*() helpers for cmp/equal functions
-rw-r--r-- | src/libnm-glib-aux/nm-shared-utils.h | 27 |
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 { |