Fixed bugs in parsing block scalars #435
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In this PR, several bugs in parsing block literal/folded scalars (due to wrong implementations) have been fixed.
A leading empty line which is more indented than the first non-empty line
parse_error
is thrownA non-empty line which is less indented than the content indentation level
but more indented than the base indentation level
parse_error
is thrownA more-indented empty line in block folded scalar contents
foo: "\t bar"
\n\t \nbar
Furthermore, although the current implementation treats half-width spaces and tabs as indentation characters, only half-width spaces should be treated as the indentation character as the YAML specification defines here.
So, in this PR, detecting an indentation level has been fixed to search only for half-width spaces in parsing block scalars.
Pull Request Checklist
Read the CONTRIBUTING.md file for detailed information.
Please don't
#ifdef
s or other means.