Fixed empty string emitter bug (it now with auto-quote it

This commit is contained in:
Jesse Beder
2011-09-06 00:24:10 -05:00
parent 3e94c0a037
commit 7e129c9b64
2 changed files with 12 additions and 0 deletions

View File

@@ -128,6 +128,9 @@ namespace YAML
}
bool IsValidPlainScalar(const std::string& str, bool inFlow, bool allowOnlyAscii) {
if(str.empty())
return false;
// first check the start
const RegEx& start = (inFlow ? Exp::PlainScalarInFlow() : Exp::PlainScalar());
if(!start.Matches(str))

View File

@@ -846,6 +846,14 @@ namespace Test
out << "Oops";
desiredOutput = "Hi\n---\nBye\n---\nOops";
}
void EmptyString(YAML::Emitter& out, std::string& desiredOutput)
{
out << YAML::BeginMap;
out << YAML::Key << "key" << YAML::Value << "";
out << YAML::EndMap;
desiredOutput = "key: \"\"";
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
// incorrect emitting
@@ -1058,6 +1066,7 @@ namespace Test
RunEmitterTest(&Emitter::BoolFormatting, "bool formatting", passed, total);
RunEmitterTest(&Emitter::DocStartAndEnd, "doc start and end", passed, total);
RunEmitterTest(&Emitter::ImplicitDocStart, "implicit doc start", passed, total);
RunEmitterTest(&Emitter::EmptyString, "empty string", passed, total);
RunEmitterErrorTest(&Emitter::ExtraEndSeq, "extra EndSeq", passed, total);
RunEmitterErrorTest(&Emitter::ExtraEndMap, "extra EndMap", passed, total);