diff --git a/Examples/test-suite/doxygen_basic_translate.i b/Examples/test-suite/doxygen_basic_translate.i index 0a8b0474f..da4d80909 100644 --- a/Examples/test-suite/doxygen_basic_translate.i +++ b/Examples/test-suite/doxygen_basic_translate.i @@ -57,6 +57,8 @@ void function3(int a, int b) * \warning This may not work as expected * \code * int main() { while(true); } + * + * // Test blank line in code block * \endcode * \endif */ diff --git a/Examples/test-suite/doxygen_basic_translate_style2.i b/Examples/test-suite/doxygen_basic_translate_style2.i index 23e8de4f7..32e3cfcbe 100644 --- a/Examples/test-suite/doxygen_basic_translate_style2.i +++ b/Examples/test-suite/doxygen_basic_translate_style2.i @@ -55,6 +55,8 @@ void function3(int a, int b) * \warning This may not work as expected * \code * int main() { while(true); } + * + * // Test blank line in code block * \endcode * \endif */ diff --git a/Examples/test-suite/java/doxygen_basic_translate_runme.java b/Examples/test-suite/java/doxygen_basic_translate_runme.java index f307b3abc..ab343b560 100644 --- a/Examples/test-suite/java/doxygen_basic_translate_runme.java +++ b/Examples/test-suite/java/doxygen_basic_translate_runme.java @@ -54,6 +54,8 @@ public class doxygen_basic_translate_runme { " \n" + " {@code \n" + "int main() { while(true); } \n" + + "\n" + + "// Test blank line in code block \n" + " }\n" + " }\n" + " \n" + diff --git a/Examples/test-suite/java/doxygen_basic_translate_style2_runme.java b/Examples/test-suite/java/doxygen_basic_translate_style2_runme.java index aa015eeac..05e51cff8 100644 --- a/Examples/test-suite/java/doxygen_basic_translate_style2_runme.java +++ b/Examples/test-suite/java/doxygen_basic_translate_style2_runme.java @@ -54,6 +54,8 @@ public class doxygen_basic_translate_style2_runme { " \n" + " {@code \n" + "int main() { while(true); } \n" + + "\n" + + "// Test blank line in code block \n" + " }\n" + " }\n" + " \n" + diff --git a/Examples/test-suite/python/doxygen_basic_translate_runme.py b/Examples/test-suite/python/doxygen_basic_translate_runme.py index b6023224d..9ef8dbd52 100644 --- a/Examples/test-suite/python/doxygen_basic_translate_runme.py +++ b/Examples/test-suite/python/doxygen_basic_translate_runme.py @@ -50,6 +50,8 @@ Warning: This may not work as expected .. code-block:: c++ int main() { while(true); } + + // Test blank line in code block }""" ) comment_verifier.check(inspect.getdoc(doxygen_basic_translate.function5), diff --git a/Examples/test-suite/python/doxygen_basic_translate_style2_runme.py b/Examples/test-suite/python/doxygen_basic_translate_style2_runme.py index 2d62eecbd..b75045d59 100644 --- a/Examples/test-suite/python/doxygen_basic_translate_style2_runme.py +++ b/Examples/test-suite/python/doxygen_basic_translate_style2_runme.py @@ -48,6 +48,8 @@ Warning: This may not work as expected .. code-block:: c++ int main() { while(true); } + + // Test blank line in code block }""" ) comment_verifier.check(inspect.getdoc(doxygen_basic_translate_style2.function5), diff --git a/Source/Doxygen/doxyparser.cxx b/Source/Doxygen/doxyparser.cxx index 3f413bcaa..cbad7c74d 100644 --- a/Source/Doxygen/doxyparser.cxx +++ b/Source/Doxygen/doxyparser.cxx @@ -289,6 +289,18 @@ DoxygenParser::TokenListCIt DoxygenParser::getEndOfParagraph(const TokenList &to TokenListCIt endOfParagraph = m_tokenListIt; while (endOfParagraph != tokList.end()) { + // If \code or \verbatim is encountered within a paragraph, then + // go all the way to the end of that command, since the content + // could contain empty lines that would appear to be paragraph + // ends: + if (endOfParagraph->m_tokenType == COMMAND && + (endOfParagraph->m_tokenString == "code" || + endOfParagraph->m_tokenString == "verbatim")) { + const string theCommand = endOfParagraph->m_tokenString; + endOfParagraph = getEndCommand("end" + theCommand, tokList); + endOfParagraph++; // Move after the end command + return endOfParagraph; + } if (endOfParagraph->m_tokenType == END_LINE) { endOfParagraph++; if (endOfParagraph != tokList.end()