From e1a112a761212049af8f6d26fc5829cbbdc63fdc Mon Sep 17 00:00:00 2001 From: jbeder Date: Mon, 7 Sep 2009 06:54:38 +0000 Subject: [PATCH] Fixed last newline of folded scalar bug --- src/scanscalar.cpp | 9 ++------- src/scantoken.cpp | 1 + yaml-reader/spectests.cpp | 6 +++--- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/scanscalar.cpp b/src/scanscalar.cpp index bd8fe42..7294ce9 100644 --- a/src/scanscalar.cpp +++ b/src/scanscalar.cpp @@ -111,13 +111,8 @@ namespace YAML bool nextMoreIndented = (INPUT.peek() == ' '); // for block scalars, we always start with a newline, so we should ignore it (not fold or keep) - bool useNewLine = pastOpeningBreak; - // and for folded scalars, we don't fold the very last newline to a space - if(params.fold && !emptyLine && INPUT.column() < params.indent) - useNewLine = false; - - if(useNewLine) { - if(params.fold && !emptyLine && !nextEmptyLine && !moreIndented && !nextMoreIndented) + if(pastOpeningBreak) { + if(params.fold && !emptyLine && !nextEmptyLine && !moreIndented && !nextMoreIndented && INPUT.column() >= params.indent) scalar += " "; else scalar += "\n"; diff --git a/src/scantoken.cpp b/src/scantoken.cpp index 51bb8bf..cb56225 100644 --- a/src/scantoken.cpp +++ b/src/scantoken.cpp @@ -368,6 +368,7 @@ namespace YAML params.fold = (indicator == Keys::FoldedScalar); // eat chomping/indentation indicators + params.chomp = CLIP; int n = Exp::Chomp.Match(INPUT); for(int i=0;i