[libnftnl PATCH 4/5] rule: Avoid printing trailing spaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Introduce 'sep' variable to track whether something was printed already.
While being at it, introduce PRIu64 for 'handle' and 'position'
attributes.

Signed-off-by: Phil Sutter <phil@xxxxxx>
---
 src/rule.c | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/rule.c b/src/rule.c
index 480afc8ffc1b8..e82cf73e9bbe5 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -551,44 +551,53 @@ static int nftnl_rule_snprintf_default(char *buf, size_t size,
 {
 	struct nftnl_expr *expr;
 	int ret, remain = size, offset = 0, i;
+	const char *sep = "";
 
 	if (r->flags & (1 << NFTNL_RULE_FAMILY)) {
-		ret = snprintf(buf + offset, remain, "%s ",
+		ret = snprintf(buf + offset, remain, "%s%s", sep,
 			       nftnl_family2str(r->family));
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 
 	if (r->flags & (1 << NFTNL_RULE_TABLE)) {
-		ret = snprintf(buf + offset, remain, "%s ",
+		ret = snprintf(buf + offset, remain, "%s%s", sep,
 			       r->table);
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 
 	if (r->flags & (1 << NFTNL_RULE_CHAIN)) {
-		ret = snprintf(buf + offset, remain, "%s ",
+		ret = snprintf(buf + offset, remain, "%s%s", sep,
 			       r->chain);
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 	if (r->flags & (1 << NFTNL_RULE_HANDLE)) {
-		ret = snprintf(buf + offset, remain, "%llu ",
-			       (unsigned long long)r->handle);
+		ret = snprintf(buf + offset, remain, "%s%" PRIu64, sep,
+			       r->handle);
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 
 	if (r->flags & (1 << NFTNL_RULE_POSITION)) {
-		ret = snprintf(buf + offset, remain, "%llu ",
-			       (unsigned long long)r->position);
+		ret = snprintf(buf + offset, remain, "%s%" PRIu64, sep,
+			       r->position);
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 
 	if (r->flags & (1 << NFTNL_RULE_ID)) {
-		ret = snprintf(buf + offset, remain, "%u ", r->id);
+		ret = snprintf(buf + offset, remain, "%s%u", sep, r->id);
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 
 	if (r->flags & (1 << NFTNL_RULE_POSITION_ID)) {
-		ret = snprintf(buf + offset, remain, "%u ", r->position_id);
+		ret = snprintf(buf + offset, remain, "%s%u", sep,
+			       r->position_id);
 		SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+		sep = " ";
 	}
 
 	ret = snprintf(buf + offset, remain, "\n");
-- 
2.30.1




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux