summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-04-05 12:51:18 (GMT)
committerKitware Robot <kwrobot@kitware.com>2019-04-05 12:51:25 (GMT)
commitffcb4f7ec5789fb62812b88f3909100a29277e44 (patch)
tree6afd451745232c91ce13e4be7619492b5d11d3fb
parent52fb35bd69ec2fa1a5307695cb22c3f125debf4f (diff)
parenta9b38a17571bca0801594adf85fef59fac51d6ba (diff)
downloadCMake-ffcb4f7ec5789fb62812b88f3909100a29277e44.zip
CMake-ffcb4f7ec5789fb62812b88f3909100a29277e44.tar.gz
CMake-ffcb4f7ec5789fb62812b88f3909100a29277e44.tar.bz2
Merge topic 'rst-bad-markup-block'
a9b38a1757 cmRST: Fix crash on empty markup block 2024327746 Help: Remove empty literal block markup in RESOURCE target property Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3197
-rw-r--r--Help/prop_tgt/RESOURCE.rst2
-rw-r--r--Source/cmRST.cxx6
-rw-r--r--Tests/CMakeLib/testRST.expect4
-rw-r--r--Tests/CMakeLib/testRST.rst4
4 files changed, 15 insertions, 1 deletions
diff --git a/Help/prop_tgt/RESOURCE.rst b/Help/prop_tgt/RESOURCE.rst
index 6ada637..e5a1cb6 100644
--- a/Help/prop_tgt/RESOURCE.rst
+++ b/Help/prop_tgt/RESOURCE.rst
@@ -11,7 +11,7 @@ directory (eg. ``Resources`` directory for macOS) inside the bundle.
On non-Apple platforms these files may be installed using the ``RESOURCE``
option to the :command:`install(TARGETS)` command.
-Following example of Application Bundle::
+Following example of Application Bundle:
.. code-block:: cmake
diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index b7216b0..2064275 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -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());
diff --git a/Tests/CMakeLib/testRST.expect b/Tests/CMakeLib/testRST.expect
index d7b91d1..c19ee94 100644
--- a/Tests/CMakeLib/testRST.expect
+++ b/Tests/CMakeLib/testRST.expect
@@ -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"
diff --git a/Tests/CMakeLib/testRST.rst b/Tests/CMakeLib/testRST.rst
index 633219f..d2d1140 100644
--- a/Tests/CMakeLib/testRST.rst
+++ b/Tests/CMakeLib/testRST.rst
@@ -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"