You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the second part reads it back, the comment is read as part of the literal. One of them, reading or writing is wrong. Specs says that no comments can be placed inside an scalar, since a literal is an scalar and it terminates with the indentation back, it sounds like the reading is right and the writing is wrong.
When a scalar is inserted in literal mode comments inserted next should be at the next line. and outside of the indentation. Like this:
Work arround: inserting a Newline after the literal. Caution: this is parsed as having an endline at the end of the string ("Hello\nworld\n") instead of the inserted ("Hello\nworld"). It is better than having the comment included in the literal ("Hello\nworld # Un comentario") but stil write/read is not idempotent.
This is a bug, and on first sight hard to fix in yaml-cpp.
But #1424 is fixing the handling of the trailing '\n', which will make your work around at least idempotent.
Activity
vokimon commentedon Jan 8, 2020
Work arround: inserting a Newline after the literal. Caution: this is parsed as having an endline at the end of the string (
"Hello\nworld\n") instead of the inserted ("Hello\nworld"). It is better than having the comment included in the literal ("Hello\nworld # Un comentario") but stil write/read is not idempotent.{ std::ofstream f("hola.yaml"); YAML::Emitter emitter(f); emitter << YAML::Literal << "Hello\nworld" << YAML::Newline << YAML::Comment("Un comentario") ; }SGSSGene commentedon Mar 19, 2026
This is a bug, and on first sight hard to fix in
yaml-cpp.But #1424 is fixing the handling of the trailing '\n', which will make your work around at least idempotent.