Unverified Commit 9ee39287 authored by theamarin's avatar theamarin Committed by GitHub
Browse files

Prevent trailing spaces when emitting literal strings (#1005)

parent a6bbe0e5
......@@ -366,13 +366,13 @@ bool WriteDoubleQuotedString(ostream_wrapper& out, const std::string& str,
bool WriteLiteralString(ostream_wrapper& out, const std::string& str,
std::size_t indent) {
out << "|\n";
out << IndentTo(indent);
int codePoint;
for (std::string::const_iterator i = str.begin();
GetNextCodePointAndAdvance(codePoint, i, str.end());) {
if (codePoint == '\n') {
out << "\n" << IndentTo(indent);
out << "\n";
} else {
out<< IndentTo(indent);
WriteCodePoint(out, codePoint);
}
}
......
......@@ -382,6 +382,20 @@ TEST_F(EmitterTest, ScalarFormat) {
"crazy\tsymbols that we like");
}
TEST_F(EmitterTest, LiteralWithoutTrailingSpaces) {
out << YAML::BeginMap;
out << YAML::Key << "key";
out << YAML::Value << YAML::Literal;
out << "expect that with two newlines\n\n"
"no spaces are emitted in the empty line";
out << YAML::EndMap;
ExpectEmit(
"key: |\n"
" expect that with two newlines\n\n"
" no spaces are emitted in the empty line");
}
TEST_F(EmitterTest, AutoLongKeyScalar) {
out << BeginMap;
out << Key << Literal << "multi-line\nscalar";
......
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