]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/Formatter: improve json-pretty whitespace
authorSage Weil <sage@redhat.com>
Tue, 13 Jan 2015 16:20:08 +0000 (08:20 -0800)
committerSage Weil <sage@redhat.com>
Tue, 13 Jan 2015 16:20:08 +0000 (08:20 -0800)
The whitespace for the current pretty mode is awkward and weird.  Move
to a more standard approach.  It's more newlines, but *much* more
readable.

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/Formatter.cc

index f24a25d36ecd0f5203bac4fcb3ce533f5130f348..51c4c4bac1e5cd4421327599111ca07f87d2dd0f 100644 (file)
@@ -148,7 +148,7 @@ void JSONFormatter::print_comma(json_formatter_stack_entry_d& entry)
     } else {
       m_ss << ",";
     }
-  } else if (entry.is_array && m_pretty) {
+  } else if (m_pretty) {
     m_ss << "\n";
     for (unsigned i = 1; i < m_stack.size(); i++)
       m_ss << "    ";
@@ -175,10 +175,7 @@ void JSONFormatter::print_name(const char *name)
   print_comma(entry);
   if (!entry.is_array) {
     if (m_pretty) {
-      if (entry.size)
-        m_ss << "  ";
-      else
-        m_ss << " ";
+      m_ss << "    ";
     }
     m_ss << "\"" << name << "\"";
     if (m_pretty)
@@ -232,6 +229,11 @@ void JSONFormatter::close_section()
   finish_pending_string();
 
   struct json_formatter_stack_entry_d& entry = m_stack.back();
+  if (m_pretty && entry.size) {
+    m_ss << "\n";
+    for (unsigned i = 1; i < m_stack.size(); i++)
+      m_ss << "    ";
+  }
   m_ss << (entry.is_array ? ']' : '}');
   m_stack.pop_back();
 }