diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-05-31 20:12:30 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-06-15 08:47:58 (GMT) |
commit | bd76ec600742936e6373ccbcdfc19966b44cb3ec (patch) | |
tree | 54abe9cfcb619e333e71cc2e9571eea244908150 /src/util.cpp | |
parent | 438375840da2b1ea19126f8d4b53f0bc71c62a68 (diff) | |
download | Doxygen-bd76ec600742936e6373ccbcdfc19966b44cb3ec.zip Doxygen-bd76ec600742936e6373ccbcdfc19966b44cb3ec.tar.gz Doxygen-bd76ec600742936e6373ccbcdfc19966b44cb3ec.tar.bz2 |
Bug 701314 - URLs are not created on C# classes in some cases
Diffstat (limited to 'src/util.cpp')
-rw-r--r-- | src/util.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/util.cpp b/src/util.cpp index 6ac1585..b66932e 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1593,6 +1593,12 @@ ClassDef *getResolvedClass(Definition *scope, { result = getResolvedClassRec(scope,fileScope,n,pTypeDef,pTemplSpec,pResolvedType); } + if (result==0) // for nested classes imported via tag files, the scope may not + // present, so we check the class name directly as well. + // See also bug701314 + { + result = getClass(n); + } if (!mayBeUnlinkable && result && !result->isLinkable()) { if (!mayBeHidden || !result->isHidden()) @@ -3905,7 +3911,7 @@ static void findMembersWithSpecificName(MemberName *mn, * file fd. */ bool getDefs(const QCString &scName, - const QCString &memberName, + const QCString &mbName, const char *args, MemberDef *&md, ClassDef *&cd, @@ -3919,10 +3925,12 @@ bool getDefs(const QCString &scName, ) { fd=0, md=0, cd=0, nd=0, gd=0; - if (memberName.isEmpty()) return FALSE; /* empty name => nothing to link */ + if (mbName.isEmpty()) return FALSE; /* empty name => nothing to link */ QCString scopeName=scName; + QCString memberName=mbName; scopeName = substitute(scopeName,"\\","::"); // for PHP + memberName = substitute(memberName,"\\","::"); // for PHP //printf("Search for name=%s args=%s in scope=%s forceEmpty=%d\n", // memberName.data(),args,scopeName.data(),forceEmptyScope); @@ -4594,6 +4602,14 @@ bool resolveRef(/* in */ const char *scName, { return resolveRef(scName,name,inSeeBlock,resContext,resMember,FALSE,0,checkScope); } + if (bracePos!=-1) // Try without parameters as well, could be a contructor invocation + { + *resContext=getClass(fullName.left(bracePos)); + if (*resContext) + { + return TRUE; + } + } //printf("resolveRef: %s not found!\n",name); return FALSE; |