diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-04-07 17:23:32 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-04-07 17:23:32 (GMT) |
commit | 63962ead8b355c4c93d5e442ab0a26005e1b863f (patch) | |
tree | c38e1a43019260d8c13223b0bab64424c575dfcb /src/doxygen.cpp | |
parent | de20cde3d47c58a69c25afe75e4c476d61dbe631 (diff) | |
download | Doxygen-63962ead8b355c4c93d5e442ab0a26005e1b863f.zip Doxygen-63962ead8b355c4c93d5e442ab0a26005e1b863f.tar.gz Doxygen-63962ead8b355c4c93d5e442ab0a26005e1b863f.tar.bz2 |
Release-1.2.15-20020407
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r-- | src/doxygen.cpp | 52 |
1 files changed, 44 insertions, 8 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 0bbe32e..3132baf 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -2213,6 +2213,28 @@ static void transferFunctionDocumentation() } mdec->mergeMemberSpecifiers(mdef->getMemberSpecifiers()); mdef->mergeMemberSpecifiers(mdec->getMemberSpecifiers()); + + ArgumentList *decAl = mdec->argumentList(); + ArgumentList *defAl = mdef->argumentList(); + if (decAl && defAl) + { + ArgumentListIterator decAli(*decAl); + ArgumentListIterator defAli(*defAl); + Argument *decA,*defA; + for (decAli.toFirst(),defAli.toFirst(); + (decA=decAli.current()) && (defA=defAli.current()); + ++decAli,++defAli) + { + if (decA->docs.isEmpty() && !defA->docs.isEmpty()) + { + decA->docs = defA->docs.copy(); + } + else if (!defA->docs.isEmpty() && defA->docs.isEmpty()) + { + defA->docs = decA->docs.copy(); + } + } + } // copy group info. //if (mdec->getGroupDef()==0 && mdef->getGroupDef()!=0) @@ -2686,6 +2708,18 @@ static bool findTemplateInstanceRelation(Entry *root, return TRUE; } +static bool isRecursiveBaseClass(const QCString &scope,const QCString &name) +{ + QCString n=name; + int index=n.find('<'); + if (index!=-1) + { + n=n.left(index); + } + bool result = rightScopeMatch(scope,n); + return result; +} + static bool findClassRelation( Entry *root, ClassDef *cd, @@ -2732,16 +2766,18 @@ static bool findClassRelation( QCString templSpec; ClassDef *baseClass=getResolvedClass(cd,baseClassName,&baseClassIsTypeDef,&templSpec); //printf("baseClassName=%s baseClass=%p cd=%p\n",baseClassName.data(),baseClass,cd); - //printf(" baseClassName=`%s' baseClass=%s templSpec=%s\n", + //printf(" root->name=`%s' baseClassName=`%s' baseClass=%s templSpec=%s\n", + // root->name.data(), // baseClassName.data(), - // baseClass?baseClass->name().data():"<none>", - // templSpec.data() + // baseClass?baseClass->name().data():"<none>", + // templSpec.data() // ); - if (baseClassName.left(root->name.length())!=root->name || - baseClassName.at(root->name.length())!='<' - ) // Check for base class with the same name. - // If found then look in the outer scope for a match - // and prevent recursion. + //if (baseClassName.left(root->name.length())!=root->name || + // baseClassName.at(root->name.length())!='<' + // ) // Check for base class with the same name. + // // If found then look in the outer scope for a match + // // and prevent recursion. + if (!isRecursiveBaseClass(root->name,baseClassName)) { Debug::print( Debug::Classes,0," class relation %s inherited by %s found (%s and %s)\n", |