mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 15:01:28 +12:00
Fixed opening newline bug for block scalars.
This commit is contained in:
parent
4c5a488f68
commit
f7358701f2
1 changed files with 10 additions and 7 deletions
|
@ -18,7 +18,7 @@ namespace YAML
|
||||||
// and different places in the above flow.
|
// and different places in the above flow.
|
||||||
std::string ScanScalar(Stream& INPUT, ScanScalarParams& params)
|
std::string ScanScalar(Stream& INPUT, ScanScalarParams& params)
|
||||||
{
|
{
|
||||||
bool foundNonEmptyLine = false;
|
bool foundNonEmptyLine = false, pastOpeningBreak = false;
|
||||||
bool emptyLine = false, moreIndented = false;
|
bool emptyLine = false, moreIndented = false;
|
||||||
std::string scalar;
|
std::string scalar;
|
||||||
params.leadingSpaces = false;
|
params.leadingSpaces = false;
|
||||||
|
@ -39,6 +39,7 @@ namespace YAML
|
||||||
}
|
}
|
||||||
|
|
||||||
foundNonEmptyLine = true;
|
foundNonEmptyLine = true;
|
||||||
|
pastOpeningBreak = true;
|
||||||
|
|
||||||
// escaped newline? (only if we're escaping on slash)
|
// escaped newline? (only if we're escaping on slash)
|
||||||
if(params.escape == '\\' && Exp::EscBreak.Matches(INPUT)) {
|
if(params.escape == '\\' && Exp::EscBreak.Matches(INPUT)) {
|
||||||
|
@ -108,15 +109,17 @@ namespace YAML
|
||||||
bool nextEmptyLine = Exp::Break.Matches(INPUT);
|
bool nextEmptyLine = Exp::Break.Matches(INPUT);
|
||||||
bool nextMoreIndented = (INPUT.peek() == ' ');
|
bool nextMoreIndented = (INPUT.peek() == ' ');
|
||||||
|
|
||||||
// TODO: for block scalars, we always start with a newline, so we should fold OR keep that
|
// for block scalars, we always start with a newline, so we should ignore it (not fold or keep)
|
||||||
|
if(pastOpeningBreak) {
|
||||||
if(params.fold && !emptyLine && !nextEmptyLine && !moreIndented && !nextMoreIndented)
|
if(params.fold && !emptyLine && !nextEmptyLine && !moreIndented && !nextMoreIndented)
|
||||||
scalar += " ";
|
scalar += " ";
|
||||||
else
|
else
|
||||||
scalar += "\n";
|
scalar += "\n";
|
||||||
|
}
|
||||||
|
|
||||||
emptyLine = nextEmptyLine;
|
emptyLine = nextEmptyLine;
|
||||||
moreIndented = nextMoreIndented;
|
moreIndented = nextMoreIndented;
|
||||||
|
pastOpeningBreak = true;
|
||||||
|
|
||||||
// are we done via indentation?
|
// are we done via indentation?
|
||||||
if(!emptyLine && INPUT.column < params.indent) {
|
if(!emptyLine && INPUT.column < params.indent) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue