diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2005-07-21 08:42:44 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2005-07-21 08:42:44 (GMT) |
commit | e2bafacf8c0f6ef0dd7f9f4958a125761bda31ec (patch) | |
tree | 0d39615cce00be60a77b797babf9b09b9c6b2a09 /src/docparser.cpp | |
parent | 97589008c3ba05a8cc3ffe2dc47f118908c741b6 (diff) | |
download | Doxygen-e2bafacf8c0f6ef0dd7f9f4958a125761bda31ec.zip Doxygen-e2bafacf8c0f6ef0dd7f9f4958a125761bda31ec.tar.gz Doxygen-e2bafacf8c0f6ef0dd7f9f4958a125761bda31ec.tar.bz2 |
Release-1.4.4
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r-- | src/docparser.cpp | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp index c5cabcd..1399788 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -1623,7 +1623,7 @@ void DocCopy::parse() g_nodeStack.clear(); g_copyStack.append(def); internalValidatingParseDoc(this,m_children,doc); - ASSERT(g_copyStack.remove(def)); + g_copyStack.remove(def); ASSERT(g_styleStack.isEmpty()); ASSERT(g_nodeStack.isEmpty()); docParserPopContext(); @@ -4043,6 +4043,31 @@ int DocPara::handleStartCode() return retval; } +void DocPara::handleInheritDoc() +{ + if (g_memberDef) // inheriting docs from a member + { + MemberDef *reMd = g_memberDef->reimplements(); + if (reMd) // member from which was inherited. + { + MemberDef *thisMd = g_memberDef; + //printf("{InheritDocs:%s=>%s}\n",g_memberDef->qualifiedName().data(),reMd->qualifiedName().data()); + docParserPushContext(); + g_context=reMd->getOuterScope()->name(); + g_memberDef=reMd; + g_styleStack.clear(); + g_nodeStack.clear(); + g_copyStack.append(reMd); + internalValidatingParseDoc(this,m_children,reMd->briefDescription()); + internalValidatingParseDoc(this,m_children,reMd->documentation()); + g_copyStack.remove(reMd); + docParserPopContext(); + g_memberDef = thisMd; + } + } +} + + int DocPara::handleCommand(const QString &cmdName) { DBG(("handleCommand(%s)\n",cmdName.data())); @@ -4392,6 +4417,9 @@ int DocPara::handleCommand(const QString &cmdName) case CMD_INTERNALREF: warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: unexpected command %s",g_token->name.data()); break; + case CMD_INHERITDOC: + handleInheritDoc(); + break; default: // we should not get here! ASSERT(0); @@ -5576,7 +5604,8 @@ DocNode *validatingParseDoc(const char *fileName,int startLine, g_fileName = fileName; g_relPath = (!linkFromIndex && ctx) ? - relativePathToRoot(ctx->getOutputFileBase()) : QString(""); + QString(relativePathToRoot(ctx->getOutputFileBase())) : + QString(""); //printf("ctx->name=%s relPath=%s\n",ctx->name().data(),g_relPath.data()); g_memberDef = md; g_nodeStack.clear(); |