summary refs log tree commit diff
path: root/src/libnm-glib-aux
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-glib-aux')
-rw-r--r--src/libnm-glib-aux/nm-enum-utils.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libnm-glib-aux/nm-enum-utils.c b/src/libnm-glib-aux/nm-enum-utils.c
index b7f7a3f6..2593a9cd 100644
--- a/src/libnm-glib-aux/nm-enum-utils.c
+++ b/src/libnm-glib-aux/nm-enum-utils.c
@@ -136,7 +136,8 @@ _nm_utils_enum_to_str_full(GType                       type,
         else
             return g_strdup(enum_value->value_nick);
     } else if (G_IS_FLAGS_CLASS(klass)) {
-        unsigned     uvalue = (unsigned) value;
+        unsigned     uvalue          = (unsigned) value;
+        gboolean     uvalue_was_zero = (uvalue == 0);
         GFlagsValue *flags_value;
         NMStrBuf     strbuf;
 
@@ -147,6 +148,9 @@ _nm_utils_enum_to_str_full(GType                       type,
         for (; value_infos && value_infos->nick; value_infos++) {
             nm_assert(_enum_is_valid_flags_nick(value_infos->nick));
 
+            if (value_infos->value == 0 && !uvalue_was_zero)
+                continue;
+
             if (uvalue == 0) {
                 if (value_infos->value != 0)
                     continue;