From de6ad887e413ee3e66e368f707e08ea84aa72a91 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 a10f3f3fc7..9fbeed6908 100644
--- a/src/network/networkctl.c
+++ b/src/network/networkctl.c
@@ -2431,21 +2431,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;
 }
 
@@ -2537,7 +2540,7 @@ static int lldp_neighbors_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.35.1

