summaryrefslogtreecommitdiffstats
path: root/src/classdef.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2000-02-20 17:34:13 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2000-02-20 17:34:13 (GMT)
commita81ce4743212122ae050e5efbc4bfda92e6a664e (patch)
treef122ed1db8000e070cab7f8ad4c4af87b89adbe5 /src/classdef.cpp
parentddbc18f5fb336d3a83521404620b6734b13e5610 (diff)
downloadDoxygen-a81ce4743212122ae050e5efbc4bfda92e6a664e.zip
Doxygen-a81ce4743212122ae050e5efbc4bfda92e6a664e.tar.gz
Doxygen-a81ce4743212122ae050e5efbc4bfda92e6a664e.tar.bz2
+ The graphical class hierarchy was not properly generated when
template classes were used. + Template specialization could not be documented using the \class command. This is now fixed. Example: /*! * \class T<A,int> * My template specialization of template T. */ + Fixed a bug when parsing M$-IDL code, containing helpstring("bla") attributes. The attributes of a method are no longer shown in the documentation (the attributes of method arguments still visible however). + Improved the search algorithm that tries to connect classes with their base classes. It should now (hopefully) work correct in all cases where nested classes and/or namespaces are used. + Fixed a scanner problem that could cause doxygen to get confused after parsing struct initializers. + the DOTFONTPATH environment variable is now automatically set for Windows. This should make any "missing doxfont.ttf" messages disappear. + the extra LaTeX packages specified with EXTRA_PACKAGES can now also be used when generating formulas for HTML. + The documentation of a parameters that is part of a member definition, is now used in the documentation as well. + Fixed a HTML output bug in the class/file group-pages. + Links to example files generated with \link ... \endlink where not correct. + made the bullet list generation more robust. A space is now required after the - sign. A list can now start a paragraph. + the configure script now detects whether or not dot is installed. + The VERBATIM_HEADERS option didn't have any effect any more. It should now works again as advertised. + The IGNORE_PREFIX option can now also deal with a list of prefixes. + @verbatim ... @endverbatim blocks did not work. + new option SHOW_INCLUDE_FILES, which can be set to NO to turn of the list of include files that is generated for each documented file. + new option STRIP_CODE_COMMENTS, which can be set to NO to keep any special comment blocks in the generated code fragments.
Diffstat (limited to 'src/classdef.cpp')
-rw-r--r--src/classdef.cpp58
1 files changed, 36 insertions, 22 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 2f6fdd9..6726207 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -331,27 +331,39 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (incInfo)
{
QCString nm=incInfo->includeName.isEmpty() ?
- incInfo->fileDef->docName().data() :
- incInfo->includeName.data();
- ol.startTypewriter();
- ol.docify("#include ");
- if (incInfo->local)
- ol.docify("\"");
- else
- ol.docify("<");
- ol.pushGeneratorState();
- ol.disable(OutputGenerator::Html);
- ol.docify(nm);
- ol.disableAllBut(OutputGenerator::Html);
- ol.enable(OutputGenerator::Html);
- ol.writeObjectLink(0,incInfo->fileDef->includeName(),0,nm);
- ol.popGeneratorState();
- if (incInfo->local)
- ol.docify("\"");
- else
- ol.docify(">");
- ol.endTypewriter();
- ol.newParagraph();
+ (incInfo->fileDef ?
+ incInfo->fileDef->docName().data() : ""
+ ) :
+ incInfo->includeName.data();
+ if (!nm.isEmpty())
+ {
+ ol.startTypewriter();
+ ol.docify("#include ");
+ if (incInfo->local)
+ ol.docify("\"");
+ else
+ ol.docify("<");
+ ol.pushGeneratorState();
+ ol.disable(OutputGenerator::Html);
+ ol.docify(nm);
+ ol.disableAllBut(OutputGenerator::Html);
+ ol.enable(OutputGenerator::Html);
+ if (incInfo->fileDef)
+ {
+ ol.writeObjectLink(0,incInfo->fileDef->includeName(),0,nm);
+ }
+ else
+ {
+ ol.docify(nm);
+ }
+ ol.popGeneratorState();
+ if (incInfo->local)
+ ol.docify("\"");
+ else
+ ol.docify(">");
+ ol.endTypewriter();
+ ol.newParagraph();
+ }
}
@@ -1340,12 +1352,14 @@ void ClassDef::determineImplUsageRelation()
//printf("in class %s found var type=`%s' name=`%s'\n",
// name().data(),type.data(),md->name().data());
int p=0,i,l;
- while ((i=re.match(type,p,&l))!=-1) // for each class name in the type
+ bool found=FALSE;
+ while ((i=re.match(type,p,&l))!=-1 && !found) // for each class name in the type
{
ClassDef *cd=getClass(name()+"::"+type.mid(i,l));
if (cd==0) cd=getClass(type.mid(i,l)); // TODO: also try inbetween scopes!
if (cd && cd->isLinkable()) // class exists and is linkable
{
+ found=TRUE;
if (usesImplClassDict==0) usesImplClassDict = new UsesClassDict(257);
UsesClassDef *ucd=usesImplClassDict->find(cd->name());
if (ucd==0)