From d22ecafb36c2e97aa3a2d140d232f8753b542d61 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sat, 16 Jun 2018 15:31:49 +0100 Subject: [PATCH] Fix Java doxygen:notranslate for single line comments Remove extra generated line --- Examples/test-suite/doxygen_basic_notranslate.i | 6 ++++++ .../test-suite/java/doxygen_basic_notranslate_runme.java | 7 ++++--- .../test-suite/python/doxygen_basic_notranslate_runme.py | 3 +++ Source/Doxygen/javadoc.cxx | 5 ++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Examples/test-suite/doxygen_basic_notranslate.i b/Examples/test-suite/doxygen_basic_notranslate.i index 45e36c6e3..e62be5437 100644 --- a/Examples/test-suite/doxygen_basic_notranslate.i +++ b/Examples/test-suite/doxygen_basic_notranslate.i @@ -2,6 +2,7 @@ %include "doxygen_basic_translate.h" %feature("doxygen:notranslate") function; +%feature("doxygen:notranslate") function1; %feature("doxygen:notranslate") function2; %feature("doxygen:notranslate") function3; %feature("doxygen:notranslate") function4; @@ -25,6 +26,11 @@ int function() return 0; } +/** Single line comment */ +void function1() +{ +} + /** * A test of a very very very very very very very very very very very very very very very very * very very very very very long comment string. diff --git a/Examples/test-suite/java/doxygen_basic_notranslate_runme.java b/Examples/test-suite/java/doxygen_basic_notranslate_runme.java index d1c433545..e3d9b0279 100644 --- a/Examples/test-suite/java/doxygen_basic_notranslate_runme.java +++ b/Examples/test-suite/java/doxygen_basic_notranslate_runme.java @@ -61,8 +61,7 @@ public class doxygen_basic_notranslate_runme { " \n" + ""); wantedComments.put("doxygen_basic_notranslate.doxygen_basic_notranslate.function5(int)", - " This is a post comment. \n" + - ""); + " This is a post comment. "); wantedComments.put("doxygen_basic_notranslate.doxygen_basic_notranslate.function7(doxygen_basic_notranslate.SWIGTYPE_p_p_p_Shape)", " \n" + " Test for a parameter with difficult type\n" + @@ -88,6 +87,8 @@ public class doxygen_basic_notranslate_runme { " @param a Some parameter, default is 42\n" + " \n" + ""); + wantedComments.put("doxygen_basic_notranslate.doxygen_basic_notranslate.function1()", + " Single line comment "); wantedComments.put("doxygen_basic_notranslate.doxygen_basic_notranslate.function2()", " \n" + " A test of a very very very very very very very very very very very very very very very very\n" + @@ -98,4 +99,4 @@ public class doxygen_basic_notranslate_runme { // and ask the parser to check comments for us System.exit(parser.check(wantedComments)); } -} \ No newline at end of file +} diff --git a/Examples/test-suite/python/doxygen_basic_notranslate_runme.py b/Examples/test-suite/python/doxygen_basic_notranslate_runme.py index 81ac99975..1e654effc 100644 --- a/Examples/test-suite/python/doxygen_basic_notranslate_runme.py +++ b/Examples/test-suite/python/doxygen_basic_notranslate_runme.py @@ -14,6 +14,9 @@ The comment text \sa function2""" ) +comment_verifier.check(inspect.getdoc(doxygen_basic_notranslate.function1), + r"""Single line comment """ +) comment_verifier.check(inspect.getdoc(doxygen_basic_notranslate.function2), r"""A test of a very very very very very very very very very very very very very very very very very very very very very long comment string.""" diff --git a/Source/Doxygen/javadoc.cxx b/Source/Doxygen/javadoc.cxx index 3b81c55a5..18eaeb42d 100644 --- a/Source/Doxygen/javadoc.cxx +++ b/Source/Doxygen/javadoc.cxx @@ -718,10 +718,12 @@ std::string JavaDocConverter::indentAndInsertAsterisks(const string &doc) { size_t idx = doc.find('\n'); size_t indent = 0; + bool singleLineComment = idx == string::npos; // Detect indentation. // The first line in comment is the one after '/**', which may be // spaces and '\n' or the text. In any case it is not suitable to detect // indentation, so we have to skip the first '\n'. + // However, if there is just one line, then use that line to detect indentation. if (idx != string::npos) { size_t nonspaceIdx = doc.find_first_not_of(" \t", idx + 1); if (nonspaceIdx != string::npos) { @@ -767,7 +769,8 @@ std::string JavaDocConverter::indentAndInsertAsterisks(const string &doc) { size_t nonspaceEndIdx = translatedStr.find_last_not_of(" \t"); if (nonspaceEndIdx != string::npos) { if (translatedStr[nonspaceEndIdx] != '\n') { - translatedStr += '\n'; + if (!singleLineComment) + translatedStr += '\n'; } else { // remove trailing spaces translatedStr = translatedStr.substr(0, nonspaceEndIdx + 1);