diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2007-05-06 12:30:18 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2007-05-06 12:30:18 (GMT) |
commit | 23c13fc17365dca77acbe9a992e03ae4a40f6eca (patch) | |
tree | cfc812b095178411db5aae564fc43cac8b714078 /src/docparser.cpp | |
parent | 124b4621e793d9ffa3eca3ee91cdb6ded37c553e (diff) | |
download | Doxygen-23c13fc17365dca77acbe9a992e03ae4a40f6eca.zip Doxygen-23c13fc17365dca77acbe9a992e03ae4a40f6eca.tar.gz Doxygen-23c13fc17365dca77acbe9a992e03ae4a40f6eca.tar.bz2 |
Release-1.5.2-20070506
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r-- | src/docparser.cpp | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp index e1bfac5..da673bf 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -1422,7 +1422,7 @@ static void readTextFileByName(const QString &file,QString &text) FileDef *fd; if ((fd=findFileDef(Doxygen::exampleNameDict,file,ambig))) { - text = fileToString(fd->absFilePath(),FALSE); + text = fileToString(fd->absFilePath(),Config_getBool("FILTER_SOURCE_FILES")); } else if (ambig) { @@ -2092,6 +2092,8 @@ void DocRef::parse() warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found", g_token->name.data()); break; + case TK_HTMLTAG: + break; default: warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s", tokToString(tok)); @@ -2111,7 +2113,7 @@ void DocRef::parse() } handlePendingStyleCommands(this,m_children); - DBG(("DocRef::parse() end\n")); + DocNode *n=g_nodeStack.pop(); ASSERT(n==this); } @@ -2155,7 +2157,7 @@ DocLink::DocLink(DocNode *parent,const QString &target) : } -QString DocLink::parse(bool isJavaLink) +QString DocLink::parse(bool isJavaLink,bool isXmlLink) { QString result; g_nodeStack.push(this); @@ -2187,6 +2189,13 @@ QString DocLink::parse(bool isJavaLink) warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found", g_token->name.data()); break; + case TK_HTMLTAG: + if (g_token->name!="see" || !isXmlLink) + { + warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected xml/html command %s found", + g_token->name.data()); + } + goto endlink; case TK_LNKWORD: case TK_WORD: if (isJavaLink) // special case to detect closing } @@ -4847,11 +4856,31 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag // can we expect from Microsoft...) { QString cref; + //printf("XML_SEE: empty tag=%d\n",g_token->emptyTag); if (findAttribute(tagHtmlAttribs,"cref",&cref)) { - DocRef *ref = new DocRef(this,cref); - m_children.append(ref); - ref->parse(); + if (g_token->emptyTag) // <see cref="..."/> style + { + bool inSeeBlock = g_inSeeBlock; + g_token->name = cref; + g_inSeeBlock = TRUE; + handleLinkedWord(this,m_children); + g_inSeeBlock = inSeeBlock; + } + else // <see cref="...">...</see> style + { + //DocRef *ref = new DocRef(this,cref); + //m_children.append(ref); + //ref->parse(); + doctokenizerYYsetStatePara(); + DocLink *lnk = new DocLink(this,cref); + m_children.append(lnk); + QString leftOver = lnk->parse(FALSE,TRUE); + if (!leftOver.isEmpty()) + { + m_children.append(new DocWord(this,leftOver)); + } + } } else { |