util: Avoid output duplication in IndentedStream

Change-Id: Ia530878068da89a1839574c9c5f1dc5d1de8b54e
Fixes: #2723
diff --git a/src/util/indented-stream.cpp b/src/util/indented-stream.cpp
index 590a7ce..f6f559d 100644
--- a/src/util/indented-stream.cpp
+++ b/src/util/indented-stream.cpp
@@ -62,6 +62,7 @@
   for (const StringView& line : splitOutput) {
     m_output << m_indent << line << "\n";
   }
+  str(std::string());
   return 0; // success
 }
 
diff --git a/tests/unit-tests/util/indented-stream.t.cpp b/tests/unit-tests/util/indented-stream.t.cpp
index 30d2e07..91dff26 100644
--- a/tests/unit-tests/util/indented-stream.t.cpp
+++ b/tests/unit-tests/util/indented-stream.t.cpp
@@ -52,6 +52,26 @@
                           ));
 }
 
+BOOST_AUTO_TEST_CASE(BasicWithFlushes) // Bug #2723
+{
+  output_test_stream os;
+
+  os << "Hello" << std::endl;
+  {
+    IndentedStream os1(os, " [prefix] ");
+    os1 << "," << std::endl;
+    {
+      IndentedStream os2(os1, " [another prefix] ");
+      os2 << "World!" << std::endl;
+    }
+  }
+
+  BOOST_CHECK(os.is_equal("Hello\n"
+                          " [prefix] ,\n"
+                          " [prefix]  [another prefix] World!\n"
+                          ));
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } // namespace tests