cmRST: Fix crash on empty markup block

This commit is contained in:
Brad King
2019-04-05 08:18:14 -04:00
parent 2024327746
commit a9b38a1757
3 changed files with 14 additions and 0 deletions
+6
View File
@@ -457,6 +457,12 @@ void cmRST::UnindentLines(std::vector<std::string>& lines)
size_t trailingEmpty =
std::distance(rit, cmFindNot(cmReverseRange(lines), std::string()));
if ((leadingEmpty + trailingEmpty) >= lines.size()) {
// All lines are empty. The markup block is empty. Leave only one.
lines.resize(1);
return;
}
std::vector<std::string>::iterator contentEnd = cmRotate(
lines.begin(), lines.begin() + leadingEmpty, lines.end() - trailingEmpty);
lines.erase(contentEnd, lines.end());
+4
View File
@@ -83,6 +83,10 @@ or after a paragraph ending in two colons::
but not after a line ending in two colons::
in the middle of a paragraph.
A literal block can be empty::
.. productionlist::
grammar: `production`
production: "content rendered"
+4
View File
@@ -90,6 +90,10 @@ or after a paragraph ending in two colons::
but not after a line ending in two colons::
in the middle of a paragraph.
A literal block can be empty::
.. productionlist::
grammar: `production`
production: "content rendered"