summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/docparser.cpp20
-rw-r--r--src/util.cpp7
2 files changed, 27 insertions, 0 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp
index b7e8dad..12eae8a 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -232,6 +232,23 @@ static void docParserPopContext(bool keepParamInfo=FALSE)
//---------------------------------------------------------------------------
+// replaces { with < and } with > inside string s
+static void unescapeCRef(QCString &s)
+{
+ char *p = s.data();
+ if (p)
+ {
+ char c;
+ while ((c=*p))
+ {
+ if (c=='{') c='<'; else if (c=='}') c='>';
+ *p++=c;
+ }
+ }
+}
+
+//---------------------------------------------------------------------------
+
/*! search for an image in the imageNameDict and if found
* copies the image to the output directory (which depends on the \a type
* parameter).
@@ -6045,6 +6062,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
QCString exceptName;
if (findAttribute(tagHtmlAttribs,"cref",&exceptName))
{
+ unescapeCRef(exceptName);
retval = handleParamSection(exceptName,DocParamSect::Exception,TRUE);
}
else
@@ -6089,6 +6107,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
//printf("XML_SEE: empty tag=%d\n",g_token->emptyTag);
if (findAttribute(tagHtmlAttribs,"cref",&cref))
{
+ unescapeCRef(cref);
if (g_token->emptyTag) // <see cref="..."/> style
{
bool inSeeBlock = g_inSeeBlock;
@@ -6123,6 +6142,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
QCString cref;
if (findAttribute(tagHtmlAttribs,"cref",&cref))
{
+ unescapeCRef(cref);
// Look for an existing "see" section
DocSimpleSect *ss=0;
QListIterator<DocNode> cli(m_children);
diff --git a/src/util.cpp b/src/util.cpp
index 39d0ba2..000de53 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -4716,6 +4716,7 @@ bool resolveLink(/* in */ const char *scName,
*resContext=0;
QCString linkRef=lr;
+ QCString linkRefWithoutTemplates = stripTemplateSpecifiersFromScope(linkRef,FALSE);
//printf("ResolveLink linkRef=%s inSee=%d\n",lr,inSeeBlock);
FileDef *fd;
GroupDef *gd;
@@ -4772,6 +4773,12 @@ bool resolveLink(/* in */ const char *scName,
resAnchor=cd->anchor();
return TRUE;
}
+ else if ((cd=getClass(linkRefWithoutTemplates))) // C#/Java generic class link
+ {
+ *resContext=cd;
+ resAnchor=cd->anchor();
+ return TRUE;
+ }
else if ((cd=getClass(linkRef+"-p"))) // Obj-C protocol link
{
*resContext=cd;