diff --git a/src/emitter.cpp b/src/emitter.cpp index 59eaa56..6ca4b42 100644 --- a/src/emitter.cpp +++ b/src/emitter.cpp @@ -402,7 +402,7 @@ namespace YAML case EmitterNodeType::Scalar: case EmitterNodeType::FlowSeq: case EmitterNodeType::FlowMap: - SpaceOrIndentTo(m_pState->HasBegunContent(), curIndent); + SpaceOrIndentTo(true, curIndent); break; case EmitterNodeType::BlockSeq: case EmitterNodeType::BlockMap: diff --git a/src/emitterstate.cpp b/src/emitterstate.cpp index 6862d40..8eed776 100644 --- a/src/emitterstate.cpp +++ b/src/emitterstate.cpp @@ -106,6 +106,7 @@ namespace YAML void EmitterState::StartedScalar() { StartedNode(); + ClearModifiedSettings(); } void EmitterState::StartedGroup(GroupType::value type) @@ -150,6 +151,8 @@ namespace YAML // some global settings that we changed may have been overridden // by a local setting we just popped, so we need to restore them m_globalModifiedSettings.restore(); + + ClearModifiedSettings(); } EmitterNodeType::value EmitterState::CurGroupNodeType() const diff --git a/util/sandbox.cpp b/util/sandbox.cpp index 6f449a2..972d954 100644 --- a/util/sandbox.cpp +++ b/util/sandbox.cpp @@ -5,10 +5,7 @@ int main() { YAML::Emitter out; out << YAML::BeginMap; - out << YAML::BeginMap; - out << "a" << "b"; - out << YAML::EndMap; - out << YAML::BeginMap; + out << YAML::LongKey << "a" << "b"; out << "a" << "b"; out << YAML::EndMap; out << YAML::EndMap;