summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/doxygen.cpp13
-rw-r--r--src/tagreader.cpp9
2 files changed, 18 insertions, 4 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 533e6ef..5492dc9 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1037,9 +1037,16 @@ static Definition *buildScopeFromQualifiedName(const QCString name,
else // scope is a namespace
{
}
- // make the parent/child scope relation
- prevScope->addInnerCompound(innerScope);
- innerScope->setOuterScope(prevScope);
+ if (innerScope)
+ {
+ // make the parent/child scope relation
+ prevScope->addInnerCompound(innerScope);
+ innerScope->setOuterScope(prevScope);
+ }
+ else // current scope is a class, so return only the namespace part...
+ {
+ return prevScope;
+ }
// proceed to the next scope fragment
p=idx+l+2;
prevScope=innerScope;
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index 23b8f13..50909ee 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -95,7 +95,7 @@ class TagMemberInfo
class TagClassInfo
{
public:
- enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category };
+ enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category, Enum };
TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); isObjC=FALSE; }
~TagClassInfo() { delete bases; delete templateArguments; }
QCString name;
@@ -301,6 +301,12 @@ class TagFileParser : public QXmlDefaultHandler
m_curClass->kind = TagClassInfo::Interface;
m_state = InClass;
}
+ else if (kind=="enum")
+ {
+ m_curClass = new TagClassInfo;
+ m_curClass->kind = TagClassInfo::Enum;
+ m_state = InClass;
+ }
else if (kind=="exception")
{
m_curClass = new TagClassInfo;
@@ -1286,6 +1292,7 @@ void TagFileParser::buildLists(Entry *root)
case TagClassInfo::Struct: ce->spec = Entry::Struct; break;
case TagClassInfo::Union: ce->spec = Entry::Union; break;
case TagClassInfo::Interface: ce->spec = Entry::Interface; break;
+ case TagClassInfo::Enum: ce->spec = Entry::Enum; break;
case TagClassInfo::Exception: ce->spec = Entry::Exception; break;
case TagClassInfo::Protocol: ce->spec = Entry::Protocol; break;
case TagClassInfo::Category: ce->spec = Entry::Category; break;