diff options
author | Thomas Haller <thaller@redhat.com> | 2017-09-26 08:48:22 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-10-04 12:20:55 +0200 |
commit | 263c37be72e49863e7b4b8af8cfd24cccec0e3d4 (patch) | |
tree | a51685542dcf2b780fb02b6d23d140564f2e2165 | |
parent | 36dc2b59e3f5854eb401beb119c5c925253a5f26 (diff) | |
download | NetworkManager-263c37be72e49863e7b4b8af8cfd24cccec0e3d4.tar.gz |
core/utils: extend nm_utils_flags2str() for multi-value flags and name for zero
Allow passing a pretty name for the zero flag 0, like "none".
Also, don't require flags to be power-of-two. Instead, allow names for
multiple flags. For example and "all" name.
-rw-r--r-- | src/nm-core-utils.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c index 88614278f1..3fb843af8f 100644 --- a/src/nm-core-utils.c +++ b/src/nm-core-utils.c @@ -1869,7 +1869,6 @@ nm_utils_flags2str (const NMUtilsFlags2StrDesc *descs, for (i = 0; i < n_descs; i++) { gsize j; - nm_assert (descs[i].flag && nm_utils_is_power_of_two (descs[i].flag)); nm_assert (descs[i].name && descs[i].name[0]); for (j = 0; j < i; j++) nm_assert (descs[j].flag != descs[i].flag); @@ -1882,13 +1881,20 @@ nm_utils_flags2str (const NMUtilsFlags2StrDesc *descs, return buf; buf[0] = '\0'; + p = buf; if (!flags) { + for (i = 0; i < n_descs; i++) { + if (!descs[i].flag) { + nm_utils_strbuf_append_str (&p, &len, descs[i].name); + break; + } + } return buf; } - p = buf; for (i = 0; flags && i < n_descs; i++) { - if (NM_FLAGS_HAS (flags, descs[i].flag)) { + if ( descs[i].flag + && NM_FLAGS_ALL (flags, descs[i].flag)) { flags &= ~descs[i].flag; if (buf[0] != '\0') |