summaryrefslogtreecommitdiff
path: root/src/NetworkManagerUtils.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-01-18 12:46:07 +0100
committerThomas Haller <thaller@redhat.com>2016-01-18 13:10:18 +0100
commit1d15d8c3ef9fa44ec05681fb15f249e628bde367 (patch)
tree4c1b2b46f8301ff0a3bfe86bba21c29b5f6b1828 /src/NetworkManagerUtils.c
parent94fabafc1ad7ce4ae711ef4a9e0b0ff807e66692 (diff)
downloadNetworkManager-1d15d8c3ef9fa44ec05681fb15f249e628bde367.tar.gz
core: add nm_utils_enum2str()
Diffstat (limited to 'src/NetworkManagerUtils.c')
-rw-r--r--src/NetworkManagerUtils.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index a117d4280d..fb680d96d5 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -1880,6 +1880,45 @@ nm_utils_flags2str (const NMUtilsFlags2StrDesc *descs,
/*****************************************************************************/
+const char *
+nm_utils_enum2str (const NMUtilsEnum2StrDesc *descs,
+ gsize n_descs,
+ int val,
+ char *buf,
+ gsize len)
+{
+ gsize i;
+
+#if NM_MORE_ASSERTS > 10
+ nm_assert (descs);
+ nm_assert (n_descs > 0);
+ for (i = 0; i < n_descs; i++) {
+ gsize j;
+
+ nm_assert (descs[i].name && descs[i].name[0]);
+ for (j = 0; j < i; j++)
+ nm_assert (descs[j].value != descs[i].value);
+ }
+#endif
+
+ nm_utils_to_string_buffer_init (&buf, &len);
+
+ if (!len)
+ return buf;
+
+ for (i = 0; i < n_descs; i++) {
+ if (val == descs[i].value) {
+ g_strlcpy (buf, descs[i].name, len);
+ return buf;
+ }
+ }
+
+ g_snprintf (buf, len, "(%d)", val);
+ return buf;
+};
+
+/*****************************************************************************/
+
/**
* nm_utils_get_shared_wifi_permission:
* @connection: the NMConnection to lookup the permission.