Commit b5d8241d authored by Jesse Beder's avatar Jesse Beder
Browse files

Added block seq indentation

parent d86cfc1c
...@@ -312,6 +312,13 @@ namespace YAML ...@@ -312,6 +312,13 @@ namespace YAML
void Emitter::BlockSeqPrepareNode() void Emitter::BlockSeqPrepareNode()
{ {
const unsigned curIndent = m_pState->CurIndent();
if(m_stream.col() > curIndent) {
m_stream << "\n";
}
m_stream << IndentTo(curIndent);
m_stream << "-";
m_stream << IndentTo(curIndent + m_pState->CurGroupIndent());
} }
void Emitter::FlowMapPrepareNode() void Emitter::FlowMapPrepareNode()
......
...@@ -61,8 +61,8 @@ namespace YAML ...@@ -61,8 +61,8 @@ namespace YAML
{ {
BeginNode(); BeginNode();
unsigned lastIndent = (m_groups.empty() ? 0 : m_groups.top().indent); const int lastGroupIndent = (m_groups.empty() ? 0 : m_groups.top().indent);
m_curIndent += lastIndent; m_curIndent += lastGroupIndent;
std::auto_ptr<Group> pGroup(new Group(type)); std::auto_ptr<Group> pGroup(new Group(type));
...@@ -114,6 +114,11 @@ namespace YAML ...@@ -114,6 +114,11 @@ namespace YAML
return (m_groups.top().flow == Flow ? FlowType::Flow : FlowType::Block); return (m_groups.top().flow == Flow ? FlowType::Flow : FlowType::Block);
} }
int EmitterState::CurGroupIndent() const
{
return m_groups.empty() ? 0 : m_groups.top().indent;
}
void EmitterState::ClearModifiedSettings() void EmitterState::ClearModifiedSettings()
{ {
m_modifiedSettings.clear(); m_modifiedSettings.clear();
......
...@@ -39,6 +39,7 @@ namespace YAML ...@@ -39,6 +39,7 @@ namespace YAML
GroupType::value CurGroupType() const; GroupType::value CurGroupType() const;
FlowType::value CurGroupFlowType() const; FlowType::value CurGroupFlowType() const;
int CurGroupIndent() const;
int CurIndent() const { return m_curIndent; } int CurIndent() const { return m_curIndent; }
bool HasAnchor() const { return m_hasAnchor; } bool HasAnchor() const { return m_hasAnchor; }
bool HasTag() const { return m_hasTag; } bool HasTag() const { return m_hasTag; }
......
...@@ -4,7 +4,10 @@ ...@@ -4,7 +4,10 @@
int main() int main()
{ {
YAML::Emitter out; YAML::Emitter out;
out << YAML::BeginSeq;
out << "foo"; out << "foo";
out << "bar";
out << YAML::EndSeq;
std::cout << out.c_str() << "\n"; std::cout << out.c_str() << "\n";
return 0; return 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment