From 0ce3aea886f4e95da56d164b3944fd54d3d68f89 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 10 Jun 2012 09:28:22 +0000 Subject: Release-1.8.1.1 --- Doxyfile | 4 +- INSTALL | 4 +- README | 4 +- configure | 2 +- doc/config.doc | 2 +- doc/doxywizard.1 | 3 + doc/language.doc | 2 +- doc/translator_report.txt | 2 +- src/classdef.cpp | 61 +++--- src/classdef.h | 114 +++++------ src/classlist.h | 4 + src/cmdmapper.cpp | 26 +++ src/cmdmapper.h | 28 +-- src/commentcnv.l | 5 +- src/commentscan.l | 30 ++- src/compound.xsd | 2 + src/compound_xsd.h | 2 + src/config.h | 26 +-- src/config.xml | 4 +- src/configoptions.cpp | 4 +- src/cppvalue.h | 3 +- src/dbusxmlscanner.cpp | 1 + src/dbusxmlscanner.h | 2 +- src/debug.cpp | 2 + src/debug.h | 1 + src/define.h | 7 + src/definition.cpp | 25 ++- src/definition.h | 27 ++- src/diagram.cpp | 102 ++++++++++ src/diagram.h | 102 +--------- src/dirdef.cpp | 72 ------- src/dirdef.h | 13 +- src/docparser.cpp | 35 ++-- src/docparser.h | 126 ++++++------ src/docsets.h | 3 +- src/doctokenizer.h | 1 + src/doctokenizer.l | 2 +- src/dot.cpp | 2 + src/dot.h | 24 +-- src/doxygen.cpp | 101 +++++----- src/doxygen.css | 27 ++- src/doxygen.md | 59 ++++++ src/doxygen_css.h | 27 ++- src/eclipsehelp.h | 3 +- src/entry.h | 23 ++- src/example.h | 2 + src/filedef.cpp | 1 + src/filedef.h | 28 ++- src/filename.h | 5 + src/formula.h | 4 + src/fortrancode.l | 16 +- src/ftvhelp.cpp | 107 ++++++----- src/ftvhelp.h | 2 +- src/groupdef.h | 6 +- src/growbuf.h | 1 + src/htags.h | 1 + src/htmldocvisitor.cpp | 4 +- src/htmlgen.cpp | 20 +- src/htmlgen.h | 7 +- src/htmlhelp.cpp | 6 +- src/htmlhelp.h | 3 +- src/image.cpp | 1 + src/image.h | 2 + src/index.cpp | 158 ++++++++++----- src/index.h | 24 ++- src/latexdocvisitor.cpp | 134 ------------- src/latexgen.h | 4 +- src/mangen.h | 4 +- src/markdown.cpp | 10 +- src/memberdef.cpp | 27 ++- src/memberdef.h | 11 +- src/membergroup.h | 21 +- src/memberlist.cpp | 7 +- src/memberlist.h | 4 + src/membername.h | 8 +- src/namespacedef.cpp | 4 +- src/namespacedef.h | 7 +- src/navtree.js | 48 ++--- src/navtree_js.h | 48 ++--- src/outputgen.h | 15 +- src/outputlist.cpp | 13 ++ src/outputlist.h | 16 +- src/pagedef.h | 3 +- src/reflist.h | 6 +- src/rtfgen.h | 4 +- src/scanner.l | 78 +++++++- src/searchindex.cpp | 5 +- src/section.h | 2 + src/sortdict.h | 8 +- src/tagreader.cpp | 26 +-- src/translator.h | 1 + src/translator_adapter.h | 23 ++- src/translator_id.h | 2 +- src/translator_sr.h | 2 +- src/translatordecoder.h | 1 + src/util.cpp | 9 + src/util.h | 5 +- src/vhdldocgen.cpp | 481 +++++++++++++++++++++++++++++++++++++++++++--- src/vhdldocgen.h | 21 +- src/vhdlparser.y | 36 ++-- src/vhdlscanner.h | 25 +-- src/vhdlscanner.l | 127 ++++++------ src/xmlgen.cpp | 13 +- 103 files changed, 1719 insertions(+), 1057 deletions(-) create mode 100644 src/doxygen.md diff --git a/Doxyfile b/Doxyfile index e8ece5c..fe8d217 100644 --- a/Doxyfile +++ b/Doxyfile @@ -99,7 +99,8 @@ WARN_LOGFILE = INPUT = src INPUT_ENCODING = UTF-8 FILE_PATTERNS = *.h \ - *.cpp + *.cpp \ + *.md RECURSIVE = NO EXCLUDE = src/code.cpp \ src/ce_lex.cpp \ @@ -127,6 +128,7 @@ EXCLUDE = src/code.cpp \ src/vhdlparser.cpp \ src/vhdlcode.cpp \ src/tclscanner.cpp \ + src/lodepng.cpp \ src/doxygen_css.h \ src/doxygen_js.h \ src/doxygen_php.h \ diff --git a/INSTALL b/INSTALL index 880bc4d..e0e1f3d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.8.1 +DOXYGEN Version 1.8.1.1 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (21 May 2012) +Dimitri van Heesch (10 June 2012) diff --git a/README b/README index 5b48723..e986b7d 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.8.1 +DOXYGEN Version 1.8.1.1 Please read INSTALL for compilation instructions. @@ -26,4 +26,4 @@ forum. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (21 May 2012) +Dimitri van Heesch (dimitri@stack.nl) (10 June 2012) diff --git a/configure b/configure index 2a578ad..3b5c33f 100755 --- a/configure +++ b/configure @@ -17,7 +17,7 @@ doxygen_version_major=1 doxygen_version_minor=8 -doxygen_version_revision=1 +doxygen_version_revision=1.1 #NOTE: Setting version_mmn to "NO" will omit mmn info from the package. doxygen_version_mmn=NO diff --git a/doc/config.doc b/doc/config.doc index fd4897a..4cb7cec 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -965,7 +965,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\c LAYOUT_FILE
The \c LAYOUT_FILE tag can be used to specify a layout file which will be parsed by doxygen. The layout file controls the global structure of the generated output files - in an output format independent way. The create the layout file that represents + in an output format independent way. To create the layout file that represents doxygen's defaults, run doxygen with the -l option. You can optionally specify a file name after the option, if omitted DoxygenLayout.xml will be used as the name of the layout file. Note that if you run doxygen from a directory containing diff --git a/doc/doxywizard.1 b/doc/doxywizard.1 index a209f21..e3f23c0 100644 --- a/doc/doxywizard.1 +++ b/doc/doxywizard.1 @@ -6,5 +6,8 @@ doxywizard \- a tool to configure and run doxygen on your source files .SH DESCRIPTION Doxywizard is an interactive frontend to the doxygen tool to configure and run doxygen on your source files. +.PP +You can optionally pass the name of a configuration file as the first argument +to load it at startup. .SH SEE ALSO doxygen(1) diff --git a/doc/language.doc b/doc/language.doc index aa15fda..4f9a35b 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.8.0), 39 languages +Currently (version 1.8.1), 39 languages are supported (sorted alphabetically): Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, diff --git a/doc/translator_report.txt b/doc/translator_report.txt index cf7b205..6911d6f 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -1,4 +1,4 @@ -(1.8.0) +(1.8.1) Doxygen supports the following 39 languages (sorted alphabetically): diff --git a/src/classdef.cpp b/src/classdef.cpp index 43ffdb5..1aa20e1 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -42,12 +42,7 @@ //----------------------------------------------------------------------------- -//static inline MemberList *createNewMemberList(MemberList::ListType lt) -//{ -// MemberList *result = new MemberList(lt); -// return result; -//} - +/** Private data associated with a ClassDef object. */ class ClassDefImpl { public: @@ -296,7 +291,7 @@ QCString ClassDef::getMemberListFileName() const return convertNameToFile(compoundTypeString()+name()+"-members"); } -QCString ClassDef::displayName() const +QCString ClassDef::displayName(bool includeScope) const { //static bool optimizeOutputForJava = Config_getBool("OPTIMIZE_OUTPUT_JAVA"); SrcLangExt lang = getLanguage(); @@ -308,7 +303,14 @@ QCString ClassDef::displayName() const } else { - n=qualifiedNameWithTemplateParameters(); + if (includeScope) + { + n=qualifiedNameWithTemplateParameters(); + } + else + { + n=className(); + } } QCString sep=getLanguageSpecificSeparator(lang); if (sep!="::") @@ -3819,9 +3821,8 @@ int ClassDef::countInheritedDecMembersRec(MemberList::ListType lt, MemberList *ml = icd->getMemberList((MemberList::ListType)lt1); if (ml) { - //ml->countDecMembers(); - //count+=ml->numDecMembers(); - count+=ml->countInheritableMembers(inheritedFrom); + //count+=ml->countInheritableMembers(inheritedFrom); + count+=icd->countMembersIncludingGrouped((MemberList::ListType)lt1,inheritedFrom,TRUE); count+=icd->countInheritedDecMembersRec((MemberList::ListType)lt1,inheritedFrom); } if (lt2!=-1) @@ -3829,15 +3830,15 @@ int ClassDef::countInheritedDecMembersRec(MemberList::ListType lt, ml = icd->getMemberList((MemberList::ListType)lt2); if (ml) { - //ml->countDecMembers(); - //count+=ml->numDecMembers(); - count+=ml->countInheritableMembers(inheritedFrom); + //count+=ml->countInheritableMembers(inheritedFrom); + count+=icd->countMembersIncludingGrouped((MemberList::ListType)lt2,inheritedFrom,TRUE); count+=icd->countInheritedDecMembersRec((MemberList::ListType)lt2,inheritedFrom); } } ibcd=m_impl->inherits->next(); } } +#if 0 if (m_impl->memberGroupSDict) { MemberGroupSDict::Iterator mgli(*m_impl->memberGroupSDict); @@ -3850,6 +3851,7 @@ int ClassDef::countInheritedDecMembersRec(MemberList::ListType lt, } } } +#endif return count; } @@ -3859,11 +3861,11 @@ int ClassDef::countInheritedDecMembers(MemberList::ListType lt) MemberList *ml = getMemberList(lt); if (ml) { - //ml->countDecMembers(); - //count = ml->numDecMembers(); - count=ml->countInheritableMembers(this); + count = ml->countInheritableMembers(this); } if (count==0) // for this class the member list is empty + // see if we need to create a section for it under + // Additional Inherited Members { count = countInheritedDecMembersRec(lt,this); } @@ -3897,7 +3899,7 @@ int ClassDef::countAdditionalInheritedMembers() void ClassDef::writeAdditionalInheritedMembers(OutputList &ol) { - //printf("writeAdditionalInheritedMembers()\n"); + //printf("**** writeAdditionalInheritedMembers()\n"); QListIterator eli( LayoutDocManager::instance().docEntries(LayoutDocManager::Class)); LayoutDocEntry *lde; @@ -3917,30 +3919,31 @@ void ClassDef::writeAdditionalInheritedMembers(OutputList &ol) } int ClassDef::countMembersIncludingGrouped(MemberList::ListType lt, - ClassDef *inheritedFrom) + ClassDef *inheritedFrom,bool additional) { int count=0; MemberList *ml = getMemberList(lt); if (ml) { - //ml->countDecMembers(); - //count=ml->numDecMembers(); count=ml->countInheritableMembers(inheritedFrom); } + //printf("%s:countMembersIncludingGrouped: count=%d\n",name().data(),count); if (m_impl->memberGroupSDict) { MemberGroupSDict::Iterator mgli(*m_impl->memberGroupSDict); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { - if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section + bool hasOwnSection = !mg->allMembersInSameSection() || + !m_impl->subGrouping; // group is in its own section + if ((additional && hasOwnSection) || (!additional && !hasOwnSection)) { count+=mg->countGroupedInheritedMembers(lt); } } } - //printf("%s:countMembersIncludingGrouped(%s)=%d\n", - // name().data(),ml?ml->listTypeAsString().data():"",count); + //printf("%s:countMembersIncludingGrouped(lt=%d,%s)=%d\n", + // name().data(),lt,ml?ml->listTypeAsString().data():"",count); return count; } @@ -3951,7 +3954,9 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol, { ol.pushGeneratorState(); ol.disableAllBut(OutputGenerator::Html); - bool process = countMembersIncludingGrouped(lt,inheritedFrom)>0; + bool process = countMembersIncludingGrouped(lt,inheritedFrom,FALSE)>0; + //printf("%s: writeInheritedMemberDec: lt=%d process=%d invert=%d\n", + // name().data(),lt,process,invert); if (process^invert) { if (m_impl->inherits) @@ -3964,7 +3969,10 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol, int lt1,lt2; convertProtectionLevel(lt,ibcd->prot,<1,<2); //printf("%s:convert %d->(%d,%d)\n",icd->name().data(),lt,lt1,lt2); - if (visitedClasses->find(icd)!=0) return; + if (visitedClasses->find(icd)!=0) + { + return; // already processed before (in case of multiple inheritance) + } visitedClasses->insert(icd,icd); if (lt1!=-1) { @@ -4024,7 +4032,6 @@ void ClassDef::addGroupedInheritedMembers(OutputList &ol,MemberList::ListType lt MemberGroup *mg; for (;(mg=mgli.current());++mgli) { - //printf(" candidate %s\n",mg->header().data()); if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section { mg->addGroupedInheritedMembers(ol,this,lt,inheritedFrom,inheritId); diff --git a/src/classdef.h b/src/classdef.h index 246404c..e7d5fb5 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -48,7 +48,7 @@ class StringDict; struct IncludeInfo; class ClassDefImpl; -/*! \brief This class contains all information about a compound. +/** A model of a compound symbol. * * A compound can be a class, struct, union, interface, or exception. * \note This class should be renamed to CompoundDef @@ -56,7 +56,7 @@ class ClassDefImpl; class ClassDef : public Definition { public: - /*! The various compound types */ + /** The various compound types */ enum CompoundType { Class, //=Entry::CLASS_SEC, Struct, //=Entry::STRUCT_SEC, Union, //=Entry::UNION_SEC, @@ -66,7 +66,7 @@ class ClassDef : public Definition Exception //=Entry::EXCEPTION_SEC }; - /*! Creates a new compound definition. + /** Creates a new compound definition. * \param fileName full path and file name in which this compound was * found. * \param startLine line number where the definition of this compound @@ -88,121 +88,121 @@ class ClassDef : public Definition const char *name,CompoundType ct, const char *ref=0,const char *fName=0, bool isSymbol=TRUE,bool isJavaEnum=FALSE); - /*! Destroys a compound definition. */ + /** Destroys a compound definition. */ ~ClassDef(); //----------------------------------------------------------------------------------- // --- getters //----------------------------------------------------------------------------------- - /*! Used for RTTI, this is a class */ + /** Used for RTTI, this is a class */ DefType definitionType() const { return TypeClass; } - /*! Returns the unique base name (without extension) of the class's file on disk */ + /** Returns the unique base name (without extension) of the class's file on disk */ QCString getOutputFileBase() const; QCString getInstanceOutputFileBase() const; QCString getFileBase() const; - /*! Returns the base name for the source code file */ + /** Returns the base name for the source code file */ QCString getSourceFileBase() const; - /*! If this class originated from a tagfile, this will return the tag file reference */ + /** If this class originated from a tagfile, this will return the tag file reference */ QCString getReference() const; - /*! Returns TRUE if this class is imported via a tag file */ + /** Returns TRUE if this class is imported via a tag file */ bool isReference() const; - /*! Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES */ + /** Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES */ bool isLocal() const; - /*! returns the classes nested into this class */ + /** returns the classes nested into this class */ ClassSDict *getClassSDict(); - /*! returns TRUE if this class has documentation */ + /** returns TRUE if this class has documentation */ bool hasDocumentation() const; - /*! Returns the name as it is appears in the documentation */ - QCString displayName() const; + /** Returns the name as it is appears in the documentation */ + QCString displayName(bool includeScope=TRUE) const; - /*! Returns the type of compound this is, i.e. class/struct/union/.. */ + /** Returns the type of compound this is, i.e. class/struct/union/.. */ CompoundType compoundType() const; - /*! Returns the type of compound as a string */ + /** Returns the type of compound as a string */ QCString compoundTypeString() const; - /*! Returns the list of base classes from which this class directly + /** Returns the list of base classes from which this class directly * inherits. */ BaseClassList *baseClasses() const; - /*! Returns the list of sub classes that directly derive from this class + /** Returns the list of sub classes that directly derive from this class */ BaseClassList *subClasses() const; - /*! Returns a dictionary of all members. This includes any inherited + /** Returns a dictionary of all members. This includes any inherited * members. Members are sorted alphabetically. */ MemberNameInfoSDict *memberNameInfoSDict() const; - /*! Return the protection level (Public,Protected,Private) in which + /** Return the protection level (Public,Protected,Private) in which * this compound was found. */ Protection protection() const; - /*! returns TRUE iff a link is possible to this item within this project. + /** returns TRUE iff a link is possible to this item within this project. */ bool isLinkableInProject() const; - /*! return TRUE iff a link to this class is possible (either within + /** return TRUE iff a link to this class is possible (either within * this project, or as a cross-reference to another project). */ bool isLinkable() const; - /*! the class is visible in a class diagram, or class hierarchy */ + /** the class is visible in a class diagram, or class hierarchy */ bool isVisibleInHierarchy(); - /*! Returns the template arguments of this class + /** Returns the template arguments of this class * Will return 0 if not applicable. */ ArgumentList *templateArguments() const; - /*! Returns the namespace this compound is in, or 0 if it has a global + /** Returns the namespace this compound is in, or 0 if it has a global * scope. */ NamespaceDef *getNamespaceDef() const; - /*! Returns the file in which this compound's definition can be found. + /** Returns the file in which this compound's definition can be found. * Should not return 0 (but it might be a good idea to check anyway). */ FileDef *getFileDef() const; - /*! Returns the Java package this class is in or 0 if not applicable. + /** Returns the Java package this class is in or 0 if not applicable. */ MemberDef *getMemberByName(const QCString &) const; - /*! Returns TRUE iff \a bcd is a direct or indirect base class of this + /** Returns TRUE iff \a bcd is a direct or indirect base class of this * class. This function will recusively traverse all branches of the * inheritance tree. */ bool isBaseClass(ClassDef *bcd,bool followInstances,int level=0); - /*! returns TRUE iff \a md is a member of this class or of the + /** returns TRUE iff \a md is a member of this class or of the * the public/protected members of a base class */ bool isAccessibleMember(MemberDef *md); - /*! Returns a sorted dictionary with all template instances found for + /** Returns a sorted dictionary with all template instances found for * this template class. Returns 0 if not a template or no instances. */ QDict *getTemplateInstances() const; - /*! Returns the template master of which this class is an instance. + /** Returns the template master of which this class is an instance. * Returns 0 if not applicable. */ ClassDef *templateMaster() const; - /*! Returns TRUE if this class is a template */ + /** Returns TRUE if this class is a template */ bool isTemplate() const; IncludeInfo *includeInfo() const; @@ -215,13 +215,13 @@ class ClassDef : public Definition bool isTemplateArgument() const; - /*! Returns the definition of a nested compound if + /** Returns the definition of a nested compound if * available, or 0 otherwise. * @param name The name of the nested compound */ virtual Definition *findInnerCompound(const char *name); - /*! Returns the template parameter lists that form the template + /** Returns the template parameter lists that form the template * declaration of this class. * * Example: template class TC {}; @@ -233,32 +233,32 @@ class ClassDef : public Definition QCString qualifiedNameWithTemplateParameters( QList *actualParams=0) const; - /*! Returns TRUE if there is at least one pure virtual member in this + /** Returns TRUE if there is at least one pure virtual member in this * class. */ bool isAbstract() const; - /*! Returns TRUE if this class is implemented in Objective-C */ + /** Returns TRUE if this class is implemented in Objective-C */ bool isObjectiveC() const; - /*! Returns TRUE if this class is implemented in C# */ + /** Returns TRUE if this class is implemented in C# */ bool isCSharp() const; - /*! Returns the class of which this is a category (Objective-C only) */ + /** Returns the class of which this is a category (Objective-C only) */ ClassDef *categoryOf() const; - /*! Returns the name of the class including outer classes, but not + /** Returns the name of the class including outer classes, but not * including namespaces. */ QCString className() const; - /*! Returns the members in the list identified by \a lt */ + /** Returns the members in the list identified by \a lt */ MemberList *getMemberList(MemberList::ListType lt); - /*! Returns the list containing the list of members sorted per type */ + /** Returns the list containing the list of members sorted per type */ const QList &getMemberLists() const; - /*! Returns the member groups defined for this class */ + /** Returns the member groups defined for this class */ MemberGroupSDict *getMemberGroupSDict() const; QDict *getTemplateBaseClassNames() const; @@ -342,6 +342,7 @@ class ClassDef : public Definition void removeMemberFromLists(MemberDef *md); void addGroupedInheritedMembers(OutputList &ol,MemberList::ListType lt, ClassDef *inheritedFrom,const QCString &inheritId); + int countMembersIncludingGrouped(MemberList::ListType lt,ClassDef *inheritedFrom,bool additional); bool visited; @@ -386,13 +387,12 @@ class ClassDef : public Definition int countInheritedDecMembers(MemberList::ListType lt); int countAdditionalInheritedMembers(); void writeAdditionalInheritedMembers(OutputList &ol); - int countMembersIncludingGrouped(MemberList::ListType lt,ClassDef *inheritedFrom); ClassDefImpl *m_impl; }; -/*! \brief Class that contains information about a usage relation. +/** Class that contains information about a usage relation. */ struct UsesClassDef { @@ -412,21 +412,21 @@ struct UsesClassDef accessors->insert(s,(void *)666); } } - /*! Class definition that this relation uses. */ + /** Class definition that this relation uses. */ ClassDef *classDef; - /*! Dictionary of member variable names that form the edge labels of the + /** Dictionary of member variable names that form the edge labels of the * usage relation. */ QDict *accessors; - /*! Template arguments used for the base class */ + /** Template arguments used for the base class */ QCString templSpecifiers; bool containment; }; -/*! \brief Dictionary of usage relations. +/** Dictionary of usage relations. */ class UsesClassDict : public QDict { @@ -435,7 +435,7 @@ class UsesClassDict : public QDict ~UsesClassDict() {} }; -/*! \brief Iterator class to iterate over a dictionary of usage relations. +/** Iterator class to iterate over a dictionary of usage relations. */ class UsesClassDictIterator : public QDictIterator { @@ -445,7 +445,7 @@ class UsesClassDictIterator : public QDictIterator ~UsesClassDictIterator() {} }; -/*! \brief Class that contains information about an inheritance relation. +/** Class that contains information about an inheritance relation. */ struct BaseClassDef { @@ -453,29 +453,29 @@ struct BaseClassDef Specifier v,const char *t) : classDef(cd), usedName(n), prot(p), virt(v), templSpecifiers(t) {} - /*! Class definition that this relation inherits from. */ + /** Class definition that this relation inherits from. */ ClassDef *classDef; - /*! name used in the inheritance list + /** name used in the inheritance list * (may be a typedef name instead of the class name) */ QCString usedName; - /*! Protection level of the inheritance relation: + /** Protection level of the inheritance relation: * Public, Protected, or Private */ Protection prot; - /*! Virtualness of the inheritance relation: + /** Virtualness of the inheritance relation: * Normal, or Virtual */ Specifier virt; - /*! Template arguments used for the base class */ + /** Template arguments used for the base class */ QCString templSpecifiers; }; -/*! \brief list of base classes +/** List of base classes. * * The classes are alphabetically sorted on name if inSort() is used. */ @@ -494,7 +494,7 @@ class BaseClassList : public QList } }; -/*! \brief Iterator for a list of base classes +/** Iterator for a list of base classes. */ class BaseClassListIterator : public QListIterator { diff --git a/src/classlist.h b/src/classlist.h index 9b76c39..71a62b6 100644 --- a/src/classlist.h +++ b/src/classlist.h @@ -26,6 +26,7 @@ class Definition; +/** A list of ClassDef objects. */ class ClassList : public QList { public: @@ -35,12 +36,14 @@ class ClassList : public QList int compareItems(GCI item1,GCI item2); }; +/** An iterator for ClassDef objects in a ClassList. */ class ClassListIterator : public QListIterator { public: ClassListIterator(const ClassList &list); }; +/** An unsorted dictionary of ClassDef objects. */ class ClassDict : public QDict { public: @@ -48,6 +51,7 @@ class ClassDict : public QDict ~ClassDict() {} }; +/** A sorted dictionary of ClassDef objects. */ class ClassSDict : public SDict { public: diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp index c4379e3..9a723c2 100644 --- a/src/cmdmapper.cpp +++ b/src/cmdmapper.cpp @@ -18,6 +18,13 @@ #include "cmdmapper.h" +/** Call representing a mapping from a command name to a command ID. */ +struct CommandMap +{ + const char *cmdName; + int cmdId; +}; + CommandMap cmdMap[] = { { "a", CMD_EMPHASIS }, @@ -198,6 +205,25 @@ CommandMap htmlTagMap[] = Mapper *Mappers::cmdMapper = new Mapper(cmdMap,TRUE); Mapper *Mappers::htmlTagMapper = new Mapper(htmlTagMap,FALSE); +int Mapper::map(const char *n) +{ + QCString name=n; + if (!m_cs) name=name.lower(); + int *result; + return !name.isEmpty() && (result=m_map.find(name)) ? *result: 0; +} + +Mapper::Mapper(const CommandMap *cm,bool caseSensitive) : m_map(89), m_cs(caseSensitive) +{ + m_map.setAutoDelete(TRUE); + const CommandMap *p = cm; + while (p->cmdName) + { + m_map.insert(p->cmdName,new int(p->cmdId)); + p++; + } +} + void Mappers::freeMappers() { delete cmdMapper; cmdMapper = 0; diff --git a/src/cmdmapper.h b/src/cmdmapper.h index deb5f50..c53e2b1 100644 --- a/src/cmdmapper.h +++ b/src/cmdmapper.h @@ -21,11 +21,7 @@ #include -struct CommandMap -{ - const char *cmdName; - int cmdId; -}; +struct CommandMap; const int SIMPLESECT_BIT = 0x1000; @@ -187,32 +183,18 @@ enum HtmlTagType XML_INHERITDOC = XML_CmdMask + 22 }; +/** Class representing a mapping from command names to command IDs. */ class Mapper { public: - int map(const char *n) - { - QCString name=n; - if (!m_cs) name=name.lower(); - int *result; - return !name.isEmpty() && (result=m_map.find(name)) ? *result: 0; - } - - Mapper(const CommandMap *cm,bool caseSensitive) : m_map(89), m_cs(caseSensitive) - { - m_map.setAutoDelete(TRUE); - const CommandMap *p = cm; - while (p->cmdName) - { - m_map.insert(p->cmdName,new int(p->cmdId)); - p++; - } - } + int map(const char *n); + Mapper(const CommandMap *cm,bool caseSensitive); private: QDict m_map; bool m_cs; }; +/** Class representing a namespace for the doxygen and HTML command mappers. */ struct Mappers { static void freeMappers(); diff --git a/src/commentcnv.l b/src/commentcnv.l index f986531..689c274 100644 --- a/src/commentcnv.l +++ b/src/commentcnv.l @@ -107,12 +107,13 @@ static void replaceCommentMarker(const char *s,int len) } if (blanks>0) { - while (blanks>1) + while (blanks>2) { ADDCHAR(' '); blanks--; } - ADDCHAR('*'); + if (blanks>1) ADDCHAR('*'); + ADDCHAR(' '); } // copy comment line to output ADDARRAY(p,len-(p-s)); diff --git a/src/commentscan.l b/src/commentscan.l index c7e36a5..26c381f 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -957,11 +957,18 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } "" { // start of a .NET XML style brief description setOutput(OutputBrief); + addOutput(yytext); + } +"" { // start of a .NET XML style detailed description + setOutput(OutputDoc); + addOutput(yytext); } -""|"" { // start of a .NET XML style detailed description +"" { // start of a .NET XML style detailed description + addOutput(yytext); setOutput(OutputDoc); } "" { // end of a brief or detailed description + addOutput(yytext); } {RCSTAG} { // RCS tag which end a brief description setOutput(OutputDoc); @@ -988,6 +995,9 @@ RCSTAG "$"{ID}":"[^\n$]+"$" // this command forces the end of brief description setOutput(OutputDoc); } + int i=0; + while (yytext[i]==' ' || yytext[i]=='\t') i++; + if (i>0) addOutput(QCString(yytext).left(i)); if (cmdPtr->func && cmdPtr->func(cmdName)) { // implicit split of the comment block into two @@ -1010,7 +1020,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" { // command without handler, to be processed // later by parsedoc.cpp - addOutput(yytext); + addOutput(yytext+i); } } else // command not relevant @@ -1315,7 +1325,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" . { // ignore other stuff } -[<]?{FILE}?[>]? { // third argument; include file name +[<"]?{FILE}?[">]? { // third argument; include file name current->includeName = yytext; BEGIN( Comment ); } @@ -2331,7 +2341,7 @@ static bool handleMemberOf(const QCString &) static bool handleRefItem(const QCString &) { - addOutput(" @refitem "); + addOutput("@refitem "); BEGIN(LineParam); return FALSE; } @@ -2339,7 +2349,7 @@ static bool handleRefItem(const QCString &) static bool handleSection(const QCString &s) { setOutput(OutputDoc); - addOutput(" @"+s+" "); + addOutput("@"+s+" "); BEGIN(SectionLabel); if (s=="section") g_sectionLevel=1; else if (s=="subsection") g_sectionLevel=2; @@ -2358,28 +2368,28 @@ static bool handleSubpage(const QCString &s) warn(yyFileName,yyLineNr, "warning: found \\subpage command in a comment block that is not marked as a page!"); } - addOutput(" @"+s+" "); + addOutput("@"+s+" "); BEGIN(SubpageLabel); return FALSE; } static bool handleAnchor(const QCString &s) { - addOutput(" @"+s+" "); + addOutput("@"+s+" "); BEGIN(AnchorLabel); return FALSE; } static bool handleCite(const QCString &s) { - addOutput(" @"+s+" "); + addOutput("@"+s+" "); BEGIN(CiteLabel); return FALSE; } static bool handleFormatBlock(const QCString &s) { - addOutput(" @"+s+" "); + addOutput("@"+s+" "); //printf("handleFormatBlock(%s)\n",s.data()); blockName=s; g_commentCount=0; @@ -2389,7 +2399,7 @@ static bool handleFormatBlock(const QCString &s) static bool handleAddIndex(const QCString &) { - addOutput(" @addindex "); + addOutput("@addindex "); BEGIN(LineParam); return FALSE; } diff --git a/src/compound.xsd b/src/compound.xsd index 406f6f5..4007382 100644 --- a/src/compound.xsd +++ b/src/compound.xsd @@ -825,6 +825,8 @@ + + diff --git a/src/compound_xsd.h b/src/compound_xsd.h index 5e04417..eb4d978 100644 --- a/src/compound_xsd.h +++ b/src/compound_xsd.h @@ -825,6 +825,8 @@ " \n" " \n" " \n" +" \n" +" \n" " \n" " \n" "\n" diff --git a/src/config.h b/src/config.h index ccbf713..d18e87d 100644 --- a/src/config.h +++ b/src/config.h @@ -27,8 +27,7 @@ #include "ftextstream.h" -/*! \brief Abstract base class for any configuration option. - * +/** Abstract base class for any configuration option. */ class ConfigOption { @@ -92,8 +91,7 @@ class ConfigOption OptionType m_kind; }; -/*! \brief Section marker for grouping the configuration options - * +/** Section marker for grouping the configuration options. */ class ConfigInfo : public ConfigOption { @@ -117,8 +115,7 @@ class ConfigInfo : public ConfigOption void substEnvVars() {} }; -/*! \brief Option of the list type. - * +/** Class respresenting a list type option. */ class ConfigList : public ConfigOption { @@ -155,8 +152,7 @@ class ConfigList : public ConfigOption WidgetType m_widgetType; }; -/*! \brief Option of the enum type. - * +/** Class representing an enum type option. */ class ConfigEnum : public ConfigOption { @@ -197,8 +193,7 @@ class ConfigEnum : public ConfigOption QCString m_defValue; }; -/*! \brief Option of the string type. - * +/** Class representing a string type option. */ class ConfigString : public ConfigOption { @@ -240,8 +235,7 @@ class ConfigString : public ConfigOption WidgetType m_widgetType; }; -/*! \brief Option of the integer type. - * +/** Class representing an integer type option. */ class ConfigInt : public ConfigOption { @@ -291,8 +285,7 @@ class ConfigInt : public ConfigOption QCString m_valueString; }; -/*! \brief Option of the boolean type. - * +/** Class representing a Boolean type option. */ class ConfigBool : public ConfigOption { @@ -337,8 +330,7 @@ class ConfigBool : public ConfigOption QCString m_valueString; }; -/*! \brief Section marker for obsolete options - * +/** Section marker for obsolete options */ class ConfigObsolete : public ConfigOption { @@ -358,7 +350,7 @@ class ConfigObsolete : public ConfigOption #define Config_getEnum(val) Config::instance()->getEnum(__FILE__,__LINE__,val) #define Config_getBool(val) Config::instance()->getBool(__FILE__,__LINE__,val) -/*! \brief Singleton for configuration variables. +/** Singleton for configuration variables. * * This object holds the global static variables * read from a user-supplied configuration file. diff --git a/src/config.xml b/src/config.xml index e455ffd..b59b213 100644 --- a/src/config.xml +++ b/src/config.xml @@ -541,7 +541,7 @@ is used as the file version. See the manual for examples.