From 2c2b788391c3215c95483d0593ddc7f58f3508e6 Mon Sep 17 00:00:00 2001 From: Jesse Beder Date: Tue, 22 May 2012 16:53:40 -0500 Subject: [PATCH] Fixed doc start/end --- src/emitter.cpp | 4 +++- src/emitterstate.cpp | 14 ++++++++++++++ src/emitterstate.h | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/emitter.cpp b/src/emitter.cpp index ff97616..c89ed65 100644 --- a/src/emitter.cpp +++ b/src/emitter.cpp @@ -181,6 +181,8 @@ namespace YAML if(m_stream.col() > 0) m_stream << "\n"; m_stream << "---\n"; + + m_pState->StartedDoc(); } // EmitEndDoc @@ -313,7 +315,7 @@ namespace YAML void Emitter::PrepareTopNode(EmitterNodeType::value child) { - if(m_pState->CurGroupChildCount() > 0 && m_stream.pos() > 0) { + if(m_pState->CurGroupChildCount() > 0 && m_stream.col() > 0) { if(child != EmitterNodeType::None) EmitBeginDoc(); } diff --git a/src/emitterstate.cpp b/src/emitterstate.cpp index 11c33c7..9642179 100644 --- a/src/emitterstate.cpp +++ b/src/emitterstate.cpp @@ -111,6 +111,20 @@ namespace YAML return EmitterNodeType::None; } + void EmitterState::StartedDoc() + { + m_hasAnchor = false; + m_hasTag = false; + m_hasNonContent = false; + } + + void EmitterState::EndedDoc() + { + m_hasAnchor = false; + m_hasTag = false; + m_hasNonContent = false; + } + void EmitterState::StartedScalar() { StartedNode(); diff --git a/src/emitterstate.h b/src/emitterstate.h index cf48ce0..f43f471 100644 --- a/src/emitterstate.h +++ b/src/emitterstate.h @@ -39,6 +39,8 @@ namespace YAML void SetNonContent(); void SetLongKey(); void ForceFlow(); + void StartedDoc(); + void EndedDoc(); void StartedScalar(); void StartedGroup(GroupType::value type); void EndedGroup(GroupType::value type);