From d39ffe440fe502181bffb20da5b5afd9674f5b77 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch <p.janouch@gmail.com>
Date: Fri, 10 Jul 2015 01:24:06 +0200
Subject: degesch: fix display of empty objects in /set

---
 common.c | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/common.c b/common.c
index 62efb6f..2020032 100644
--- a/common.c
+++ b/common.c
@@ -1273,6 +1273,26 @@ config_item_write_string (struct str *output, const struct str *s)
 	str_append_c (output, '"');
 }
 
+static void
+config_item_write_object
+	(struct config_writer *self, struct config_item_ *value)
+{
+	char indent[self->indent + 1];
+	memset (indent, '\t', self->indent);
+	indent[self->indent] = 0;
+
+	str_append_c (self->output, '{');
+	if (value->value.object.len)
+	{
+		self->indent++;
+		str_append_c (self->output, '\n');
+		config_item_write_object_innards (self, value);
+		self->indent--;
+		str_append (self->output, indent);
+	}
+	str_append_c (self->output, '}');
+}
+
 static void
 config_item_write_value (struct config_writer *self, struct config_item_ *value)
 {
@@ -1292,20 +1312,8 @@ config_item_write_value (struct config_writer *self, struct config_item_ *value)
 		config_item_write_string (self->output, &value->value.string);
 		break;
 	case CONFIG_ITEM_OBJECT:
-	{
-		char indent[self->indent + 1];
-		memset (indent, '\t', self->indent);
-		indent[self->indent] = 0;
-
-		str_append (self->output, "{\n");
-
-		self->indent++;
-		config_item_write_object_innards (self, value);
-		self->indent--;
-
-		str_append_printf (self->output, "%s}", indent);
+		config_item_write_object (self, value);
 		break;
-	}
 	default:
 		hard_assert (!"invalid item type");
 	}
-- 
cgit v1.2.3-70-g09d2