diff --git a/Doc/Manual/Doxygen.html b/Doc/Manual/Doxygen.html
index bc68ed15c..d374a9c2f 100644
--- a/Doc/Manual/Doxygen.html
+++ b/Doc/Manual/Doxygen.html
@@ -790,6 +790,75 @@ Here is the list of these tags:
+
+
+If one of the following Doxygen tags appears as the first tag in a
+comment, the whole comment block is ignored:
+
+
+
+
+
+
+| \addtogroup |
+\callgraph |
+\callergraph |
+\category |
+
+
+| \class |
+\def |
+\defgroup |
+\dir |
+
+
+| \enum |
+\example |
+\file |
+\fn |
+
+
+| \headerfile |
+\hideinitializer |
+\interface |
+\internal |
+
+
+| \mainpage |
+\name |
+\namespace |
+\nosubgrouping |
+
+
+| \overload |
+\package |
+\page |
+\property |
+
+
+| \protocol |
+\relates |
+\relatesalso |
+\showinitializer |
+
+
+| \struct |
+\name |
+\namespace |
+\nosubgrouping |
+
+
+| \typedef |
+\union |
+\var |
+\weakgroup |
+
+
+
+
+
+
+
39.3.4 Further Details
diff --git a/Examples/test-suite/doxygen_translate_all_tags.i b/Examples/test-suite/doxygen_translate_all_tags.i
index f780b643a..658fc92df 100644
--- a/Examples/test-suite/doxygen_translate_all_tags.i
+++ b/Examples/test-suite/doxygen_translate_all_tags.i
@@ -70,6 +70,8 @@ int func02(int a)
/**
+ * Comment for \b func03().
+ *
* \dir /somePath/someFolder
*
* \dontinclude someFile.h
@@ -176,6 +178,8 @@ int func05(int a)
/**
+ * Comment for \b func06().
+ *
* \interface someInterface someHeader.h "Header name"
*
* \latexonly
@@ -218,6 +222,8 @@ int func06(int a)
/**
+ * Comment for \b func07().
+ *
* \name someHeader.h
*
* \namespace someNamespace
@@ -384,4 +390,16 @@ int func10(int a, float b)
{
}
+
+/**
+ * \interface someInterface someHeader.h "Header name"
+ *
+ * Because of structural Doxygen command at the start of comment block,
+ * the whoile comment block is ignored. See parser.y, f. isStructuralDoxygen()
+ * or documentation for the list of commands.
+ */
+int func11(int a, float b)
+{
+}
+
%}
diff --git a/Examples/test-suite/java/commentParser.java b/Examples/test-suite/java/commentParser.java
index 7ec9e1595..f410e889f 100644
--- a/Examples/test-suite/java/commentParser.java
+++ b/Examples/test-suite/java/commentParser.java
@@ -2,6 +2,8 @@
import com.sun.javadoc.*;
import java.util.HashMap;
import java.util.Map.Entry;
+import java.util.Map;
+import java.util.Set;
import java.util.Iterator;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
@@ -88,8 +90,15 @@ public class commentParser {
}
}
- if (parsedComments.size() < wantedComments.size()) {
- System.out.println("Found " + (wantedComments.size()-parsedComments.size()) + " missed comment(s)!");
+ if (parsedComments.size() != wantedComments.size()) {
+ System.out.println("Mismatch in the number of comments!\n Expected: " +
+ wantedComments.size() + "\n Parsed: " +
+ parsedComments.size());
+ System.out.println("Expected keys: ");
+ printKeys(wantedComments);
+ System.out.println("Parsed keys: ");
+ printKeys(parsedComments);
+
errorCount++;
}
@@ -97,6 +106,14 @@ public class commentParser {
}
+ private static void printKeys(Map map) {
+ Set keys = map.keySet();
+ for (String key : keys) {
+ System.out.println(" " + key);
+ }
+ }
+
+
public static void printCommentListForJavaSource() {
Iterator< Entry > it = parsedComments.entrySet().iterator();
while (it.hasNext())
diff --git a/Examples/test-suite/java/doxygen_translate_all_tags_runme.java b/Examples/test-suite/java/doxygen_translate_all_tags_runme.java
index 9d9cec2b7..aa6ed44ff 100644
--- a/Examples/test-suite/java/doxygen_translate_all_tags_runme.java
+++ b/Examples/test-suite/java/doxygen_translate_all_tags_runme.java
@@ -51,8 +51,11 @@ public class doxygen_translate_all_tags_runme {
" and detailed description of some thing \n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func03(int)",
+ " Comment for func03().\n" +
" italicword \n" +
- " emphazedWord \n");
+ " emphazedWord \n" +
+ " @ example someFile.txt\n" +
+ " Some details on using the example");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func04(int)",
" @exception SuperError \n" +
@@ -80,6 +83,7 @@ public class doxygen_translate_all_tags_runme {
" describing invariant. \n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func06(int)",
+ " Comment for func06().\n" +
" This will only appear in LATeX \n" +
" \n" +
" - Some unordered list \n" +
@@ -90,6 +94,7 @@ public class doxygen_translate_all_tags_runme {
" This will only appear in man\n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func07(int)",
+ " Comment for func07().\n" +
" Note: Here \n" +
" is the note! \n" +
" This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.\n" +
diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.cpp b/Source/DoxygenTranslator/src/JavaDocConverter.cpp
index 86736c8a7..e5ad38008 100644
--- a/Source/DoxygenTranslator/src/JavaDocConverter.cpp
+++ b/Source/DoxygenTranslator/src/JavaDocConverter.cpp
@@ -126,7 +126,7 @@ void JavaDocConverter::fillStaticTables() {
tagHandlers["else"] = make_pair(&JavaDocConverter::handleTagIf, "Else: ");
tagHandlers["elseif"] = make_pair(&JavaDocConverter::handleTagIf, "Else if: ");
tagHandlers["endcond"] = make_pair(&JavaDocConverter::handleTagMessage, "End of conditional comment.");
- // space prevents Javadoc to treat '@ example' as command. File name of
+ // space in second arg prevents Javadoc to treat '@ example' as command. File name of
// example is still informative to user.
tagHandlers["example"] = make_pair(&JavaDocConverter::handleTagSame, " example");
tagHandlers["if"] = make_pair(&JavaDocConverter::handleTagIf, "If: ");
@@ -340,7 +340,9 @@ void JavaDocConverter::translateEntity(DoxygenEntity &tag,
if (it != tagHandlers.end()) {
(this->*(it->second.first))(tag, translatedComment, it->second.second);
} else {
- addError(WARN_DOXYGEN_COMMAND_ERROR, "Unknown doxygen or HTML tag: " + tag.typeOfEntity);
+ // do NOT print warning, since there are many tags, which are not
+ // translatable - many warnings hide important ones
+ // addError(WARN_DOXYGEN_COMMAND_ERROR, "Unknown doxygen or HTML tag: " + tag.typeOfEntity);
}
}