summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn McFarland <mcfarljm@gmail.com>2019-05-25 14:15:44 -0500
committerJohn McFarland <mcfarljm@gmail.com>2019-05-25 16:25:54 -0500
commitc52bed2e668166ab661de20e2147e56d24ca3d2b (patch)
tree5895c27257301a8e7af36adde03f40eaf3b9edb1
parent321cb096a88d6cbb9a6709d7304b0134624d3181 (diff)
downloadswig-c52bed2e668166ab661de20e2147e56d24ca3d2b.tar.gz
Eliminate extra newlines in doxygen python \verbatim blocks
Eliminate extra leading and trailing newlines present in translated doxygen \verbatim comments for python. Updating doxygen python tests accordingly.
-rw-r--r--Examples/test-suite/python/doxygen_translate_all_tags_runme.py2
-rw-r--r--Examples/test-suite/python/doxygen_translate_runme.py2
-rw-r--r--Source/Doxygen/pydoc.cxx15
-rw-r--r--Source/Doxygen/pydoc.h5
4 files changed, 19 insertions, 5 deletions
diff --git a/Examples/test-suite/python/doxygen_translate_all_tags_runme.py b/Examples/test-suite/python/doxygen_translate_all_tags_runme.py
index e269b8c18..7cf09fb56 100644
--- a/Examples/test-suite/python/doxygen_translate_all_tags_runme.py
+++ b/Examples/test-suite/python/doxygen_translate_all_tags_runme.py
@@ -283,13 +283,11 @@ r"""TODO: Some very important task
-
very long
text with tags <sometag>
-
Version: 0.0.0.2
Warning: This is senseless!
diff --git a/Examples/test-suite/python/doxygen_translate_runme.py b/Examples/test-suite/python/doxygen_translate_runme.py
index 8af5953d1..7d127454b 100644
--- a/Examples/test-suite/python/doxygen_translate_runme.py
+++ b/Examples/test-suite/python/doxygen_translate_runme.py
@@ -120,11 +120,9 @@ TODO: Some very important task
:type b: float
:param b: B is mentioned again...
-
very long
text with tags <sometag>
-
Version: 0.0.0.2
Warning: This is senseless!
diff --git a/Source/Doxygen/pydoc.cxx b/Source/Doxygen/pydoc.cxx
index 736e09458..31ec972d6 100644
--- a/Source/Doxygen/pydoc.cxx
+++ b/Source/Doxygen/pydoc.cxx
@@ -219,7 +219,7 @@ void PyDocConverter::fillStaticTables() {
tagHandlers["short"] = make_handler(&PyDocConverter::handleParagraph);
tagHandlers["todo"] = make_handler(&PyDocConverter::handleParagraph);
tagHandlers["version"] = make_handler(&PyDocConverter::handleParagraph);
- tagHandlers["verbatim"] = make_handler(&PyDocConverter::handleParagraph);
+ tagHandlers["verbatim"] = make_handler(&PyDocConverter::handleVerbatimBlock);
tagHandlers["warning"] = make_handler(&PyDocConverter::handleParagraph);
tagHandlers["xmlonly"] = make_handler(&PyDocConverter::handleParagraph);
// these commands have special handlers
@@ -419,6 +419,19 @@ void PyDocConverter::handleParagraph(DoxygenEntity &tag, std::string &translated
translatedComment += translateSubtree(tag);
}
+void PyDocConverter::handleVerbatimBlock(DoxygenEntity &tag, std::string &translatedComment, const std::string &) {
+ string verb = translateSubtree(tag);
+
+ if ((! verb.empty()) && verb[0] == '\n')
+ verb.erase(verb.begin());
+
+ // Remove the last newline to prevent doubling the newline already present after \endverbatim
+ trimWhitespace(verb); // Needed to catch trailing newline below
+ if ((! verb.empty()) && verb[verb.size()-1] == '\n')
+ verb = verb.substr(0, verb.size()-1);
+ translatedComment += verb;
+}
+
void PyDocConverter::handleMath(DoxygenEntity &tag, std::string &translatedComment, const std::string &arg) {
IndentGuard indent;
diff --git a/Source/Doxygen/pydoc.h b/Source/Doxygen/pydoc.h
index 8f432fd18..df8997d76 100644
--- a/Source/Doxygen/pydoc.h
+++ b/Source/Doxygen/pydoc.h
@@ -80,6 +80,11 @@ protected:
void handleParagraph(DoxygenEntity &tag, std::string &translatedComment, const std::string &arg = std::string());
/*
+ * Handle Doxygen verbatim tag
+ */
+ void handleVerbatimBlock(DoxygenEntity &tag, std::string &translatedComment, const std::string &arg = std::string());
+
+ /*
* Handle one of the Doxygen formula-related tags.
*/
void handleMath(DoxygenEntity &tag, std::string &translatedComment, const std::string &arg);