diff --git a/Examples/test-suite/doxygen_translate_all_tags.i b/Examples/test-suite/doxygen_translate_all_tags.i
index 0bc50f3a8..9fc25416f 100644
--- a/Examples/test-suite/doxygen_translate_all_tags.i
+++ b/Examples/test-suite/doxygen_translate_all_tags.i
@@ -269,12 +269,16 @@ int func07(int a)
*
* \protectedsection
*
+ * \anchor someAnchor
+ * Text after anchor.
* \protocol someProtocol header.h "Header name"
*
* \public
*
* \publicsection
*
+ * \ref someAnchor Anchor description
+ *
* \ref someAnchor
*
* \related toSomething
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 5374d97c4..50c36b6f7 100644
--- a/Examples/test-suite/java/doxygen_translate_all_tags_runme.java
+++ b/Examples/test-suite/java/doxygen_translate_all_tags_runme.java
@@ -111,11 +111,15 @@ public class doxygen_translate_all_tags_runme {
" @param a the first param\n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func08(int)",
- " Remarks: Some remark text \n" +
- " Remarks: Another remarks section \n" +
- " @return Whatever \n" +
- " @return it \n" +
- " @return may return \n");
+ "\n" +
+ "Text after anchor.\n" +
+ "Anchor description\n" +
+ "someAnchor\n" +
+ " Remarks: Some remark text \n" +
+ " Remarks: Another remarks section \n" +
+ " @return Whatever \n" +
+ " @return it \n" +
+ " @return may return \n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func09(int)",
" This will only appear in RTF \n" +
diff --git a/Source/DoxygenTranslator/src/DoxygenParser.cpp b/Source/DoxygenTranslator/src/DoxygenParser.cpp
index 995e0c7ab..08dae5a86 100644
--- a/Source/DoxygenTranslator/src/DoxygenParser.cpp
+++ b/Source/DoxygenTranslator/src/DoxygenParser.cpp
@@ -692,10 +692,12 @@ int DoxygenParser::addCommandUnique(const std::string &theCommand,
"No key followed " + theCommand + " command. Not added");
return 0;
}
- std::string text = getNextWord();
- aNewList.push_back(DoxygenEntity("plainstd::string", name));
- if (!text.empty())
- aNewList.push_back(DoxygenEntity("plainstd::string", text));
+ DoxygenEntityList aNewList;
+ TokenListCIt endOfLine = getOneLine(tokList);
+ if (endOfLine != m_tokenListIt) {
+ aNewList = parse(endOfLine, tokList);
+ }
+ aNewList.push_front(DoxygenEntity("plainstd::string", name));
doxyList.push_back(DoxygenEntity(theCommand, aNewList));
}
// \subpage ["(text)"]
diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.cpp b/Source/DoxygenTranslator/src/JavaDocConverter.cpp
index f14fefafd..f9d27c84c 100644
--- a/Source/DoxygenTranslator/src/JavaDocConverter.cpp
+++ b/Source/DoxygenTranslator/src/JavaDocConverter.cpp
@@ -88,6 +88,7 @@ void JavaDocConverter::fillStaticTables()
tagHandlers["::"] = make_pair(&JavaDocConverter::handleTagChar, "");
// these commands are stripped out
tagHandlers["attention"] = make_pair(&JavaDocConverter::handleParagraph, "");
+ tagHandlers["anchor"] = make_pair(&JavaDocConverter::handleTagAnchor, "");
tagHandlers["brief"] = make_pair(&JavaDocConverter::handleParagraph, "");
tagHandlers["bug"] = make_pair(&JavaDocConverter::handleParagraph, "");
tagHandlers["date"] = make_pair(&JavaDocConverter::handleParagraph, "");
@@ -112,6 +113,7 @@ void JavaDocConverter::fillStaticTables()
tagHandlers["package"] = make_pair(&JavaDocConverter::handleTagSame, "");
tagHandlers["param"] = make_pair(&JavaDocConverter::handleTagParam, "");
tagHandlers["tparam"] = make_pair(&JavaDocConverter::handleTagParam, "");
+ tagHandlers["ref"] = make_pair(&JavaDocConverter::handleTagRef, "");
tagHandlers["result"] = make_pair(&JavaDocConverter::handleTagSame, "return");
tagHandlers["return"] = make_pair(&JavaDocConverter::handleTagSame, "");
tagHandlers["returns"] = make_pair(&JavaDocConverter::handleTagSame,
@@ -402,6 +404,15 @@ void JavaDocConverter::translateEntity(DoxygenEntity &tag,
}
}
+
+void JavaDocConverter::handleTagAnchor(DoxygenEntity& tag,
+ std::string& translatedComment,
+ std::string &)
+{
+ translatedComment += "";
+}
+
+
void JavaDocConverter::handleTagHtml(DoxygenEntity& tag,
std::string& translatedComment,
std::string &arg)
@@ -573,6 +584,7 @@ void JavaDocConverter::handleTagPar(DoxygenEntity& tag,
translatedComment += "
";
}
+
void JavaDocConverter::handleTagParam(DoxygenEntity& tag,
std::string& translatedComment,
std::string&)
@@ -590,6 +602,35 @@ void JavaDocConverter::handleTagParam(DoxygenEntity& tag,
handleParagraph(tag, translatedComment, dummy);
}
+
+void JavaDocConverter::handleTagRef(DoxygenEntity& tag,
+ std::string& translatedComment,
+ std::string&)
+{
+ std::string dummy;
+// translatedComment += "1111";
+ if (!tag.entityList.size())
+ return;
+// translatedComment += "2222";
+ //if (!paramExists(tag.entityList.begin()->data))
+// return;
+
+ // we don't translate to link, since \page is not supported in Java, but we
+ // make text in italic, so that reader at least knows what to look at.
+ // translatedComment += "";
+ // tag.entityList.pop_front();
+ // translatedComment += translateSubtree(tag);
+ // translatedComment += "";
+ string anchor = tag.entityList.begin()->data;
+ tag.entityList.pop_front();
+ string anchorText = translateSubtree(tag);
+ if (anchorText.find_first_not_of(" \t") == string::npos) {
+ anchorText = anchor;
+ }
+ translatedComment += "" + anchorText + "";
+}
+
+
string JavaDocConverter::convertLink(string linkObject)
{
if (GetFlag(currentNode, "feature:doxygen:nolinktranslate"))
diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.h b/Source/DoxygenTranslator/src/JavaDocConverter.h
index abb6f2233..b0355e9c2 100644
--- a/Source/DoxygenTranslator/src/JavaDocConverter.h
+++ b/Source/DoxygenTranslator/src/JavaDocConverter.h
@@ -61,6 +61,11 @@ protected:
*/
void handleTagVerbatim(DoxygenEntity& tag, std::string& translatedComment, std::string &arg);
+ /** Creates anchor link. */
+ void handleTagAnchor(DoxygenEntity& tag,
+ std::string& translatedComment,
+ std::string &arg);
+
/*
* Wrap the command data with the html tag
* arg - html tag, with no braces
@@ -125,6 +130,12 @@ protected:
* Insert \@param command, if it is really a function param
*/
void handleTagParam(DoxygenEntity &tag, std::string &translatedComment, std::string &arg);
+ /*
+ * Writes text of \ref tag in italic. Does not produce link, because javadoc
+ * does not support page and section tags.
+ */
+ void handleTagRef(DoxygenEntity& tag, std::string& translatedComment,
+ std::string&);
/*
* Insert {@link...} command, and handle all the s correctly
* (like converting types of params, etc)