From 658e0a69a353e2559ab04c3caa7ea1eaf0ef6dda Mon Sep 17 00:00:00 2001
From: Tomas Pecka <peckato1@users.noreply.github.com>
Date: Wed, 15 Sep 2021 14:30:19 +0200
Subject: [PATCH 8/9] networkctl: allow format LLDP capabilities string without
 dots

Allows formatting the LLDP capabilities string without the dots
representing "not enabled" (just omit them).
---
 src/network/networkctl.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/network/networkctl.c b/src/network/networkctl.c
index f98779da7e..89abaf26da 100644
--- a/src/network/networkctl.c
+++ b/src/network/networkctl.c
@@ -2433,21 +2433,24 @@ static int link_status(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static char *lldp_capabilities_to_string(uint16_t x) {
+static char *lldp_capabilities_to_string(uint16_t x, bool dots) {
         static const char characters[] = {
                 'o', 'p', 'b', 'w', 'r', 't', 'd', 'a', 'c', 's', 'm',
         };
         char *ret;
-        unsigned i;
+        unsigned i, j;
 
         ret = new(char, ELEMENTSOF(characters) + 1);
         if (!ret)
                 return NULL;
 
-        for (i = 0; i < ELEMENTSOF(characters); i++)
-                ret[i] = (x & (1U << i)) ? characters[i] : '.';
+        for (i = 0, j = 0; i < ELEMENTSOF(characters); i++)
+                if (x & (1U << i))
+                        ret[j++] = characters[i];
+                else if (dots)
+                        ret[j++] = '.';
 
-        ret[i] = 0;
+        ret[j] = 0;
         return ret;
 }
 
@@ -2534,7 +2537,7 @@ static int lldp_neighbours_varlink_reply(Varlink *link, JsonVariant *parameters,
                 return r;
 
         if (udata->table) {
-                capabilities = lldp_capabilities_to_string(entry.capabilities);
+                capabilities = lldp_capabilities_to_string(entry.capabilities, true);
 
                 r = table_add_many(udata->table,
                                 TABLE_STRING, udata->link_name,
-- 
2.33.0

