Commit ff31b2f1 authored by dimitri's avatar dimitri

Release-1.2.15-20020421

parent bc629c90
DOXYGEN Version 1.2.15-20020407 DOXYGEN Version 1.2.15-20020421
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (07 April 2002) Dimitri van Heesch (21 April 2002)
DOXYGEN Version 1.2.15_20020407 DOXYGEN Version 1.2.15_20020421
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (07 April 2002) Dimitri van Heesch (dimitri@stack.nl) (21 April 2002)
1.2.15-20020407 1.2.15-20020421
...@@ -9,6 +9,15 @@ class ICompound; ...@@ -9,6 +9,15 @@ class ICompound;
class ISection; class ISection;
class INode; class INode;
class IString
{
public:
virtual const char *latin1() const = 0;
virtual unsigned short unicodeCharAt(int index) const = 0;
virtual bool isEmpty() const = 0;
virtual int length() const = 0;
};
class ILinkedText class ILinkedText
{ {
public: public:
...@@ -19,17 +28,17 @@ class ILinkedText ...@@ -19,17 +28,17 @@ class ILinkedText
class ILT_Text : public ILinkedText class ILT_Text : public ILinkedText
{ {
public: public:
virtual QString text() const = 0; virtual const IString *text() const = 0;
}; };
class ILT_Ref : public ILinkedText class ILT_Ref : public ILinkedText
{ {
public: public:
enum TargetKind { Member, Compound }; enum TargetKind { Member, Compound };
virtual QString id() const = 0; virtual const IString *id() const = 0;
virtual TargetKind targetKind() const = 0; virtual TargetKind targetKind() const = 0;
virtual QString external() const = 0; virtual const IString *external() const = 0;
virtual QString text() const = 0; virtual const IString *text() const = 0;
}; };
class ILinkedTextIterator class ILinkedTextIterator
...@@ -47,10 +56,10 @@ class IParam ...@@ -47,10 +56,10 @@ class IParam
{ {
public: public:
virtual ILinkedTextIterator *type() const = 0; virtual ILinkedTextIterator *type() const = 0;
virtual QString declarationName() const = 0; virtual const IString * declarationName() const = 0;
virtual QString definitionName() const = 0; virtual const IString * definitionName() const = 0;
virtual QString attrib() const = 0; virtual const IString * attrib() const = 0;
virtual QString arraySpecifier() const = 0; virtual const IString * arraySpecifier() const = 0;
virtual ILinkedTextIterator *defaultValue() const = 0; virtual ILinkedTextIterator *defaultValue() const = 0;
}; };
...@@ -69,7 +78,7 @@ class IMemberReference ...@@ -69,7 +78,7 @@ class IMemberReference
{ {
public: public:
virtual IMember *member() const = 0; virtual IMember *member() const = 0;
virtual QString memberName() const = 0; virtual const IString * memberName() const = 0;
}; };
class IMemberReferenceIterator class IMemberReferenceIterator
...@@ -86,8 +95,8 @@ class IMemberReferenceIterator ...@@ -86,8 +95,8 @@ class IMemberReferenceIterator
class IEnumValue class IEnumValue
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual QString initializer() const = 0; virtual const IString * initializer() const = 0;
}; };
class IEnumValueIterator class IEnumValueIterator
...@@ -136,7 +145,7 @@ class IDoc ...@@ -136,7 +145,7 @@ class IDoc
Row, // 27 -> IDocRow Row, // 27 -> IDocRow
Entry, // 28 -> IDocEntry Entry, // 28 -> IDocEntry
Section, // 29 -> IDocSection Section, // 29 -> IDocSection
Root // 30 -> IDocRoot Root, // 30 -> IDocRoot
}; };
virtual Kind kind() const = 0; virtual Kind kind() const = 0;
}; };
...@@ -153,7 +162,8 @@ class IDocMarkup : public IDoc ...@@ -153,7 +162,8 @@ class IDocMarkup : public IDoc
Subscript = 0x08, Subscript = 0x08,
Superscript = 0x10, Superscript = 0x10,
SmallFont = 0x20, SmallFont = 0x20,
Center = 0x40 Center = 0x40,
Preformatted = 0x80
}; };
}; };
...@@ -167,7 +177,7 @@ class IDocPara : public IDoc ...@@ -167,7 +177,7 @@ class IDocPara : public IDoc
class IDocText : public IDocMarkup class IDocText : public IDocMarkup
{ {
public: public:
virtual QString text() const = 0; virtual const IString * text() const = 0;
virtual int markup() const = 0; virtual int markup() const = 0;
}; };
...@@ -207,7 +217,7 @@ class IDocParameterList : public IDoc ...@@ -207,7 +217,7 @@ class IDocParameterList : public IDoc
class IDocParameter : public IDoc class IDocParameter : public IDoc
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual IDocPara *description() const = 0; virtual IDocPara *description() const = 0;
}; };
...@@ -229,7 +239,7 @@ class IDocSimpleSect : public IDoc ...@@ -229,7 +239,7 @@ class IDocSimpleSect : public IDoc
Examples Examples
}; };
virtual Types type() const = 0; virtual Types type() const = 0;
virtual QString typeString() const = 0; virtual const IString * typeString() const = 0;
virtual IDocTitle *title() const = 0; virtual IDocTitle *title() const = 0;
virtual IDocPara *description() const = 0; virtual IDocPara *description() const = 0;
}; };
...@@ -238,10 +248,10 @@ class IDocRef : public IDoc ...@@ -238,10 +248,10 @@ class IDocRef : public IDoc
{ {
public: public:
enum TargetKind { Member, Compound }; enum TargetKind { Member, Compound };
virtual QString refId() const = 0; virtual const IString * refId() const = 0;
virtual TargetKind targetKind() const = 0; virtual TargetKind targetKind() const = 0;
virtual QString external() const = 0; virtual const IString * external() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocVariableList : public IDoc class IDocVariableList : public IDoc
...@@ -253,7 +263,7 @@ class IDocVariableList : public IDoc ...@@ -253,7 +263,7 @@ class IDocVariableList : public IDoc
class IDocVariableListEntry : public IDoc class IDocVariableListEntry : public IDoc
{ {
public: public:
virtual QString term() const = 0; virtual const IString * term() const = 0;
virtual IDocPara *description() const = 0; virtual IDocPara *description() const = 0;
}; };
...@@ -268,21 +278,21 @@ class IDocLineBreak : public IDoc ...@@ -268,21 +278,21 @@ class IDocLineBreak : public IDoc
class IDocULink : public IDoc class IDocULink : public IDoc
{ {
public: public:
virtual QString url() const = 0; virtual const IString * url() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocEMail : public IDoc class IDocEMail : public IDoc
{ {
public: public:
virtual QString address() const = 0; virtual const IString * address() const = 0;
}; };
class IDocLink : public IDoc class IDocLink : public IDoc
{ {
public: public:
virtual QString refId() const = 0; virtual const IString * refId() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocProgramListing : public IDoc class IDocProgramListing : public IDoc
...@@ -295,7 +305,7 @@ class IDocCodeLine : public IDoc ...@@ -295,7 +305,7 @@ class IDocCodeLine : public IDoc
{ {
public: public:
virtual int lineNumber() const = 0; virtual int lineNumber() const = 0;
virtual QString refId() const = 0; virtual const IString * refId() const = 0;
virtual IDocIterator *codeElements() const = 0; virtual IDocIterator *codeElements() const = 0;
}; };
...@@ -315,29 +325,29 @@ class IDocHighlight : public IDoc ...@@ -315,29 +325,29 @@ class IDocHighlight : public IDoc
class IDocFormula : public IDoc class IDocFormula : public IDoc
{ {
public: public:
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocImage : public IDoc class IDocImage : public IDoc
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual QString caption() const = 0; virtual const IString * caption() const = 0;
}; };
class IDocDotFile : public IDoc class IDocDotFile : public IDoc
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual QString caption() const = 0; virtual const IString * caption() const = 0;
}; };
class IDocIndexEntry : public IDoc class IDocIndexEntry : public IDoc
{ {
public: public:
virtual QString primary() const = 0; virtual const IString * primary() const = 0;
virtual QString secondary() const = 0; virtual const IString * secondary() const = 0;
}; };
class IDocTable : public IDoc class IDocTable : public IDoc
...@@ -345,7 +355,7 @@ class IDocTable : public IDoc ...@@ -345,7 +355,7 @@ class IDocTable : public IDoc
public: public:
virtual IDocIterator *rows() const = 0; virtual IDocIterator *rows() const = 0;
virtual int numColumns() const = 0; virtual int numColumns() const = 0;
virtual QString caption() const = 0; virtual const IString * caption() const = 0;
}; };
class IDocRow : public IDoc class IDocRow : public IDoc
...@@ -363,7 +373,7 @@ class IDocEntry : public IDoc ...@@ -363,7 +373,7 @@ class IDocEntry : public IDoc
class IDocSection : public IDoc class IDocSection : public IDoc
{ {
public: public:
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual int level() const = 0; virtual int level() const = 0;
virtual IDocIterator *title() const = 0; virtual IDocIterator *title() const = 0;
}; };
...@@ -388,7 +398,7 @@ class IDocIterator ...@@ -388,7 +398,7 @@ class IDocIterator
class IEdgeLabel class IEdgeLabel
{ {
public: public:
virtual QString label() const = 0; virtual const IString * label() const = 0;
}; };
class IEdgeLabelIterator class IEdgeLabelIterator
...@@ -410,7 +420,7 @@ class IChildNode ...@@ -410,7 +420,7 @@ class IChildNode
}; };
virtual INode * node() const = 0; virtual INode * node() const = 0;
virtual NodeRelation relation() const = 0; virtual NodeRelation relation() const = 0;
virtual QString relationString() const = 0; virtual const IString * relationString() const = 0;
virtual IEdgeLabelIterator *edgeLabels() const = 0; virtual IEdgeLabelIterator *edgeLabels() const = 0;
}; };
...@@ -428,9 +438,9 @@ class IChildNodeIterator ...@@ -428,9 +438,9 @@ class IChildNodeIterator
class INode class INode
{ {
public: public:
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual QString label() const = 0; virtual const IString * label() const = 0;
virtual QString linkId() const = 0; virtual const IString * linkId() const = 0;
virtual IChildNodeIterator *children() const = 0; virtual IChildNodeIterator *children() const = 0;
}; };
...@@ -461,13 +471,13 @@ class IMember ...@@ -461,13 +471,13 @@ class IMember
virtual ICompound *compound() const = 0; virtual ICompound *compound() const = 0;
virtual ISection *section() const = 0; virtual ISection *section() const = 0;
virtual MemberKind kind() const = 0; virtual MemberKind kind() const = 0;
virtual QString kindString() const = 0; virtual const IString * kindString() const = 0;
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual QString protection() const = 0; virtual const IString * protection() const = 0;
virtual QString virtualness() const = 0; virtual const IString * virtualness() const = 0;
virtual ILinkedTextIterator *type() const = 0; virtual ILinkedTextIterator *type() const = 0;
virtual QString typeString() const = 0; virtual const IString * typeString() const = 0;
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual bool isConst() const = 0; virtual bool isConst() const = 0;
virtual bool isVolatile() const = 0; virtual bool isVolatile() const = 0;
virtual IParamIterator *params() const = 0; virtual IParamIterator *params() const = 0;
...@@ -477,7 +487,7 @@ class IMember ...@@ -477,7 +487,7 @@ class IMember
virtual IMemberReferenceIterator *referencedBy() const = 0; virtual IMemberReferenceIterator *referencedBy() const = 0;
virtual int bodyStart() const = 0; virtual int bodyStart() const = 0;
virtual int bodyEnd() const = 0; virtual int bodyEnd() const = 0;
virtual QString definitionFile() const = 0; virtual const IString * definitionFile() const = 0;
virtual int definitionLine() const = 0; virtual int definitionLine() const = 0;
virtual IMemberReference *reimplements() const = 0; virtual IMemberReference *reimplements() const = 0;
virtual IMemberReferenceIterator *reimplementedBy() const = 0; virtual IMemberReferenceIterator *reimplementedBy() const = 0;
...@@ -512,7 +522,7 @@ class ISection ...@@ -512,7 +522,7 @@ class ISection
Friend, Related, Defines, Prototypes, Typedefs, Friend, Related, Defines, Prototypes, Typedefs,
Enums, Functions, Variables Enums, Functions, Variables
}; };
virtual QString kindString() const = 0; virtual const IString * kindString() const = 0;
virtual SectionKind kind() const = 0; virtual SectionKind kind() const = 0;
virtual IMemberIterator *members() const = 0; virtual IMemberIterator *members() const = 0;
virtual bool isStatic() const = 0; virtual bool isStatic() const = 0;
...@@ -541,12 +551,12 @@ class ICompound ...@@ -541,12 +551,12 @@ class ICompound
Namespace, File, Group, Page Namespace, File, Group, Page
}; };
/*! Returns the name of this compound */ /*! Returns the name of this compound */
virtual QString name() const = 0; virtual const IString * name() const = 0;
/*! Returns the id of this compound. The id is a /*! Returns the id of this compound. The id is a
* unique string representing a specific compound object. * unique string representing a specific compound object.
*/ */
virtual QString id() const = 0; virtual const IString * id() const = 0;
/*! Returns the kind of compound. See #CompoundKind for possible /*! Returns the kind of compound. See #CompoundKind for possible
* values. * values.
...@@ -556,7 +566,7 @@ class ICompound ...@@ -556,7 +566,7 @@ class ICompound
/*! Returns a string representation of the compound kind. /*! Returns a string representation of the compound kind.
* @see kind() * @see kind()
*/ */
virtual QString kindString() const = 0; virtual const IString * kindString() const = 0;
/*! Returns an iterator for the different member sections in this /*! Returns an iterator for the different member sections in this
* compound. * compound.
...@@ -576,14 +586,14 @@ class ICompound ...@@ -576,14 +586,14 @@ class ICompound
/*! Returns an interface to a member given its id. /*! Returns an interface to a member given its id.
* @param id The member id. * @param id The member id.
*/ */
virtual IMember *memberById(const QString &id) const = 0; virtual IMember *memberById(const char * id) const = 0;
/*! Returns a list of all members within the compound having a certain /*! Returns a list of all members within the compound having a certain
* name. Member overloading is the reason why there can be more than * name. Member overloading is the reason why there can be more than
* one member. * one member.
* @param name The name of the member. * @param name The name of the member.
*/ */
virtual IMemberIterator *memberByName(const QString &name) const = 0; virtual IMemberIterator *memberByName(const char * name) const = 0;
/*! Decreases the reference counter for this compound. If it reaches /*! Decreases the reference counter for this compound. If it reaches
* zero, the memory for the compound will be released. * zero, the memory for the compound will be released.
...@@ -668,11 +678,13 @@ class INamespace : public ICompound ...@@ -668,11 +678,13 @@ class INamespace : public ICompound
class IFile : public ICompound class IFile : public ICompound
{ {
public:
virtual IGraph *includeDependencyGraph() const = 0;
virtual IGraph *includedByDependencyGraph() const = 0;
// file: // file:
// includes() // includes()
// includedBy() // includedBy()
// IDotGraph *includeDependencyGraph()
// IDotGraph *includedByDependencyGraph()
// IDocProgramListing *source() // IDocProgramListing *source()
// ICompound *innerNamespaces() // ICompound *innerNamespaces()
// ICompoundIterator *innerClasses() // ICompoundIterator *innerClasses()
...@@ -704,26 +716,26 @@ class IDoxygen ...@@ -704,26 +716,26 @@ class IDoxygen
* compound id this function is much more efficient than iterating * compound id this function is much more efficient than iterating
* over the compound list. Returns 0 if the id is not valid. * over the compound list. Returns 0 if the id is not valid.
*/ */
virtual ICompound *compoundById(const QString &id) const = 0; virtual ICompound *compoundById(const char * id) const = 0;
/*! Returns a compound given its name (including the scope). /*! Returns a compound given its name (including the scope).
* Returns 0 if the name is not found in the project. * Returns 0 if the name is not found in the project.
*/ */
virtual ICompound *compoundByName(const QString &name) const = 0; virtual ICompound *compoundByName(const char * name) const = 0;
/*! Returns an interface to a compound containing a member given it the /*! Returns an interface to a compound containing a member given it the
* member's id. Given the ICompound interface one can use the same id * member's id. Given the ICompound interface one can use the same id
* to obtain the IMember interface. * to obtain the IMember interface.
* @param id The member id. * @param id The member id.
*/ */
virtual ICompound *memberById(const QString &id) const = 0; virtual ICompound *memberById(const char * id) const = 0;
/*! Returns a list of all compounds containing at least one members /*! Returns a list of all compounds containing at least one members
* with a certain name. Each compound can be asked to return the * with a certain name. Each compound can be asked to return the
* list of members with that name. * list of members with that name.
* @param name The name of the member. * @param name The name of the member.
*/ */
virtual ICompoundIterator *memberByName(const QString &name) const = 0; virtual ICompoundIterator *memberByName(const char * name) const = 0;
/*! Releases the memory for the object hierarchy obtained by /*! Releases the memory for the object hierarchy obtained by
* createdObjecModelFromXML(). First release all iterators before calling * createdObjecModelFromXML(). First release all iterators before calling
......
...@@ -144,7 +144,8 @@ void compoundhandler_exit() ...@@ -144,7 +144,8 @@ void compoundhandler_exit()
CompoundHandler::CompoundHandler(const QString &xmlDir) CompoundHandler::CompoundHandler(const QString &xmlDir)
: m_brief(0), m_detailed(0), m_programListing(0), : m_brief(0), m_detailed(0), m_programListing(0),
m_xmlDir(xmlDir), m_refCount(1), m_memberDict(257), m_memberNameDict(257), m_xmlDir(xmlDir), m_refCount(1), m_memberDict(257), m_memberNameDict(257),
m_mainHandler(0), m_inheritanceGraph(0), m_collaborationGraph(0) m_mainHandler(0), m_inheritanceGraph(0), m_collaborationGraph(0),
m_includeDependencyGraph(0), m_includedByDependencyGraph(0)
{ {
m_superClasses.setAutoDelete(TRUE); m_superClasses.setAutoDelete(TRUE);
m_subClasses.setAutoDelete(TRUE); m_subClasses.setAutoDelete(TRUE);
...@@ -182,9 +183,14 @@ CompoundHandler::CompoundHandler(const QString &xmlDir) ...@@ -182,9 +183,14 @@ CompoundHandler::CompoundHandler(const QString &xmlDir)
addStartHandler("collaborationgraph",this,&CompoundHandler::startCollaborationGraph); addStartHandler("collaborationgraph",this,&CompoundHandler::startCollaborationGraph);
addStartHandler("incdepgraph",this,&CompoundHandler::startIncludeDependencyGraph);
addStartHandler("invincdepgraph",this,&CompoundHandler::startIncludedByDependencyGraph);
addStartHandler("innerclass",this,&CompoundHandler::startInnerClass); addStartHandler("innerclass",this,&CompoundHandler::startInnerClass);
addEndHandler("innerclass"); addEndHandler("innerclass");
} }
CompoundHandler::~CompoundHandler() CompoundHandler::~CompoundHandler()
...@@ -195,6 +201,8 @@ CompoundHandler::~CompoundHandler() ...@@ -195,6 +201,8 @@ CompoundHandler::~CompoundHandler()
delete m_programListing; delete m_programListing;
delete m_inheritanceGraph; delete m_inheritanceGraph;
delete m_collaborationGraph; delete m_collaborationGraph;
delete m_includeDependencyGraph;
delete m_includedByDependencyGraph;
} }
void CompoundHandler::startSection(const QXmlAttributes& attrib) void CompoundHandler::startSection(const QXmlAttributes& attrib)
...@@ -303,7 +311,7 @@ void CompoundHandler::addSubClass(const QXmlAttributes& attrib) ...@@ -303,7 +311,7 @@ void CompoundHandler::addSubClass(const QXmlAttributes& attrib)
m_subClasses.append(sc); m_subClasses.append(sc);
} }
bool CompoundHandler::parseXML(const QString &compId) bool CompoundHandler::parseXML(const char *compId)
{ {
QFile xmlFile(m_xmlDir+"/"+compId+".xml"); QFile xmlFile(m_xmlDir+"/"+compId+".xml");
if (!xmlFile.exists()) return FALSE; if (!xmlFile.exists()) return FALSE;
...@@ -329,12 +337,12 @@ void CompoundHandler::initialize(MainHandler *mh) ...@@ -329,12 +337,12 @@ void CompoundHandler::initialize(MainHandler *mh)
void CompoundHandler::insertMember(MemberHandler *mh) void CompoundHandler::insertMember(MemberHandler *mh)
{ {
m_memberDict.insert(mh->id(),mh); m_memberDict.insert(mh->id()->latin1(),mh);
QList<MemberHandler> *mhl = m_memberNameDict.find(mh->id()); QList<MemberHandler> *mhl = m_memberNameDict.find(mh->id()->latin1());
if (mhl==0) if (mhl==0)
{ {
mhl = new QList<MemberHandler>; mhl = new QList<MemberHandler>;
m_memberNameDict.insert(mh->name(),mhl); m_memberNameDict.insert(mh->name()->latin1(),mhl);
} }
mhl->append(mh); mhl->append(mh);
} }
...@@ -372,7 +380,7 @@ ISectionIterator *CompoundHandler::sections() const ...@@ -372,7 +380,7 @@ ISectionIterator *CompoundHandler::sections() const
return new SectionIterator(m_sections); return new SectionIterator(m_sections);
} }
IMemberIterator *CompoundHandler::memberByName(const QString &name) const IMemberIterator *CompoundHandler::memberByName(const char *name) const
{ {
QList<MemberHandler> *ml = m_memberNameDict[name]; QList<MemberHandler> *ml = m_memberNameDict[name];
if (ml==0) return 0; if (ml==0) return 0;
...@@ -391,6 +399,18 @@ void CompoundHandler::startCollaborationGraph(const QXmlAttributes &attrib) ...@@ -391,6 +399,18 @@ void CompoundHandler::startCollaborationGraph(const QXmlAttributes &attrib)
m_collaborationGraph->startGraph(attrib); m_collaborationGraph->startGraph(attrib);
} }
void CompoundHandler::startIncludeDependencyGraph(const QXmlAttributes &attrib)
{
m_includeDependencyGraph = new GraphHandler(this,"incdepgraph");
m_includeDependencyGraph->startGraph(attrib);
}
void CompoundHandler::startIncludedByDependencyGraph(const QXmlAttributes &attrib)
{
m_includedByDependencyGraph = new GraphHandler(this,"invincdepgraph");
m_includedByDependencyGraph->startGraph(attrib);
}
IDocRoot *CompoundHandler::briefDescription() const IDocRoot *CompoundHandler::briefDescription() const
{ {
return m_brief; return m_brief;
...@@ -401,7 +421,7 @@ IDocRoot *CompoundHandler::detailedDescription() const ...@@ -401,7 +421,7 @@ IDocRoot *CompoundHandler::detailedDescription() const
return m_detailed; return m_detailed;
} }
IMember *CompoundHandler::memberById(const QString &id) const IMember *CompoundHandler::memberById(const char *id) const
{ {
return m_memberDict[id]; return m_memberDict[id];
} }
...@@ -416,6 +436,16 @@ IGraph *CompoundHandler::collaborationGraph() const ...@@ -416,6 +436,16 @@ IGraph *CompoundHandler::collaborationGraph() const
return m_collaborationGraph; return m_collaborationGraph;
} }
IGraph *CompoundHandler::includeDependencyGraph() const
{
return m_includeDependencyGraph;
}
IGraph *CompoundHandler::includedByDependencyGraph() const
{
return m_includedByDependencyGraph;
}
IRelatedCompoundIterator *CompoundHandler::baseClasses() const IRelatedCompoundIterator *CompoundHandler::baseClasses() const
{ {
return new RelatedCompoundIterator(m_superClasses); return new RelatedCompoundIterator(m_superClasses);
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <qxml.h> #include <qxml.h>
#include <doxmlintf.h> #include <doxmlintf.h>
#include "stringimpl.h"
#include "basehandler.h" #include "basehandler.h"
#include "baseiterator.h" #include "baseiterator.h"
...@@ -74,6 +75,7 @@ class CompoundHandler : public IClass, ...@@ -74,6 +75,7 @@ class CompoundHandler : public IClass,
public BaseHandler<CompoundHandler> public BaseHandler<CompoundHandler>
{ {
friend class RelatedCompound; friend class RelatedCompound;
public: public:
virtual void startSection(const QXmlAttributes& attrib); virtual void startSection(const QXmlAttributes& attrib);
virtual void startCompound(const QXmlAttributes& attrib); virtual void startCompound(const QXmlAttributes& attrib);
...@@ -87,26 +89,28 @@ class CompoundHandler : public IClass, ...@@ -87,26 +89,28 @@ class CompoundHandler : public IClass,
virtual void startProgramListing(const QXmlAttributes& attrib); virtual void startProgramListing(const QXmlAttributes& attrib);
virtual void startInheritanceGraph(const QXmlAttributes& attrib); virtual void startInheritanceGraph(const QXmlAttributes& attrib);
virtual void startCollaborationGraph(const QXmlAttributes& attrib); virtual void startCollaborationGraph(const QXmlAttributes& attrib);
virtual void startIncludeDependencyGraph(const QXmlAttributes& attrib);
virtual void startIncludedByDependencyGraph(const QXmlAttributes& attrib);
virtual void startInnerClass(const QXmlAttributes& attrib); virtual void startInnerClass(const QXmlAttributes& attrib);
virtual void addref() { m_refCount++; } virtual void addref() { m_refCount++; }
CompoundHandler(const QString &dirName); CompoundHandler(const QString &dirName);
virtual ~CompoundHandler(); virtual ~CompoundHandler();
bool parseXML(const QString &compId); bool parseXML(const char *compId);
void initialize(MainHandler *mh); void initialize(MainHandler *mh);
void insertMember(MemberHandler *mh); void insertMember(MemberHandler *mh);
ICompound *toICompound() const; ICompound *toICompound() const;
// ICompound implementation // ICompound implementation
QString name() const { return m_name; } const IString *name() const { return &m_name; }
QString id() const { return m_id; } const IString *id() const { return &m_id; }
CompoundKind kind() const { return m_kind; } CompoundKind kind() const { return m_kind; }
QString kindString() const { return m_kindString; } const IString *kindString() const { return &m_kindString; }
ISectionIterator *sections() const; ISectionIterator *sections() const;
IDocRoot *briefDescription() const; IDocRoot *briefDescription() const;
IDocRoot *detailedDescription() const; IDocRoot *detailedDescription() const;
IMember *memberById(const QString &id) const; IMember *memberById(const char *id) const;
IMemberIterator *memberByName(const QString &name) const; IMemberIterator *memberByName(const char *name) const;
void release(); void release();
// IClass implementation // IClass implementation
...@@ -115,18 +119,22 @@ class CompoundHandler : public IClass, ...@@ -115,18 +119,22 @@ class CompoundHandler : public IClass,
IRelatedCompoundIterator *baseClasses() const; IRelatedCompoundIterator *baseClasses() const;
IRelatedCompoundIterator *derivedClasses() const; IRelatedCompoundIterator *derivedClasses() const;
ICompoundIterator *nestedClasses() const; ICompoundIterator *nestedClasses() const;
// IFile implementation
IGraph *includeDependencyGraph() const;
IGraph *includedByDependencyGraph() const;
private: private:
QList<RelatedCompound> m_superClasses; QList<RelatedCompound> m_superClasses;
QList<RelatedCompound> m_subClasses; QList<RelatedCompound> m_subClasses;
QList<SectionHandler> m_sections; QList<SectionHandler> m_sections;
DocHandler *m_brief; DocHandler *m_brief;
DocHandler *m_detailed; DocHandler *m_detailed;
ProgramListingHandler *m_programListing; ProgramListingHandler *m_programListing;
QString m_id; StringImpl m_id;
QString m_kindString; StringImpl m_kindString;
CompoundKind m_kind; CompoundKind m_kind;
QString m_name; StringImpl m_name;
QString m_defFile; QString m_defFile;
int m_defLine; int m_defLine;
QString m_xmlDir; QString m_xmlDir;
...@@ -136,6 +144,8 @@ class CompoundHandler : public IClass, ...@@ -136,6 +144,8 @@ class CompoundHandler : public IClass,
MainHandler *m_mainHandler; MainHandler *m_mainHandler;
GraphHandler *m_inheritanceGraph; GraphHandler *m_inheritanceGraph;
GraphHandler *m_collaborationGraph; GraphHandler *m_collaborationGraph;
GraphHandler *m_includeDependencyGraph;
GraphHandler *m_includedByDependencyGraph;
QList<QString> m_innerClasses; QList<QString> m_innerClasses;
}; };
......
...@@ -117,6 +117,9 @@ MarkupHandler::MarkupHandler(QList<DocImpl> &children,QString &curString) ...@@ -117,6 +117,9 @@ MarkupHandler::MarkupHandler(QList<DocImpl> &children,QString &curString)
addStartHandler("superscript",this,&MarkupHandler::startSuperscript); addStartHandler("superscript",this,&MarkupHandler::startSuperscript);
addEndHandler("superscript",this,&MarkupHandler::endSuperscript); addEndHandler("superscript",this,&MarkupHandler::endSuperscript);
addStartHandler("preformatted",this,&MarkupHandler::startPreformatted);
addEndHandler("preformatted",this,&MarkupHandler::endPreformatted);
} }
MarkupHandler::~MarkupHandler() MarkupHandler::~MarkupHandler()
...@@ -231,6 +234,20 @@ void MarkupHandler::endSuperscript() ...@@ -231,6 +234,20 @@ void MarkupHandler::endSuperscript()
m_curMarkup &= ~IDocMarkup::Superscript; m_curMarkup &= ~IDocMarkup::Superscript;
} }
void MarkupHandler::startPreformatted(const QXmlAttributes & /*attrib*/)
{
addTextNode();
m_children.append(new MarkupModifierNode(IDocMarkup::Preformatted,TRUE));
m_curMarkup |= IDocMarkup::Preformatted;
}
void MarkupHandler::endPreformatted()
{
addTextNode();
m_children.append(new MarkupModifierNode(IDocMarkup::Preformatted,FALSE));
m_curMarkup &= ~IDocMarkup::Preformatted;
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// ListItemHandler // ListItemHandler
//---------------------------------------------------------------------- //----------------------------------------------------------------------
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <qxml.h> #include <qxml.h>
#include <doxmlintf.h> #include <doxmlintf.h>
#include "stringimpl.h"
#include "basehandler.h" #include "basehandler.h"
#include "baseiterator.h" #include "baseiterator.h"
...@@ -80,11 +81,11 @@ class TextNode : public DocTextImpl ...@@ -80,11 +81,11 @@ class TextNode : public DocTextImpl
// IDocText // IDocText
virtual Kind kind() const { return DocImpl::Text; } virtual Kind kind() const { return DocImpl::Text; }
virtual QString text() const { return m_text; } virtual const IString *text() const { return &m_text; }
virtual int markup() const { return m_markup; } virtual int markup() const { return m_markup; }
private: private:
QString m_text; StringImpl m_text;
int m_markup; int m_markup;
}; };
...@@ -137,6 +138,8 @@ class MarkupHandler : public BaseFallBackHandler<MarkupHandler> ...@@ -137,6 +138,8 @@ class MarkupHandler : public BaseFallBackHandler<MarkupHandler>
virtual void endSubscript(); virtual void endSubscript();
virtual void startSuperscript(const QXmlAttributes &attrib); virtual void startSuperscript(const QXmlAttributes &attrib);
virtual void endSuperscript(); virtual void endSuperscript();
virtual void startPreformatted(const QXmlAttributes &attrib);
virtual void endPreformatted();
private: private:
...@@ -322,12 +325,12 @@ class ParameterHandler : public DocParameterImpl, ...@@ -322,12 +325,12 @@ class ParameterHandler : public DocParameterImpl,
// IDocParameter // IDocParameter
virtual Kind kind() const { return DocImpl::Parameter; } virtual Kind kind() const { return DocImpl::Parameter; }
virtual QString name() const { return m_name; } virtual const IString *name() const { return &m_name; }
virtual IDocPara *description() const { return m_description; } virtual IDocPara *description() const { return m_description; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_name; StringImpl m_name;
ParagraphHandler *m_description; ParagraphHandler *m_description;
}; };
...@@ -404,13 +407,13 @@ class LinkHandler : public DocLinkImpl, public BaseHandler<LinkHandler> ...@@ -404,13 +407,13 @@ class LinkHandler : public DocLinkImpl, public BaseHandler<LinkHandler>
// IDocLink // IDocLink
virtual Kind kind() const { return DocImpl::Link; } virtual Kind kind() const { return DocImpl::Link; }
virtual QString refId() const { return m_ref; } virtual const IString *refId() const { return &m_ref; }
virtual QString text() const { return m_text; } virtual const IString *text() const { return &m_text; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_ref; StringImpl m_ref;
QString m_text; StringImpl m_text;
}; };
...@@ -430,11 +433,11 @@ class EMailHandler : public DocEMailImpl, public BaseHandler<EMailHandler> ...@@ -430,11 +433,11 @@ class EMailHandler : public DocEMailImpl, public BaseHandler<EMailHandler>
// IDocEMail // IDocEMail
virtual Kind kind() const { return DocImpl::EMail; } virtual Kind kind() const { return DocImpl::EMail; }
virtual QString address() const { return m_address; } virtual const IString *address() const { return &m_address; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_address; StringImpl m_address;
}; };
...@@ -454,13 +457,13 @@ class ULinkHandler : public DocULinkImpl, public BaseHandler<ULinkHandler> ...@@ -454,13 +457,13 @@ class ULinkHandler : public DocULinkImpl, public BaseHandler<ULinkHandler>
// IDocULink // IDocULink
virtual Kind kind() const { return DocImpl::ULink; } virtual Kind kind() const { return DocImpl::ULink; }
virtual QString url() const { return m_url; } virtual const IString * url() const { return &m_url; }
virtual QString text() const { return m_text; } virtual const IString * text() const { return &m_text; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_url; StringImpl m_url;
QString m_text; StringImpl m_text;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -499,16 +502,16 @@ class RefHandler : public DocRefImpl, public BaseHandler<RefHandler> ...@@ -499,16 +502,16 @@ class RefHandler : public DocRefImpl, public BaseHandler<RefHandler>
// IDocRef // IDocRef
virtual Kind kind() const { return DocImpl::Ref; } virtual Kind kind() const { return DocImpl::Ref; }
virtual QString refId() const { return m_refId; } virtual const IString *refId() const { return &m_refId; }
virtual TargetKind targetKind() const { return m_targetKind; } virtual TargetKind targetKind() const { return m_targetKind; }
virtual QString external() const { return m_extId; } virtual const IString *external() const { return &m_extId; }
virtual QString text() const { return m_linkText; } virtual const IString *text() const { return &m_linkText; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_refId; StringImpl m_refId;
QString m_extId; StringImpl m_extId;
QString m_linkText; StringImpl m_linkText;
TargetKind m_targetKind; TargetKind m_targetKind;
}; };
...@@ -569,7 +572,7 @@ class SimpleSectHandler : public DocSimpleSectImpl, ...@@ -569,7 +572,7 @@ class SimpleSectHandler : public DocSimpleSectImpl,
// IDocSimpleSect // IDocSimpleSect
virtual Kind kind() const { return DocImpl::SimpleSect; } virtual Kind kind() const { return DocImpl::SimpleSect; }
virtual Types type() const { return m_type; } virtual Types type() const { return m_type; }
virtual QString typeString() const { return m_typeString; } virtual const IString *typeString() const { return &m_typeString; }
virtual IDocTitle *title() const { return m_title; } virtual IDocTitle *title() const { return m_title; }
virtual IDocPara *description() const { return m_paragraph; } virtual IDocPara *description() const { return m_paragraph; }
...@@ -577,7 +580,7 @@ class SimpleSectHandler : public DocSimpleSectImpl, ...@@ -577,7 +580,7 @@ class SimpleSectHandler : public DocSimpleSectImpl,
IBaseHandler *m_parent; IBaseHandler *m_parent;
ParagraphHandler *m_paragraph; ParagraphHandler *m_paragraph;
Types m_type; Types m_type;
QString m_typeString; StringImpl m_typeString;
TitleHandler *m_title; TitleHandler *m_title;
}; };
...@@ -603,12 +606,12 @@ class VariableListEntryHandler : public DocVariableListEntryImpl, ...@@ -603,12 +606,12 @@ class VariableListEntryHandler : public DocVariableListEntryImpl,
// IDocVariableListEntry // IDocVariableListEntry
virtual Kind kind() const { return DocImpl::VariableListEntry; } virtual Kind kind() const { return DocImpl::VariableListEntry; }
virtual QString term() const { return m_term; } virtual const IString *term() const { return &m_term; }
virtual IDocPara *description() const { return m_description; } virtual IDocPara *description() const { return m_description; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_term; StringImpl m_term;
ParagraphHandler *m_description; ParagraphHandler *m_description;
}; };
...@@ -710,7 +713,7 @@ class CodeLineHandler : public DocCodeLineImpl, public BaseHandler<CodeLineHandl ...@@ -710,7 +713,7 @@ class CodeLineHandler : public DocCodeLineImpl, public BaseHandler<CodeLineHandl
// IDocCodeLine // IDocCodeLine
virtual Kind kind() const { return DocImpl::CodeLine; } virtual Kind kind() const { return DocImpl::CodeLine; }
virtual int lineNumber() const { return m_lineNumber; } virtual int lineNumber() const { return m_lineNumber; }
virtual QString refId() const { return m_refId; } virtual const IString *refId() const { return &m_refId; }
virtual IDocIterator *codeElements() const; virtual IDocIterator *codeElements() const;
private: private:
...@@ -718,7 +721,7 @@ class CodeLineHandler : public DocCodeLineImpl, public BaseHandler<CodeLineHandl ...@@ -718,7 +721,7 @@ class CodeLineHandler : public DocCodeLineImpl, public BaseHandler<CodeLineHandl
IBaseHandler *m_parent; IBaseHandler *m_parent;
int m_lineNumber; int m_lineNumber;
QString m_refId; StringImpl m_refId;
QList<DocImpl> m_children; QList<DocImpl> m_children;
}; };
...@@ -782,13 +785,13 @@ class FormulaHandler : public DocFormulaImpl, public BaseHandler<FormulaHandler> ...@@ -782,13 +785,13 @@ class FormulaHandler : public DocFormulaImpl, public BaseHandler<FormulaHandler>
// IDocFormula // IDocFormula
virtual Kind kind() const { return DocImpl::Formula; } virtual Kind kind() const { return DocImpl::Formula; }
virtual QString id() const { return m_id; } virtual const IString *id() const { return &m_id; }
virtual QString text() const { return m_text; } virtual const IString *text() const { return &m_text; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_id; StringImpl m_id;
QString m_text; StringImpl m_text;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -807,13 +810,13 @@ class ImageHandler : public DocImageImpl, public BaseHandler<ImageHandler> ...@@ -807,13 +810,13 @@ class ImageHandler : public DocImageImpl, public BaseHandler<ImageHandler>
// IDocImage // IDocImage
virtual Kind kind() const { return DocImpl::Image; } virtual Kind kind() const { return DocImpl::Image; }
virtual QString name() const { return m_name; } virtual const IString *name() const { return &m_name; }
virtual QString caption() const { return m_caption; } virtual const IString *caption() const { return &m_caption; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_name; StringImpl m_name;
QString m_caption; StringImpl m_caption;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -832,13 +835,13 @@ class DotFileHandler : public DocDotFileImpl, public BaseHandler<DotFileHandler> ...@@ -832,13 +835,13 @@ class DotFileHandler : public DocDotFileImpl, public BaseHandler<DotFileHandler>
// IDocDotFile // IDocDotFile
virtual Kind kind() const { return DocImpl::DotFile; } virtual Kind kind() const { return DocImpl::DotFile; }
virtual QString name() const { return m_name; } virtual const IString *name() const { return &m_name; }
virtual QString caption() const { return m_caption; } virtual const IString *caption() const { return &m_caption; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_name; StringImpl m_name;
QString m_caption; StringImpl m_caption;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -861,13 +864,13 @@ class IndexEntryHandler : public DocIndexEntryImpl, public BaseHandler<IndexEntr ...@@ -861,13 +864,13 @@ class IndexEntryHandler : public DocIndexEntryImpl, public BaseHandler<IndexEntr
// IDocIndexEntry // IDocIndexEntry
virtual Kind kind() const { return DocImpl::IndexEntry; } virtual Kind kind() const { return DocImpl::IndexEntry; }
virtual QString primary() const { return m_primary; } virtual const IString *primary() const { return &m_primary; }
virtual QString secondary() const { return m_secondary; } virtual const IString *secondary() const { return &m_secondary; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_primary; StringImpl m_primary;
QString m_secondary; StringImpl m_secondary;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -956,13 +959,13 @@ class TableHandler : public DocTableImpl, public BaseHandler<TableHandler> ...@@ -956,13 +959,13 @@ class TableHandler : public DocTableImpl, public BaseHandler<TableHandler>
virtual Kind kind() const { return DocImpl::Table; } virtual Kind kind() const { return DocImpl::Table; }
virtual IDocIterator *rows() const; virtual IDocIterator *rows() const;
virtual int numColumns() const { return m_numColumns; } virtual int numColumns() const { return m_numColumns; }
virtual QString caption() const { return m_caption; } virtual const IString *caption() const { return &m_caption; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QList<RowHandler> m_children; QList<RowHandler> m_children;
int m_numColumns; int m_numColumns;
QString m_caption; StringImpl m_caption;
}; };
class TableIterator : public BaseIteratorVia<IDocIterator,IDoc,RowHandler,DocImpl> class TableIterator : public BaseIteratorVia<IDocIterator,IDoc,RowHandler,DocImpl>
...@@ -995,7 +998,7 @@ class DocSectionHandler : public DocSectionImpl, public BaseHandler<DocSectionHa ...@@ -995,7 +998,7 @@ class DocSectionHandler : public DocSectionImpl, public BaseHandler<DocSectionHa
// IDocSection // IDocSection
virtual Kind kind() const { return DocImpl::Section; } virtual Kind kind() const { return DocImpl::Section; }
virtual QString id() const { return m_id; } virtual const IString *id() const { return &m_id; }
virtual int level() const { return m_level; } virtual int level() const { return m_level; }
virtual IDocIterator *title() const; virtual IDocIterator *title() const;
...@@ -1003,7 +1006,7 @@ class DocSectionHandler : public DocSectionImpl, public BaseHandler<DocSectionHa ...@@ -1003,7 +1006,7 @@ class DocSectionHandler : public DocSectionImpl, public BaseHandler<DocSectionHa
IBaseHandler *m_parent; IBaseHandler *m_parent;
QList<DocImpl> m_children; QList<DocImpl> m_children;
MarkupHandler *m_markupHandler; MarkupHandler *m_markupHandler;
QString m_id; StringImpl m_id;
int m_level; int m_level;
}; };
......
...@@ -9,6 +9,15 @@ class ICompound; ...@@ -9,6 +9,15 @@ class ICompound;
class ISection; class ISection;
class INode; class INode;
class IString
{
public:
virtual const char *latin1() const = 0;
virtual unsigned short unicodeCharAt(int index) const = 0;
virtual bool isEmpty() const = 0;
virtual int length() const = 0;
};
class ILinkedText class ILinkedText
{ {
public: public:
...@@ -19,17 +28,17 @@ class ILinkedText ...@@ -19,17 +28,17 @@ class ILinkedText
class ILT_Text : public ILinkedText class ILT_Text : public ILinkedText
{ {
public: public:
virtual QString text() const = 0; virtual const IString *text() const = 0;
}; };
class ILT_Ref : public ILinkedText class ILT_Ref : public ILinkedText
{ {
public: public:
enum TargetKind { Member, Compound }; enum TargetKind { Member, Compound };
virtual QString id() const = 0; virtual const IString *id() const = 0;
virtual TargetKind targetKind() const = 0; virtual TargetKind targetKind() const = 0;
virtual QString external() const = 0; virtual const IString *external() const = 0;
virtual QString text() const = 0; virtual const IString *text() const = 0;
}; };
class ILinkedTextIterator class ILinkedTextIterator
...@@ -47,10 +56,10 @@ class IParam ...@@ -47,10 +56,10 @@ class IParam
{ {
public: public:
virtual ILinkedTextIterator *type() const = 0; virtual ILinkedTextIterator *type() const = 0;
virtual QString declarationName() const = 0; virtual const IString * declarationName() const = 0;
virtual QString definitionName() const = 0; virtual const IString * definitionName() const = 0;
virtual QString attrib() const = 0; virtual const IString * attrib() const = 0;
virtual QString arraySpecifier() const = 0; virtual const IString * arraySpecifier() const = 0;
virtual ILinkedTextIterator *defaultValue() const = 0; virtual ILinkedTextIterator *defaultValue() const = 0;
}; };
...@@ -69,7 +78,7 @@ class IMemberReference ...@@ -69,7 +78,7 @@ class IMemberReference
{ {
public: public:
virtual IMember *member() const = 0; virtual IMember *member() const = 0;
virtual QString memberName() const = 0; virtual const IString * memberName() const = 0;
}; };
class IMemberReferenceIterator class IMemberReferenceIterator
...@@ -86,8 +95,8 @@ class IMemberReferenceIterator ...@@ -86,8 +95,8 @@ class IMemberReferenceIterator
class IEnumValue class IEnumValue
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual QString initializer() const = 0; virtual const IString * initializer() const = 0;
}; };
class IEnumValueIterator class IEnumValueIterator
...@@ -136,7 +145,7 @@ class IDoc ...@@ -136,7 +145,7 @@ class IDoc
Row, // 27 -> IDocRow Row, // 27 -> IDocRow
Entry, // 28 -> IDocEntry Entry, // 28 -> IDocEntry
Section, // 29 -> IDocSection Section, // 29 -> IDocSection
Root // 30 -> IDocRoot Root, // 30 -> IDocRoot
}; };
virtual Kind kind() const = 0; virtual Kind kind() const = 0;
}; };
...@@ -153,7 +162,8 @@ class IDocMarkup : public IDoc ...@@ -153,7 +162,8 @@ class IDocMarkup : public IDoc
Subscript = 0x08, Subscript = 0x08,
Superscript = 0x10, Superscript = 0x10,
SmallFont = 0x20, SmallFont = 0x20,
Center = 0x40 Center = 0x40,
Preformatted = 0x80
}; };
}; };
...@@ -167,7 +177,7 @@ class IDocPara : public IDoc ...@@ -167,7 +177,7 @@ class IDocPara : public IDoc
class IDocText : public IDocMarkup class IDocText : public IDocMarkup
{ {
public: public:
virtual QString text() const = 0; virtual const IString * text() const = 0;
virtual int markup() const = 0; virtual int markup() const = 0;
}; };
...@@ -207,7 +217,7 @@ class IDocParameterList : public IDoc ...@@ -207,7 +217,7 @@ class IDocParameterList : public IDoc
class IDocParameter : public IDoc class IDocParameter : public IDoc
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual IDocPara *description() const = 0; virtual IDocPara *description() const = 0;
}; };
...@@ -229,7 +239,7 @@ class IDocSimpleSect : public IDoc ...@@ -229,7 +239,7 @@ class IDocSimpleSect : public IDoc
Examples Examples
}; };
virtual Types type() const = 0; virtual Types type() const = 0;
virtual QString typeString() const = 0; virtual const IString * typeString() const = 0;
virtual IDocTitle *title() const = 0; virtual IDocTitle *title() const = 0;
virtual IDocPara *description() const = 0; virtual IDocPara *description() const = 0;
}; };
...@@ -238,10 +248,10 @@ class IDocRef : public IDoc ...@@ -238,10 +248,10 @@ class IDocRef : public IDoc
{ {
public: public:
enum TargetKind { Member, Compound }; enum TargetKind { Member, Compound };
virtual QString refId() const = 0; virtual const IString * refId() const = 0;
virtual TargetKind targetKind() const = 0; virtual TargetKind targetKind() const = 0;
virtual QString external() const = 0; virtual const IString * external() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocVariableList : public IDoc class IDocVariableList : public IDoc
...@@ -253,7 +263,7 @@ class IDocVariableList : public IDoc ...@@ -253,7 +263,7 @@ class IDocVariableList : public IDoc
class IDocVariableListEntry : public IDoc class IDocVariableListEntry : public IDoc
{ {
public: public:
virtual QString term() const = 0; virtual const IString * term() const = 0;
virtual IDocPara *description() const = 0; virtual IDocPara *description() const = 0;
}; };
...@@ -268,21 +278,21 @@ class IDocLineBreak : public IDoc ...@@ -268,21 +278,21 @@ class IDocLineBreak : public IDoc
class IDocULink : public IDoc class IDocULink : public IDoc
{ {
public: public:
virtual QString url() const = 0; virtual const IString * url() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocEMail : public IDoc class IDocEMail : public IDoc
{ {
public: public:
virtual QString address() const = 0; virtual const IString * address() const = 0;
}; };
class IDocLink : public IDoc class IDocLink : public IDoc
{ {
public: public:
virtual QString refId() const = 0; virtual const IString * refId() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocProgramListing : public IDoc class IDocProgramListing : public IDoc
...@@ -295,7 +305,7 @@ class IDocCodeLine : public IDoc ...@@ -295,7 +305,7 @@ class IDocCodeLine : public IDoc
{ {
public: public:
virtual int lineNumber() const = 0; virtual int lineNumber() const = 0;
virtual QString refId() const = 0; virtual const IString * refId() const = 0;
virtual IDocIterator *codeElements() const = 0; virtual IDocIterator *codeElements() const = 0;
}; };
...@@ -315,29 +325,29 @@ class IDocHighlight : public IDoc ...@@ -315,29 +325,29 @@ class IDocHighlight : public IDoc
class IDocFormula : public IDoc class IDocFormula : public IDoc
{ {
public: public:
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual QString text() const = 0; virtual const IString * text() const = 0;
}; };
class IDocImage : public IDoc class IDocImage : public IDoc
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual QString caption() const = 0; virtual const IString * caption() const = 0;
}; };
class IDocDotFile : public IDoc class IDocDotFile : public IDoc
{ {
public: public:
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual QString caption() const = 0; virtual const IString * caption() const = 0;
}; };
class IDocIndexEntry : public IDoc class IDocIndexEntry : public IDoc
{ {
public: public:
virtual QString primary() const = 0; virtual const IString * primary() const = 0;
virtual QString secondary() const = 0; virtual const IString * secondary() const = 0;
}; };
class IDocTable : public IDoc class IDocTable : public IDoc
...@@ -345,7 +355,7 @@ class IDocTable : public IDoc ...@@ -345,7 +355,7 @@ class IDocTable : public IDoc
public: public:
virtual IDocIterator *rows() const = 0; virtual IDocIterator *rows() const = 0;
virtual int numColumns() const = 0; virtual int numColumns() const = 0;
virtual QString caption() const = 0; virtual const IString * caption() const = 0;
}; };
class IDocRow : public IDoc class IDocRow : public IDoc
...@@ -363,7 +373,7 @@ class IDocEntry : public IDoc ...@@ -363,7 +373,7 @@ class IDocEntry : public IDoc
class IDocSection : public IDoc class IDocSection : public IDoc
{ {
public: public:
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual int level() const = 0; virtual int level() const = 0;
virtual IDocIterator *title() const = 0; virtual IDocIterator *title() const = 0;
}; };
...@@ -388,7 +398,7 @@ class IDocIterator ...@@ -388,7 +398,7 @@ class IDocIterator
class IEdgeLabel class IEdgeLabel
{ {
public: public:
virtual QString label() const = 0; virtual const IString * label() const = 0;
}; };
class IEdgeLabelIterator class IEdgeLabelIterator
...@@ -410,7 +420,7 @@ class IChildNode ...@@ -410,7 +420,7 @@ class IChildNode
}; };
virtual INode * node() const = 0; virtual INode * node() const = 0;
virtual NodeRelation relation() const = 0; virtual NodeRelation relation() const = 0;
virtual QString relationString() const = 0; virtual const IString * relationString() const = 0;
virtual IEdgeLabelIterator *edgeLabels() const = 0; virtual IEdgeLabelIterator *edgeLabels() const = 0;
}; };
...@@ -428,9 +438,9 @@ class IChildNodeIterator ...@@ -428,9 +438,9 @@ class IChildNodeIterator
class INode class INode
{ {
public: public:
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual QString label() const = 0; virtual const IString * label() const = 0;
virtual QString linkId() const = 0; virtual const IString * linkId() const = 0;
virtual IChildNodeIterator *children() const = 0; virtual IChildNodeIterator *children() const = 0;
}; };
...@@ -461,13 +471,13 @@ class IMember ...@@ -461,13 +471,13 @@ class IMember
virtual ICompound *compound() const = 0; virtual ICompound *compound() const = 0;
virtual ISection *section() const = 0; virtual ISection *section() const = 0;
virtual MemberKind kind() const = 0; virtual MemberKind kind() const = 0;
virtual QString kindString() const = 0; virtual const IString * kindString() const = 0;
virtual QString id() const = 0; virtual const IString * id() const = 0;
virtual QString protection() const = 0; virtual const IString * protection() const = 0;
virtual QString virtualness() const = 0; virtual const IString * virtualness() const = 0;
virtual ILinkedTextIterator *type() const = 0; virtual ILinkedTextIterator *type() const = 0;
virtual QString typeString() const = 0; virtual const IString * typeString() const = 0;
virtual QString name() const = 0; virtual const IString * name() const = 0;
virtual bool isConst() const = 0; virtual bool isConst() const = 0;
virtual bool isVolatile() const = 0; virtual bool isVolatile() const = 0;
virtual IParamIterator *params() const = 0; virtual IParamIterator *params() const = 0;
...@@ -477,7 +487,7 @@ class IMember ...@@ -477,7 +487,7 @@ class IMember
virtual IMemberReferenceIterator *referencedBy() const = 0; virtual IMemberReferenceIterator *referencedBy() const = 0;
virtual int bodyStart() const = 0; virtual int bodyStart() const = 0;
virtual int bodyEnd() const = 0; virtual int bodyEnd() const = 0;
virtual QString definitionFile() const = 0; virtual const IString * definitionFile() const = 0;
virtual int definitionLine() const = 0; virtual int definitionLine() const = 0;
virtual IMemberReference *reimplements() const = 0; virtual IMemberReference *reimplements() const = 0;
virtual IMemberReferenceIterator *reimplementedBy() const = 0; virtual IMemberReferenceIterator *reimplementedBy() const = 0;
...@@ -512,7 +522,7 @@ class ISection ...@@ -512,7 +522,7 @@ class ISection
Friend, Related, Defines, Prototypes, Typedefs, Friend, Related, Defines, Prototypes, Typedefs,
Enums, Functions, Variables Enums, Functions, Variables
}; };
virtual QString kindString() const = 0; virtual const IString * kindString() const = 0;
virtual SectionKind kind() const = 0; virtual SectionKind kind() const = 0;
virtual IMemberIterator *members() const = 0; virtual IMemberIterator *members() const = 0;
virtual bool isStatic() const = 0; virtual bool isStatic() const = 0;
...@@ -541,12 +551,12 @@ class ICompound ...@@ -541,12 +551,12 @@ class ICompound
Namespace, File, Group, Page Namespace, File, Group, Page
}; };
/*! Returns the name of this compound */ /*! Returns the name of this compound */
virtual QString name() const = 0; virtual const IString * name() const = 0;
/*! Returns the id of this compound. The id is a /*! Returns the id of this compound. The id is a
* unique string representing a specific compound object. * unique string representing a specific compound object.
*/ */
virtual QString id() const = 0; virtual const IString * id() const = 0;
/*! Returns the kind of compound. See #CompoundKind for possible /*! Returns the kind of compound. See #CompoundKind for possible
* values. * values.
...@@ -556,7 +566,7 @@ class ICompound ...@@ -556,7 +566,7 @@ class ICompound
/*! Returns a string representation of the compound kind. /*! Returns a string representation of the compound kind.
* @see kind() * @see kind()
*/ */
virtual QString kindString() const = 0; virtual const IString * kindString() const = 0;
/*! Returns an iterator for the different member sections in this /*! Returns an iterator for the different member sections in this
* compound. * compound.
...@@ -576,14 +586,14 @@ class ICompound ...@@ -576,14 +586,14 @@ class ICompound
/*! Returns an interface to a member given its id. /*! Returns an interface to a member given its id.
* @param id The member id. * @param id The member id.
*/ */
virtual IMember *memberById(const QString &id) const = 0; virtual IMember *memberById(const char * id) const = 0;
/*! Returns a list of all members within the compound having a certain /*! Returns a list of all members within the compound having a certain
* name. Member overloading is the reason why there can be more than * name. Member overloading is the reason why there can be more than
* one member. * one member.
* @param name The name of the member. * @param name The name of the member.
*/ */
virtual IMemberIterator *memberByName(const QString &name) const = 0; virtual IMemberIterator *memberByName(const char * name) const = 0;
/*! Decreases the reference counter for this compound. If it reaches /*! Decreases the reference counter for this compound. If it reaches
* zero, the memory for the compound will be released. * zero, the memory for the compound will be released.
...@@ -668,11 +678,13 @@ class INamespace : public ICompound ...@@ -668,11 +678,13 @@ class INamespace : public ICompound
class IFile : public ICompound class IFile : public ICompound
{ {
public:
virtual IGraph *includeDependencyGraph() const = 0;
virtual IGraph *includedByDependencyGraph() const = 0;
// file: // file:
// includes() // includes()
// includedBy() // includedBy()
// IDotGraph *includeDependencyGraph()
// IDotGraph *includedByDependencyGraph()
// IDocProgramListing *source() // IDocProgramListing *source()
// ICompound *innerNamespaces() // ICompound *innerNamespaces()
// ICompoundIterator *innerClasses() // ICompoundIterator *innerClasses()
...@@ -704,26 +716,26 @@ class IDoxygen ...@@ -704,26 +716,26 @@ class IDoxygen
* compound id this function is much more efficient than iterating * compound id this function is much more efficient than iterating
* over the compound list. Returns 0 if the id is not valid. * over the compound list. Returns 0 if the id is not valid.
*/ */
virtual ICompound *compoundById(const QString &id) const = 0; virtual ICompound *compoundById(const char * id) const = 0;
/*! Returns a compound given its name (including the scope). /*! Returns a compound given its name (including the scope).
* Returns 0 if the name is not found in the project. * Returns 0 if the name is not found in the project.
*/ */
virtual ICompound *compoundByName(const QString &name) const = 0; virtual ICompound *compoundByName(const char * name) const = 0;
/*! Returns an interface to a compound containing a member given it the /*! Returns an interface to a compound containing a member given it the
* member's id. Given the ICompound interface one can use the same id * member's id. Given the ICompound interface one can use the same id
* to obtain the IMember interface. * to obtain the IMember interface.
* @param id The member id. * @param id The member id.
*/ */
virtual ICompound *memberById(const QString &id) const = 0; virtual ICompound *memberById(const char * id) const = 0;
/*! Returns a list of all compounds containing at least one members /*! Returns a list of all compounds containing at least one members
* with a certain name. Each compound can be asked to return the * with a certain name. Each compound can be asked to return the
* list of members with that name. * list of members with that name.
* @param name The name of the member. * @param name The name of the member.
*/ */
virtual ICompoundIterator *memberByName(const QString &name) const = 0; virtual ICompoundIterator *memberByName(const char * name) const = 0;
/*! Releases the memory for the object hierarchy obtained by /*! Releases the memory for the object hierarchy obtained by
* createdObjecModelFromXML(). First release all iterators before calling * createdObjecModelFromXML(). First release all iterators before calling
......
...@@ -4,7 +4,7 @@ HEADERS = basehandler.h mainhandler.h \ ...@@ -4,7 +4,7 @@ HEADERS = basehandler.h mainhandler.h \
compoundhandler.h sectionhandler.h \ compoundhandler.h sectionhandler.h \
memberhandler.h paramhandler.h \ memberhandler.h paramhandler.h \
dochandler.h linkedtexthandler.h \ dochandler.h linkedtexthandler.h \
debug.h graphhandler.h debug.h graphhandler.h stringimpl.h
SOURCES = mainhandler.cpp \ SOURCES = mainhandler.cpp \
compoundhandler.cpp sectionhandler.cpp \ compoundhandler.cpp sectionhandler.cpp \
memberhandler.cpp paramhandler.cpp \ memberhandler.cpp paramhandler.cpp \
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#ifndef _GRAPHHANDLER_H #ifndef _GRAPHHANDLER_H
#define _GRAPHHANDLER_H #define _GRAPHHANDLER_H
#include "stringimpl.h"
#include "doxmlintf.h" #include "doxmlintf.h"
#include "basehandler.h" #include "basehandler.h"
#include "baseiterator.h" #include "baseiterator.h"
...@@ -63,16 +64,16 @@ class NodeHandler : public INode, public BaseHandler<NodeHandler> ...@@ -63,16 +64,16 @@ class NodeHandler : public INode, public BaseHandler<NodeHandler>
void startChildNode(const QXmlAttributes &attrib); void startChildNode(const QXmlAttributes &attrib);
// INode // INode
virtual QString id() const { return m_id; } virtual const IString *id() const { return &m_id; }
virtual QString label() const { return m_label; } virtual const IString *label() const { return &m_label; }
virtual QString linkId() const { return m_link; } virtual const IString *linkId() const { return &m_link; }
virtual IChildNodeIterator *children() const; virtual IChildNodeIterator *children() const;
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_id; StringImpl m_id;
QString m_label; StringImpl m_label;
QString m_link; StringImpl m_link;
QList<ChildNodeHandler> m_children; QList<ChildNodeHandler> m_children;
GraphHandler *m_graph; GraphHandler *m_graph;
}; };
...@@ -100,14 +101,14 @@ class ChildNodeHandler : public IChildNode, public BaseHandler<ChildNodeHandler> ...@@ -100,14 +101,14 @@ class ChildNodeHandler : public IChildNode, public BaseHandler<ChildNodeHandler>
// IChildNode // IChildNode
virtual INode *node() const; virtual INode *node() const;
virtual NodeRelation relation() const { return m_relation; } virtual NodeRelation relation() const { return m_relation; }
virtual QString relationString() const { return m_relationString; } virtual const IString * relationString() const { return &m_relationString; }
virtual IEdgeLabelIterator *edgeLabels() const; virtual IEdgeLabelIterator *edgeLabels() const;
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_id; QString m_id;
NodeRelation m_relation; NodeRelation m_relation;
QString m_relationString; StringImpl m_relationString;
QList<EdgeLabelHandler> m_edgeLabels; QList<EdgeLabelHandler> m_edgeLabels;
GraphHandler *m_graph; GraphHandler *m_graph;
}; };
...@@ -132,11 +133,11 @@ class EdgeLabelHandler : public IEdgeLabel, public BaseHandler<EdgeLabelHandler> ...@@ -132,11 +133,11 @@ class EdgeLabelHandler : public IEdgeLabel, public BaseHandler<EdgeLabelHandler>
void endEdgeLabel(); void endEdgeLabel();
// IEdgeLabel // IEdgeLabel
virtual QString label() const { return m_label; } virtual const IString *label() const { return &m_label; }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QString m_label; StringImpl m_label;
}; };
class EdgeLabelIterator : public BaseIterator<IEdgeLabelIterator,IEdgeLabel,EdgeLabelHandler> class EdgeLabelIterator : public BaseIterator<IEdgeLabelIterator,IEdgeLabel,EdgeLabelHandler>
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "linkedtexthandler.h" #include "linkedtexthandler.h"
#include "debug.h" #include "debug.h"
#include <doxmlintf.h> #include <doxmlintf.h>
#include "stringimpl.h"
class LT_Text : public LinkedTextImpl, public ILT_Text class LT_Text : public LinkedTextImpl, public ILT_Text
{ {
...@@ -23,10 +24,10 @@ class LT_Text : public LinkedTextImpl, public ILT_Text ...@@ -23,10 +24,10 @@ class LT_Text : public LinkedTextImpl, public ILT_Text
virtual ~LT_Text() {} virtual ~LT_Text() {}
// ILT_Text // ILT_Text
virtual QString text() const { return m_text; } virtual const IString *text() const { return &m_text; }
virtual Kind kind() const { return LinkedTextImpl::Kind_Text; } virtual Kind kind() const { return LinkedTextImpl::Kind_Text; }
private: private:
QString m_text; StringImpl m_text;
}; };
class LT_Ref : public LinkedTextImpl, public ILT_Ref class LT_Ref : public LinkedTextImpl, public ILT_Ref
...@@ -40,16 +41,16 @@ class LT_Ref : public LinkedTextImpl, public ILT_Ref ...@@ -40,16 +41,16 @@ class LT_Ref : public LinkedTextImpl, public ILT_Ref
void setTargetKind(TargetKind k) { m_targetKind=k; } void setTargetKind(TargetKind k) { m_targetKind=k; }
// ILT_Ref // ILT_Ref
virtual QString text() const { return m_text; } virtual const IString *text() const { return &m_text; }
virtual QString id() const { return m_refId; } virtual const IString * id() const { return &m_refId; }
virtual TargetKind targetKind() const { return m_targetKind; } virtual TargetKind targetKind() const { return m_targetKind; }
virtual QString external() const { return m_extId; } virtual const IString *external() const { return &m_extId; }
virtual Kind kind() const { return LinkedTextImpl::Kind_Ref; } virtual Kind kind() const { return LinkedTextImpl::Kind_Ref; }
private: private:
QString m_refId; StringImpl m_refId;
QString m_extId; StringImpl m_extId;
QString m_text; StringImpl m_text;
TargetKind m_targetKind; TargetKind m_targetKind;
}; };
...@@ -106,7 +107,7 @@ void LinkedTextHandler::endRef() ...@@ -106,7 +107,7 @@ void LinkedTextHandler::endRef()
{ {
m_ref->setText(m_curString); m_ref->setText(m_curString);
m_children.append(m_ref); m_children.append(m_ref);
debug(2,"LinkedTextHandler: add ref `%s'\n",m_ref->text().data()); debug(2,"LinkedTextHandler: add ref `%s'\n",m_ref->text()->latin1());
m_ref=0; m_ref=0;
} }
...@@ -120,10 +121,10 @@ QString LinkedTextHandler::toString(const QList<LinkedTextImpl> &list) ...@@ -120,10 +121,10 @@ QString LinkedTextHandler::toString(const QList<LinkedTextImpl> &list)
switch(lt->kind()) switch(lt->kind())
{ {
case ILinkedText::Kind_Text: case ILinkedText::Kind_Text:
result+=dynamic_cast<ILT_Text*>(lt)->text(); result+=dynamic_cast<ILT_Text*>(lt)->text()->latin1();
break; break;
case ILinkedText::Kind_Ref: case ILinkedText::Kind_Ref:
result+=dynamic_cast<ILT_Ref *>(lt)->text(); result+=dynamic_cast<ILT_Ref *>(lt)->text()->latin1();
break; break;
} }
} }
......
...@@ -194,16 +194,17 @@ ICompoundIterator *MainHandler::compounds() const ...@@ -194,16 +194,17 @@ ICompoundIterator *MainHandler::compounds() const
return new CompoundEntryIterator(this,m_compounds); return new CompoundEntryIterator(this,m_compounds);
} }
ICompound *MainHandler::compoundById(const QString &id) const ICompound *MainHandler::compoundById(const char *id) const
{ {
if (id.isEmpty()) return 0; QString ids = id;
CompoundHandler *ch = m_compoundsLoaded[id]; if (ids.isEmpty()) return 0;
CompoundHandler *ch = m_compoundsLoaded[ids];
if (ch) // compound already in memory if (ch) // compound already in memory
{ {
ch->addref(); // returning alias -> increase reference counter ch->addref(); // returning alias -> increase reference counter
return ch->toICompound(); return ch->toICompound();
} }
CompoundEntry *ce = m_compoundDict.find(id); CompoundEntry *ce = m_compoundDict.find(ids);
if (ce==0) return 0; // id not found if (ce==0) return 0; // id not found
// create and load a new compound // create and load a new compound
ch = new CompoundHandler(m_xmlDirName); ch = new CompoundHandler(m_xmlDirName);
...@@ -224,28 +225,31 @@ ICompound *MainHandler::compoundById(const QString &id) const ...@@ -224,28 +225,31 @@ ICompound *MainHandler::compoundById(const QString &id) const
void MainHandler::unloadCompound(CompoundHandler *ch) void MainHandler::unloadCompound(CompoundHandler *ch)
{ {
m_compoundsLoaded.remove(ch->id()); m_compoundsLoaded.remove(ch->id()->latin1());
} }
ICompound *MainHandler::compoundByName(const QString &name) const ICompound *MainHandler::compoundByName(const char *name) const
{ {
if (name.isEmpty()) return 0; QString nameStr = name;
if (nameStr.isEmpty()) return 0;
CompoundEntry *ce = m_compoundNameDict[name]; CompoundEntry *ce = m_compoundNameDict[name];
if (ce==0) return 0; // name not found if (ce==0) return 0; // name not found
return compoundById(ce->id); return compoundById(ce->id);
} }
ICompound *MainHandler::memberById(const QString &id) const ICompound *MainHandler::memberById(const char *id) const
{ {
if (id.isEmpty()) return 0; QString ids = id;
if (ids.isEmpty()) return 0;
MemberEntry *me = m_memberDict[id]; MemberEntry *me = m_memberDict[id];
if (me==0) return 0; // id not found if (me==0) return 0; // id not found
return compoundById(me->id); return compoundById(me->id);
} }
ICompoundIterator *MainHandler::memberByName(const QString &name) const ICompoundIterator *MainHandler::memberByName(const char *name) const
{ {
if (name.isEmpty()) return 0; QString nameStr = name;
if (nameStr.isEmpty()) return 0;
QList<CompoundEntry> *cel = m_memberNameDict[name]; QList<CompoundEntry> *cel = m_memberNameDict[name];
if (cel==0) return 0; // name not found if (cel==0) return 0; // name not found
return new CompoundEntryIterator(this,*cel); return new CompoundEntryIterator(this,*cel);
...@@ -267,7 +271,7 @@ void MainHandler::release() ...@@ -267,7 +271,7 @@ void MainHandler::release()
CompoundHandler *ch; CompoundHandler *ch;
for (chi.toFirst();(ch=chi.current());++chi) for (chi.toFirst();(ch=chi.current());++chi)
{ {
debug(1,"Compound %s not released\n",ch->name().data()); debug(1,"Compound %s not released\n",ch->name()->latin1());
} }
graphhandler_exit(); graphhandler_exit();
dochandler_exit(); dochandler_exit();
......
...@@ -55,10 +55,10 @@ class MainHandler : public IDoxygen, public BaseHandler<MainHandler> ...@@ -55,10 +55,10 @@ class MainHandler : public IDoxygen, public BaseHandler<MainHandler>
// IDoxygen // IDoxygen
ICompoundIterator *compounds() const; ICompoundIterator *compounds() const;
ICompound *compoundById(const QString &id) const; ICompound *compoundById(const char *id) const;
virtual ICompound *compoundByName(const QString &name) const; virtual ICompound *compoundByName(const char *name) const;
virtual ICompound *memberById(const QString &id) const; virtual ICompound *memberById(const char *id) const;
virtual ICompoundIterator *memberByName(const QString &name) const; virtual ICompoundIterator *memberByName(const char *name) const;
virtual void release(); virtual void release();
void setDebugLevel(int level); void setDebugLevel(int level);
......
...@@ -35,11 +35,11 @@ struct MemberReference : public IMemberReference ...@@ -35,11 +35,11 @@ struct MemberReference : public IMemberReference
{ {
virtual ~MemberReference() {} virtual ~MemberReference() {}
virtual IMember *member() const; virtual IMember *member() const;
virtual QString memberName() const { return m_name; } virtual const IString *memberName() const { return &m_name; }
void initialize(MainHandler *m); void initialize(MainHandler *m);
QString m_memId; QString m_memId;
QString m_name; StringImpl m_name;
MainHandler *m_mainHandler; MainHandler *m_mainHandler;
}; };
...@@ -61,8 +61,8 @@ class EnumValueHandler : public IEnumValue, public BaseHandler<EnumValueHandler> ...@@ -61,8 +61,8 @@ class EnumValueHandler : public IEnumValue, public BaseHandler<EnumValueHandler>
virtual void endEnumValue(); virtual void endEnumValue();
// IEnumValue // IEnumValue
virtual QString name() const { return m_name; } virtual const IString *name() const { return &m_name; }
virtual QString initializer() const { return m_initializer; } virtual const IString *initializer() const { return &m_initializer; }
void setName(const QString &name) { m_name=name; } void setName(const QString &name) { m_name=name; }
void setInitializer(const QString &init) { m_initializer=init; } void setInitializer(const QString &init) { m_initializer=init; }
...@@ -71,8 +71,8 @@ class EnumValueHandler : public IEnumValue, public BaseHandler<EnumValueHandler> ...@@ -71,8 +71,8 @@ class EnumValueHandler : public IEnumValue, public BaseHandler<EnumValueHandler>
EnumValueHandler(IBaseHandler *parent); EnumValueHandler(IBaseHandler *parent);
private: private:
QString m_name; StringImpl m_name;
QString m_initializer; StringImpl m_initializer;
IBaseHandler *m_parent; IBaseHandler *m_parent;
}; };
...@@ -115,24 +115,27 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler> ...@@ -115,24 +115,27 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
virtual ISection *section() const; virtual ISection *section() const;
virtual MemberKind kind() const virtual MemberKind kind() const
{ return m_kind; } { return m_kind; }
virtual QString kindString() const virtual const IString *kindString() const
{ return m_kindString; } { return &m_kindString; }
virtual QString id() const virtual const IString *id() const
{ return m_id; } { return &m_id; }
virtual QString protection() const virtual const IString *protection() const
{ return m_protection; } { return &m_protection; }
virtual QString virtualness() const virtual const IString *virtualness() const
{ return m_virtualness; } { return &m_virtualness; }
virtual QString name() const virtual const IString *name() const
{ return m_name; } { return &m_name; }
virtual bool isConst() const virtual bool isConst() const
{ return m_isConst; } { return m_isConst; }
virtual bool isVolatile() const virtual bool isVolatile() const
{ return m_isVolatile; } { return m_isVolatile; }
virtual ILinkedTextIterator *type() const virtual ILinkedTextIterator *type() const
{ return new LinkedTextIterator(m_type); } { return new LinkedTextIterator(m_type); }
virtual QString typeString() const virtual const IString *typeString() const
{ return LinkedTextHandler::toString(m_type); } { MemberHandler *that = (MemberHandler *)this;
that->m_typeString = LinkedTextHandler::toString(m_type);
return &m_typeString;
}
virtual IParamIterator *params() const virtual IParamIterator *params() const
{ return new ParamIterator(m_params); } { return new ParamIterator(m_params); }
virtual IMemberReferenceIterator *references() const virtual IMemberReferenceIterator *references() const
...@@ -147,8 +150,8 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler> ...@@ -147,8 +150,8 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
{ return m_bodyStart; } { return m_bodyStart; }
virtual int bodyEnd() const virtual int bodyEnd() const
{ return m_bodyEnd; } { return m_bodyEnd; }
virtual QString definitionFile() const virtual const IString *definitionFile() const
{ return m_defFile; } { return &m_defFile; }
virtual int definitionLine() const virtual int definitionLine() const
{ return m_defLine; } { return m_defLine; }
virtual IMemberReference *reimplements() const virtual IMemberReference *reimplements() const
...@@ -171,14 +174,15 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler> ...@@ -171,14 +174,15 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
CompoundHandler *m_compound; CompoundHandler *m_compound;
SectionHandler *m_section; SectionHandler *m_section;
MemberKind m_kind; MemberKind m_kind;
QString m_kindString; StringImpl m_kindString;
QString m_id; StringImpl m_id;
QString m_protection; StringImpl m_protection;
QString m_virtualness; StringImpl m_virtualness;
StringImpl m_typeString;
QList<LinkedTextImpl> m_type; QList<LinkedTextImpl> m_type;
QList<LinkedTextImpl> m_initializer; QList<LinkedTextImpl> m_initializer;
QList<LinkedTextImpl> m_exception; QList<LinkedTextImpl> m_exception;
QString m_name; StringImpl m_name;
DocHandler *m_brief; DocHandler *m_brief;
DocHandler *m_detailed; DocHandler *m_detailed;
QList<ParamHandler> m_params; QList<ParamHandler> m_params;
...@@ -186,7 +190,7 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler> ...@@ -186,7 +190,7 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
QList<MemberReference> m_referencedBy; QList<MemberReference> m_referencedBy;
MemberReference *m_reimplements; MemberReference *m_reimplements;
QList<MemberReference> m_reimplementedBy; QList<MemberReference> m_reimplementedBy;
QString m_defFile; StringImpl m_defFile;
int m_defLine; int m_defLine;
int m_bodyStart; int m_bodyStart;
int m_bodyEnd; int m_bodyEnd;
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <qxml.h> #include <qxml.h>
#include <doxmlintf.h> #include <doxmlintf.h>
#include "stringimpl.h"
#include "basehandler.h" #include "basehandler.h"
#include "baseiterator.h" #include "baseiterator.h"
#include "linkedtexthandler.h" #include "linkedtexthandler.h"
...@@ -43,20 +44,20 @@ class ParamHandler : public IParam, public BaseHandler<ParamHandler> ...@@ -43,20 +44,20 @@ class ParamHandler : public IParam, public BaseHandler<ParamHandler>
// IParam // IParam
virtual ILinkedTextIterator *type() const virtual ILinkedTextIterator *type() const
{ return new LinkedTextIterator(m_type); } { return new LinkedTextIterator(m_type); }
virtual QString declarationName() const { return m_declName; } virtual const IString * declarationName() const { return &m_declName; }
virtual QString definitionName() const { return m_defName; } virtual const IString * definitionName() const { return &m_defName; }
virtual QString attrib() const { return m_attrib; } virtual const IString * attrib() const { return &m_attrib; }
virtual QString arraySpecifier() const { return m_array; } virtual const IString * arraySpecifier() const { return &m_array; }
virtual ILinkedTextIterator *defaultValue() const virtual ILinkedTextIterator *defaultValue() const
{ return new LinkedTextIterator(m_defVal); } { return new LinkedTextIterator(m_defVal); }
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
QList<LinkedTextImpl> m_type; QList<LinkedTextImpl> m_type;
QString m_declName; StringImpl m_declName;
QString m_defName; StringImpl m_defName;
QString m_attrib; StringImpl m_attrib;
QString m_array; StringImpl m_array;
QList<LinkedTextImpl> m_defVal; QList<LinkedTextImpl> m_defVal;
LinkedTextHandler *m_linkedTextHandler; LinkedTextHandler *m_linkedTextHandler;
}; };
......
...@@ -46,8 +46,8 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler> ...@@ -46,8 +46,8 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
virtual ~SectionHandler(); virtual ~SectionHandler();
// ISection // ISection
virtual QString kindString() const virtual const IString *kindString() const
{ return m_kindString; } { return &m_kindString; }
virtual SectionKind kind() const virtual SectionKind kind() const
{ return m_kind; } { return m_kind; }
virtual IMemberIterator *members() const virtual IMemberIterator *members() const
...@@ -78,7 +78,7 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler> ...@@ -78,7 +78,7 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
SectionKind m_kind; SectionKind m_kind;
QString m_kindString; StringImpl m_kindString;
QList<MemberHandler> m_members; QList<MemberHandler> m_members;
}; };
......
#ifndef STRINGIMPL_H
#define STRINGIMPL_H
#include <qstring.h>
#include "doxmlintf.h"
class StringImpl : public QString, public IString
{
public:
StringImpl() {}
StringImpl(const QString &str) : QString(str) {}
virtual ~StringImpl() {}
// IString
const char *latin1() const
{ return QString::latin1(); }
unsigned short unicodeCharAt(int index) const
{ return QString::unicode()[index].unicode(); }
bool isEmpty() const
{ return QString::isEmpty(); }
int length() const
{ return QString::length(); }
};
#endif
...@@ -14,8 +14,12 @@ ...@@ -14,8 +14,12 @@
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <doxmlintf.h> #include <doxmlintf.h>
/*! Dumps the contents of a hyperlinked text fragment as plain text to the
* output.
*/
QString linkedTextToString(ILinkedTextIterator *ti) QString linkedTextToString(ILinkedTextIterator *ti)
{ {
QString result; QString result;
...@@ -24,106 +28,116 @@ QString linkedTextToString(ILinkedTextIterator *ti) ...@@ -24,106 +28,116 @@ QString linkedTextToString(ILinkedTextIterator *ti)
{ {
switch (lt->kind()) switch (lt->kind())
{ {
case ILinkedText::Kind_Text: case ILinkedText::Kind_Text: // plain text
result+=dynamic_cast<ILT_Text*>(lt)->text(); break; result+=dynamic_cast<ILT_Text*>(lt)->text()->latin1(); break;
case ILinkedText::Kind_Ref: case ILinkedText::Kind_Ref: // a link
result+=dynamic_cast<ILT_Ref *>(lt)->text(); break; result+=dynamic_cast<ILT_Ref *>(lt)->text()->latin1(); break;
} }
} }
return result; return result;
} }
void DumpDoc(IDoc *doc) /*! Macro for printing an indented message. */
#define InPrint(x) printf("%s",indent.latin1()), printf x;
/*! Dumps the contents of a documentation block to stdout.
* @note This function will call itself recursively.
* @param doc The root of the documentation tree.
* @param level The indent level.
*/
void DumpDoc(IDoc *doc,int level)
{ {
printf(" doc node kind=`%d'\n",doc->kind()); QString indent;
indent.fill(' ',level);
//printf(" doc node kind=`%d'\n",doc->kind());
switch (doc->kind()) switch (doc->kind())
{ {
case IDoc::Para: case IDoc::Para:
{ {
printf(" --- par --- \n"); InPrint(("<para>\n"));
IDocPara *par = dynamic_cast<IDocPara*>(doc); IDocPara *par = dynamic_cast<IDocPara*>(doc);
ASSERT(par!=0); ASSERT(par!=0);
IDocIterator *di = par->contents(); IDocIterator *di = par->contents();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- end par --- \n"); InPrint(("</para>\n"));
} }
break; break;
case IDoc::Text: case IDoc::Text:
{ {
IDocText *txt = dynamic_cast<IDocText*>(doc); IDocText *txt = dynamic_cast<IDocText*>(doc);
ASSERT(txt!=0); ASSERT(txt!=0);
printf(" --- text `%s' markup=%d --- \n",txt->text().data(),txt->markup()); InPrint(("<text value=`%s' markup=%d/>\n",txt->text()->latin1(),txt->markup()));
} }
break; break;
case IDoc::MarkupModifier: case IDoc::MarkupModifier:
{ {
IDocMarkupModifier *md = dynamic_cast<IDocMarkupModifier*>(doc); IDocMarkupModifier *md = dynamic_cast<IDocMarkupModifier*>(doc);
ASSERT(md!=0); ASSERT(md!=0);
printf(" --- markup modifier enabled=%d markup=%d\n",md->enabled(),md->markup()); InPrint(("<markup modifier enabled=%d markup=%d/>\n",md->enabled(),md->markup()));
} }
break; break;
case IDoc::ItemizedList: case IDoc::ItemizedList:
{ {
printf(" --- itemized list --- \n"); InPrint(("<itemized list>\n"));
IDocItemizedList *list = dynamic_cast<IDocItemizedList*>(doc); IDocItemizedList *list = dynamic_cast<IDocItemizedList*>(doc);
ASSERT(list!=0); ASSERT(list!=0);
IDocIterator *di = list->elements(); IDocIterator *di = list->elements();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- end itemized list --- \n"); InPrint(("</itemized list>\n"));
} }
break; break;
case IDoc::OrderedList: case IDoc::OrderedList:
{ {
printf(" --- ordered list --- \n"); InPrint(("<ordered list>\n"));
IDocOrderedList *list = dynamic_cast<IDocOrderedList*>(doc); IDocOrderedList *list = dynamic_cast<IDocOrderedList*>(doc);
ASSERT(list!=0); ASSERT(list!=0);
IDocIterator *di = list->elements(); IDocIterator *di = list->elements();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- end ordered list --- \n"); InPrint(("</ordered list>\n"));
} }
break; break;
case IDoc::ListItem: case IDoc::ListItem:
{ {
printf(" --- list item --- \n"); InPrint(("<list item>\n"));
IDocListItem *li = dynamic_cast<IDocListItem*>(doc); IDocListItem *li = dynamic_cast<IDocListItem*>(doc);
ASSERT(li!=0); ASSERT(li!=0);
IDocIterator *di = li->contents(); IDocIterator *di = li->contents();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- end list item --- \n"); InPrint(("</list item>\n"));
} }
break; break;
case IDoc::ParameterList: case IDoc::ParameterList:
{ {
IDocParameterList *list = dynamic_cast<IDocParameterList*>(doc); IDocParameterList *list = dynamic_cast<IDocParameterList*>(doc);
printf(" --- parameter list type=%d --- \n",list->listType()); InPrint(("<parameter list type=%d>\n",list->listType()));
IDocIterator *di = list->params(); IDocIterator *di = list->params();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- parameter list item --- \n"); InPrint(("</parameter list>\n"));
ASSERT(list!=0); ASSERT(list!=0);
} }
break; break;
...@@ -131,187 +145,248 @@ void DumpDoc(IDoc *doc) ...@@ -131,187 +145,248 @@ void DumpDoc(IDoc *doc)
{ {
IDocParameter *par = dynamic_cast<IDocParameter*>(doc); IDocParameter *par = dynamic_cast<IDocParameter*>(doc);
ASSERT(par!=0); ASSERT(par!=0);
printf(" --- parameter name=%s --- \n",par->name().data()); InPrint(("<parameter name=%s>\n",par->name()->latin1()));
DumpDoc(par->description()); DumpDoc(par->description(),level+1);
printf(" --- end parameter --- \n"); InPrint(("<parameter/>\n"));
} }
break; break;
case IDoc::SimpleSect: case IDoc::SimpleSect:
{ {
IDocSimpleSect *ss = dynamic_cast<IDocSimpleSect*>(doc); IDocSimpleSect *ss = dynamic_cast<IDocSimpleSect*>(doc);
ASSERT(ss!=0); ASSERT(ss!=0);
printf(" --- simplesect type=%s --- \n",ss->typeString().data()); InPrint(("<simplesect type=%s>\n",ss->typeString()->latin1()));
DumpDoc(ss->title()); DumpDoc(ss->title(),level+1);
DumpDoc(ss->description()); DumpDoc(ss->description(),level+1);
printf(" --- end simplesect --- \n"); InPrint(("<simplesect/>\n"));
} }
break; break;
case IDoc::Title: case IDoc::Title:
{ {
printf(" --- title --- \n"); InPrint(("<title>\n"));
IDocTitle *t = dynamic_cast<IDocTitle*>(doc); IDocTitle *t = dynamic_cast<IDocTitle*>(doc);
ASSERT(t!=0); ASSERT(t!=0);
IDocIterator *di = t->title(); IDocIterator *di = t->title();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
printf(" --- end title --- \n"); InPrint(("<title/>\n"));
} }
break; break;
case IDoc::Ref: case IDoc::Ref:
{ {
IDocRef *ref = dynamic_cast<IDocRef*>(doc); IDocRef *ref = dynamic_cast<IDocRef*>(doc);
ASSERT(ref!=0); ASSERT(ref!=0);
printf(" ref=%p\n",ref); InPrint(("<ref id=%s text=%s/>\n",
printf(" --- ref id=%s text=%s --- \n", ref->refId()->latin1(),ref->text()->latin1()));
ref->refId().data(),ref->text().data());
printf(" --- end ref --- \n");
} }
break; break;
case IDoc::VariableList: case IDoc::VariableList:
{ {
printf(" --- start variablelist --- \n"); InPrint(("<variablelist>\n"));
IDocVariableList *vl = dynamic_cast<IDocVariableList*>(doc); IDocVariableList *vl = dynamic_cast<IDocVariableList*>(doc);
ASSERT(vl!=0); ASSERT(vl!=0);
IDocIterator *di = vl->entries(); IDocIterator *di = vl->entries();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- end variablelist --- \n"); InPrint(("<variablelist/>\n"));
} }
break; break;
case IDoc::VariableListEntry: case IDoc::VariableListEntry:
{ {
IDocVariableListEntry *vle = dynamic_cast<IDocVariableListEntry*>(doc); IDocVariableListEntry *vle = dynamic_cast<IDocVariableListEntry*>(doc);
ASSERT(vle!=0); ASSERT(vle!=0);
printf(" --- start variablelistentry term=%s --- \n",vle->term().data()); InPrint(("<variablelistentry term=%s>\n",vle->term()->latin1()));
DumpDoc(vle->description()); DumpDoc(vle->description(),level+1);
printf(" --- end variablelistentry --- \n"); InPrint(("<variablelistentry/>\n"));
} }
break; break;
case IDoc::HRuler: case IDoc::HRuler:
{ {
IDocHRuler *hr = dynamic_cast<IDocHRuler*>(doc); IDocHRuler *hr = dynamic_cast<IDocHRuler*>(doc);
ASSERT(hr!=0); ASSERT(hr!=0);
InPrint(("<hruler/>\n"));
} }
break; break;
case IDoc::LineBreak: case IDoc::LineBreak:
{ {
IDocLineBreak *lb = dynamic_cast<IDocLineBreak*>(doc); IDocLineBreak *lb = dynamic_cast<IDocLineBreak*>(doc);
ASSERT(lb!=0); ASSERT(lb!=0);
InPrint(("<linebreak/>\n"));
} }
break; break;
case IDoc::ULink: case IDoc::ULink:
{ {
IDocULink *ul = dynamic_cast<IDocULink*>(doc); IDocULink *ul = dynamic_cast<IDocULink*>(doc);
ASSERT(ul!=0); ASSERT(ul!=0);
InPrint(("<ulink url=`%s' text=`%s'/>\n",ul->url()->latin1(),ul->text()->latin1()));
} }
break; break;
case IDoc::EMail: case IDoc::EMail:
{ {
IDocEMail *em = dynamic_cast<IDocEMail*>(doc); IDocEMail *em = dynamic_cast<IDocEMail*>(doc);
ASSERT(em!=0); ASSERT(em!=0);
InPrint(("<email address=`%s'/>\n",em->address()->latin1()));
} }
break; break;
case IDoc::Link: case IDoc::Link:
{ {
IDocLink *lk = dynamic_cast<IDocLink*>(doc); IDocLink *lk = dynamic_cast<IDocLink*>(doc);
ASSERT(lk!=0); ASSERT(lk!=0);
InPrint(("<link refid=`%s' text=`%s'/>\n",lk->refId()->latin1(),lk->text()->latin1()));
} }
break; break;
case IDoc::ProgramListing: case IDoc::ProgramListing:
{ {
IDocProgramListing *pl = dynamic_cast<IDocProgramListing*>(doc); IDocProgramListing *pl = dynamic_cast<IDocProgramListing*>(doc);
ASSERT(pl!=0); ASSERT(pl!=0);
InPrint(("<programlisting>\n"));
IDocIterator *cli = pl->codeLines();
IDoc *cl;
for (cli->toFirst();(cl=cli->current());cli->toNext())
{
DumpDoc(cl,level+1);
}
cli->release();
InPrint(("<programlisting/>\n"));
} }
break; break;
case IDoc::CodeLine: case IDoc::CodeLine:
{ {
IDocCodeLine *cl = dynamic_cast<IDocCodeLine*>(doc); IDocCodeLine *cl = dynamic_cast<IDocCodeLine*>(doc);
ASSERT(cl!=0); ASSERT(cl!=0);
InPrint(("<codeline lineNumber=%d refId=`%s'>\n",cl->lineNumber(),cl->refId()->latin1()));
IDocIterator *cei = cl->codeElements();
IDoc *ce;
for (cei->toFirst();(ce=cei->current());cei->toNext())
{
DumpDoc(ce,level+1);
}
cei->release();
InPrint(("<codeline/>\n"));
} }
break; break;
case IDoc::Highlight: case IDoc::Highlight:
{ {
IDocHighlight *hl = dynamic_cast<IDocHighlight*>(doc); IDocHighlight *hl = dynamic_cast<IDocHighlight*>(doc);
ASSERT(hl!=0); ASSERT(hl!=0);
InPrint(("<highlight kind=%d>\n",hl->kind()));
IDocIterator *cei = hl->codeElements();
IDoc *ce;
for (cei->toFirst();(ce=cei->current());cei->toNext())
{
DumpDoc(ce,level+1);
}
cei->release();
InPrint(("</highlight>\n"));
} }
break; break;
case IDoc::Formula: case IDoc::Formula:
{ {
IDocFormula *fm = dynamic_cast<IDocFormula*>(doc); IDocFormula *fm = dynamic_cast<IDocFormula*>(doc);
ASSERT(fm!=0); ASSERT(fm!=0);
InPrint(("<formula id=`%s' text=`%s'/>\n",fm->id()->latin1(),fm->text()->latin1()));
} }
break; break;
case IDoc::Image: case IDoc::Image:
{ {
IDocImage *img = dynamic_cast<IDocImage*>(doc); IDocImage *img = dynamic_cast<IDocImage*>(doc);
ASSERT(img!=0); ASSERT(img!=0);
InPrint(("<image name=`%s' caption=`%s'/>\n",img->name()->latin1(),img->caption()->latin1()));
} }
break; break;
case IDoc::DotFile: case IDoc::DotFile:
{ {
IDocDotFile *df = dynamic_cast<IDocDotFile*>(doc); IDocDotFile *df = dynamic_cast<IDocDotFile*>(doc);
ASSERT(df!=0); ASSERT(df!=0);
InPrint(("<dotfile name=`%s' caption=`%s'/>\n",df->name()->latin1(),df->caption()->latin1()));
} }
break; break;
case IDoc::IndexEntry: case IDoc::IndexEntry:
{ {
IDocIndexEntry *ie = dynamic_cast<IDocIndexEntry*>(doc); IDocIndexEntry *ie = dynamic_cast<IDocIndexEntry*>(doc);
ASSERT(ie!=0); ASSERT(ie!=0);
InPrint(("<indexentry primary=`%s' secondary=`%s'/>\n",ie->primary()->latin1(),ie->secondary()->latin1()));
} }
break; break;
case IDoc::Table: case IDoc::Table:
{ {
IDocTable *tbl = dynamic_cast<IDocTable*>(doc); IDocTable *tbl = dynamic_cast<IDocTable*>(doc);
ASSERT(tbl!=0); ASSERT(tbl!=0);
InPrint(("<table numcols=%d caption=`%s'>\n",tbl->numColumns(),tbl->caption()->latin1()));
IDocIterator *ri = tbl->rows();
IDoc *row;
for (ri->toFirst();(row=ri->current());ri->toNext())
{
DumpDoc(row,level+1);
}
ri->release();
InPrint(("</table>\n"));
} }
break; break;
case IDoc::Row: case IDoc::Row:
{ {
IDocRow *row = dynamic_cast<IDocRow*>(doc); IDocRow *row = dynamic_cast<IDocRow*>(doc);
ASSERT(row!=0); ASSERT(row!=0);
InPrint(("<row>\n"));
IDocIterator *ei = row->entries();
IDoc *e;
for (ei->toFirst();(e=ei->current());ei->toNext())
{
DumpDoc(e,level+1);
}
ei->release();
InPrint(("</row>\n"));
} }
break; break;
case IDoc::Entry: case IDoc::Entry:
{ {
IDocEntry *ent = dynamic_cast<IDocEntry*>(doc); IDocEntry *ent = dynamic_cast<IDocEntry*>(doc);
ASSERT(ent!=0); ASSERT(ent!=0);
InPrint(("<entry>\n"));
IDocIterator *di = ent->contents();
IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext())
{
DumpDoc(pdoc,level+1);
}
di->release();
InPrint(("</entry>\n"));
} }
break; break;
case IDoc::Section: case IDoc::Section:
{ {
IDocSection *sec = dynamic_cast<IDocSection*>(doc); IDocSection *sec = dynamic_cast<IDocSection*>(doc);
ASSERT(sec!=0); ASSERT(sec!=0);
printf(" --- section id=`%s' level=%d --- \n", InPrint(("<section id=`%s' level=%d>\n",
sec->id().data(),sec->level()); sec->id()->latin1(),sec->level()));
IDocIterator *di = sec->title(); IDocIterator *di = sec->title();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
printf(" --- end section --- \n"); InPrint(("<section/>\n"));
} }
break; break;
case IDoc::Root: case IDoc::Root:
{ {
printf(" --- root --- \n"); InPrint(("<root>\n"));
IDocRoot *root = dynamic_cast<IDocRoot*>(doc); IDocRoot *root = dynamic_cast<IDocRoot*>(doc);
ASSERT(root!=0); ASSERT(root!=0);
IDocIterator *di = root->contents(); IDocIterator *di = root->contents();
IDoc *pdoc; IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext()) for (di->toFirst();(pdoc=di->current());di->toNext())
{ {
DumpDoc(pdoc); DumpDoc(pdoc,level+1);
} }
di->release(); di->release();
printf(" --- end root --- \n"); InPrint(("<root/>\n"));
} }
break; break;
...@@ -329,24 +404,24 @@ void DumpGraph(IGraph *graph) ...@@ -329,24 +404,24 @@ void DumpGraph(IGraph *graph)
for (ni->toFirst();(node=ni->current());ni->toNext()) for (ni->toFirst();(node=ni->current());ni->toNext())
{ {
printf(" --- node id=%s label=%s linkId=%s\n", printf(" --- node id=%s label=%s linkId=%s\n",
node->id().data(), node->id()->latin1(),
node->label().data(), node->label()->latin1(),
node->linkId().data() node->linkId()->latin1()
); );
IChildNodeIterator *cni = node->children(); IChildNodeIterator *cni = node->children();
IChildNode *cn; IChildNode *cn;
for (cni->toFirst();(cn=cni->current());cni->toNext()) for (cni->toFirst();(cn=cni->current());cni->toNext())
{ {
printf(" + child id=%s label=%s relation=%s\n", printf(" + child id=%s label=%s relation=%s\n",
cn->node()->id().data(), cn->node()->id()->latin1(),
cn->node()->label().data(), cn->node()->label()->latin1(),
cn->relationString().data() cn->relationString()->latin1()
); );
IEdgeLabelIterator *eli = cn->edgeLabels(); IEdgeLabelIterator *eli = cn->edgeLabels();
IEdgeLabel *el; IEdgeLabel *el;
for (eli->toFirst();(el=eli->current());eli->toNext()) for (eli->toFirst();(el=eli->current());eli->toNext())
{ {
printf(" edgeLabel=%s\n",el->label().data()); printf(" edgeLabel=%s\n",el->label()->latin1());
} }
eli->release(); eli->release();
} }
...@@ -381,19 +456,19 @@ int main(int argc,char **argv) ...@@ -381,19 +456,19 @@ int main(int argc,char **argv)
for (cli->toFirst();(comp=cli->current());cli->toNext()) for (cli->toFirst();(comp=cli->current());cli->toNext())
{ {
printf("Compound name=%s id=%s kind=%s\n", printf("Compound name=%s id=%s kind=%s\n",
comp->name().data(),comp->id().data(),comp->kindString().data()); comp->name()->latin1(),comp->id()->latin1(),comp->kindString()->latin1());
ISectionIterator *sli = comp->sections(); ISectionIterator *sli = comp->sections();
ISection *sec; ISection *sec;
for (sli->toFirst();(sec=sli->current());sli->toNext()) for (sli->toFirst();(sec=sli->current());sli->toNext())
{ {
printf(" Section kind=%s\n",sec->kindString().data()); printf(" Section kind=%s\n",sec->kindString()->latin1());
IMemberIterator *mli = sec->members(); IMemberIterator *mli = sec->members();
IMember *mem; IMember *mem;
for (mli->toFirst();(mem=mli->current());mli->toNext()) for (mli->toFirst();(mem=mli->current());mli->toNext())
{ {
ILinkedTextIterator *lti = mem->type(); ILinkedTextIterator *lti = mem->type();
printf(" Member type=%s name=%s\n", printf(" Member type=%s name=%s\n",
linkedTextToString(lti).data(),mem->name().data()); linkedTextToString(lti).latin1(),mem->name()->latin1());
lti->release(); lti->release();
IParamIterator *pli = mem->params(); IParamIterator *pli = mem->params();
...@@ -407,7 +482,7 @@ int main(int argc,char **argv) ...@@ -407,7 +482,7 @@ int main(int argc,char **argv)
QString defVal = linkedTextToString(lti); QString defVal = linkedTextToString(lti);
lti->release(); lti->release();
printf(" Param type=%s name=%s defvalue=%s\n", printf(" Param type=%s name=%s defvalue=%s\n",
parType.data(), par->definitionName().data(),defVal.data()); parType.latin1(), par->definitionName()->latin1(),defVal.latin1());
} }
pli->release(); pli->release();
IMemberReferenceIterator *mri = mem->references(); IMemberReferenceIterator *mri = mem->references();
...@@ -416,7 +491,7 @@ int main(int argc,char **argv) ...@@ -416,7 +491,7 @@ int main(int argc,char **argv)
{ {
IMember *memr = mr->member(); IMember *memr = mr->member();
printf(" References %s at line %d\n", printf(" References %s at line %d\n",
mr->memberName().data(),memr->bodyStart()); mr->memberName()->latin1(),memr->bodyStart());
} }
mri->release(); mri->release();
...@@ -425,7 +500,7 @@ int main(int argc,char **argv) ...@@ -425,7 +500,7 @@ int main(int argc,char **argv)
{ {
IMember *memr = mr->member(); IMember *memr = mr->member();
printf(" ReferencedBy %s at line %d\n", printf(" ReferencedBy %s at line %d\n",
mr->memberName().data(),memr->bodyStart()); mr->memberName()->latin1(),memr->bodyStart());
} }
mri->release(); mri->release();
...@@ -434,7 +509,7 @@ int main(int argc,char **argv) ...@@ -434,7 +509,7 @@ int main(int argc,char **argv)
for (evi->toFirst();(ev=evi->current());evi->toNext()) for (evi->toFirst();(ev=evi->current());evi->toNext())
{ {
printf(" Enum value `%s' init=`%s'\n", printf(" Enum value `%s' init=`%s'\n",
ev->name().data(),ev->initializer().data()); ev->name()->latin1(),ev->initializer()->latin1());
} }
evi->release(); evi->release();
...@@ -442,14 +517,14 @@ int main(int argc,char **argv) ...@@ -442,14 +517,14 @@ int main(int argc,char **argv)
if (doc) if (doc)
{ {
printf("===== brief description ==== \n"); printf("===== brief description ==== \n");
DumpDoc(doc); DumpDoc(doc,0);
} }
doc = mem->detailedDescription(); doc = mem->detailedDescription();
if (doc) if (doc)
{ {
printf("===== detailed description ==== \n"); printf("===== detailed description ==== \n");
DumpDoc(doc); DumpDoc(doc,0);
} }
} }
mli->release(); mli->release();
...@@ -460,14 +535,14 @@ int main(int argc,char **argv) ...@@ -460,14 +535,14 @@ int main(int argc,char **argv)
if (doc) if (doc)
{ {
printf("===== brief description ==== \n"); printf("===== brief description ==== \n");
DumpDoc(doc); DumpDoc(doc,0);
} }
doc = comp->detailedDescription(); doc = comp->detailedDescription();
if (doc) if (doc)
{ {
printf("===== detailed description ==== \n"); printf("===== detailed description ==== \n");
DumpDoc(doc); DumpDoc(doc,0);
} }
if (comp->kind()==ICompound::Class) if (comp->kind()==ICompound::Class)
...@@ -487,7 +562,7 @@ int main(int argc,char **argv) ...@@ -487,7 +562,7 @@ int main(int argc,char **argv)
for (bcli->toFirst();(bClass=bcli->current());bcli->toNext()) for (bcli->toFirst();(bClass=bcli->current());bcli->toNext())
{ {
ICompound *bc = bClass->compound(); ICompound *bc = bClass->compound();
printf(" + class %s\n",bc->name().data()); printf(" + class %s\n",bc->name()->latin1());
bc->release(); bc->release();
} }
bcli->release(); bcli->release();
...@@ -498,11 +573,22 @@ int main(int argc,char **argv) ...@@ -498,11 +573,22 @@ int main(int argc,char **argv)
for (dcli->toFirst();(dClass=dcli->current());dcli->toNext()) for (dcli->toFirst();(dClass=dcli->current());dcli->toNext())
{ {
ICompound *dc = dClass->compound(); ICompound *dc = dClass->compound();
printf(" + class %s\n",dc->name().data()); printf(" + class %s\n",dc->name()->latin1());
dc->release(); dc->release();
} }
dcli->release(); dcli->release();
} }
else if (comp->kind()==ICompound::File)
{
IFile *file = dynamic_cast<IFile*>(comp);
ASSERT(file!=0);
printf("==== include dependency graph ==== \n");
DumpGraph(file->includeDependencyGraph());
printf("==== included by dependency graph ==== \n");
DumpGraph(file->includedByDependencyGraph());
}
comp->release(); comp->release();
} }
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.2.15_20020407 Version: 1.2.15_20020421
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -923,7 +923,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -923,7 +923,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.startDotGraph(); ol.startDotGraph();
parseText(ol,theTranslator->trClassDiagram(name())); parseText(ol,theTranslator->trClassDiagram(displayName()));
ol.endDotGraph(inheritanceGraph); ol.endDotGraph(inheritanceGraph);
if (Config_getBool("GENERATE_LEGEND")) if (Config_getBool("GENERATE_LEGEND"))
{ {
......
...@@ -1103,7 +1103,8 @@ void Config::check() ...@@ -1103,7 +1103,8 @@ void Config::check()
exit(1); exit(1);
} }
else if (cgiURL.left(7)!="http://" && else if (cgiURL.left(7)!="http://" &&
cgiURL.left(8)!="https://" cgiURL.left(8)!="https://" &&
cgiURL.left(4)!="cgi:"
) )
{ {
config_err("Error: tag CGI_URL: URL to cgi directory is invalid (must " config_err("Error: tag CGI_URL: URL to cgi directory is invalid (must "
...@@ -2224,6 +2225,13 @@ void Config::create() ...@@ -2224,6 +2225,13 @@ void Config::create()
"recommended to install and use dot, since it yield more powerful graphs. \n", "recommended to install and use dot, since it yield more powerful graphs. \n",
TRUE TRUE
); );
cb = addBool(
"HIDE_UNDOC_RELATIONS",
"If set to YES, the inheritance and collaboration graphs will hide \n"
"inheritance and usage relations if the target is undocumented \n"
"or is not a class. \n",
TRUE
);
cb = addBool( cb = addBool(
"HAVE_DOT", "HAVE_DOT",
"If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is \n" "If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is \n"
...@@ -2257,14 +2265,6 @@ void Config::create() ...@@ -2257,14 +2265,6 @@ void Config::create()
TRUE TRUE
); );
cb->addDependency("HAVE_DOT"); cb->addDependency("HAVE_DOT");
cb = addBool(
"HIDE_UNDOC_RELATIONS",
"If set to YES, the inheritance and collaboration graphs will hide \n"
"inheritance and usage relations if the target is undocumented \n"
"or is not a class. \n",
TRUE
);
cb->addDependency("HAVE_DOT");
cb = addBool( cb = addBool(
"INCLUDE_GRAPH", "INCLUDE_GRAPH",
"If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT \n" "If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT \n"
......
...@@ -123,7 +123,9 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri ...@@ -123,7 +123,9 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
switch(m_brief.at(bl-1)) switch(m_brief.at(bl-1))
{ {
case '.': case '!': case '?': break; case '.': case '!': case '?': break;
default: m_brief+='.'; break; default:
if (isupper(m_brief.at(0))) m_brief+='.';
break;
} }
} }
m_briefFile = briefFile; m_briefFile = briefFile;
......
...@@ -1161,12 +1161,12 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) ...@@ -1161,12 +1161,12 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
BEGIN( DocScan ); BEGIN( DocScan );
} }
<DocScan>{CMD}"verbatim"/[^a-z_A-Z0-9] { <DocScan>{CMD}"verbatim"/[^a-z_A-Z0-9] {
outDoc->startCodeFragment(); outDoc->startVerbatimFragment();
insideVerbatim=TRUE; insideVerbatim=TRUE;
BEGIN(DocVerbatim); BEGIN(DocVerbatim);
} }
<DocVerbatim>{CMD}"endverbatim"/[^a-z_A-Z0-9] { <DocVerbatim>{CMD}"endverbatim"/[^a-z_A-Z0-9] {
outDoc->endCodeFragment(); outDoc->endVerbatimFragment();
insideVerbatim=FALSE; insideVerbatim=FALSE;
BEGIN(DocScan); BEGIN(DocScan);
} }
...@@ -1225,7 +1225,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) ...@@ -1225,7 +1225,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
BEGIN( DocLinkText ); BEGIN( DocLinkText );
} }
<DocJavaLink>([a-z_A-Z0-9]+".")+ { /* Skip scope prefix (TODO: fix) */ } <DocJavaLink>([a-z_A-Z0-9]+".")+ { /* Skip scope prefix (TODO: fix) */ }
<DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\[\]]*")")?({B}*("const"|"volatile"))? { // TODO: support operators as well! <DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\ \[\]]*")")?({B}*("const"|"volatile"))? { // TODO: support operators as well!
linkRef = yytext; linkRef = yytext;
linkText = ""; linkText = "";
BEGIN( DocJavaLinkText ); BEGIN( DocJavaLinkText );
...@@ -1272,6 +1272,10 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) ...@@ -1272,6 +1272,10 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
BEGIN(DocScan); BEGIN(DocScan);
} }
<DocScan>{CMD}("arg"|"li")/{BN} { <DocScan>{CMD}("arg"|"li")/{BN} {
if (insideItemList)
{
forceEndItemList();
}
if (insideArgumentList) if (insideArgumentList)
{ {
outDoc->writeListItem(); outDoc->writeListItem();
......
...@@ -468,7 +468,7 @@ void DotNode::write(QTextStream &t, ...@@ -468,7 +468,7 @@ void DotNode::write(QTextStream &t,
} }
} }
void DotNode::writeXML(QTextStream &t) void DotNode::writeXML(QTextStream &t,bool isClassGraph)
{ {
t << " <node id=\"" << m_number << "\">" << endl; t << " <node id=\"" << m_number << "\">" << endl;
t << " <label>" << convertToXML(m_label) << "</label>" << endl; t << " <label>" << convertToXML(m_label) << "</label>" << endl;
...@@ -498,14 +498,21 @@ void DotNode::writeXML(QTextStream &t) ...@@ -498,14 +498,21 @@ void DotNode::writeXML(QTextStream &t)
{ {
edgeInfo=eli.current(); edgeInfo=eli.current();
t << " <childnode id=\"" << childNode->m_number << "\" relation=\""; t << " <childnode id=\"" << childNode->m_number << "\" relation=\"";
switch(edgeInfo->m_color) if (isClassGraph)
{ {
case EdgeInfo::Blue: t << "public-inheritance"; break; switch(edgeInfo->m_color)
case EdgeInfo::Green: t << "protected-inheritance"; break; {
case EdgeInfo::Red: t << "private-inheritance"; break; case EdgeInfo::Blue: t << "public-inheritance"; break;
case EdgeInfo::Purple: t << "usage"; break; case EdgeInfo::Green: t << "protected-inheritance"; break;
case EdgeInfo::Orange: t << "template-instance"; break; case EdgeInfo::Red: t << "private-inheritance"; break;
case EdgeInfo::Grey: ASSERT(0); break; case EdgeInfo::Purple: t << "usage"; break;
case EdgeInfo::Orange: t << "template-instance"; break;
case EdgeInfo::Grey: ASSERT(0); break;
}
}
else // include graph
{
t << "include";
} }
t << "\">" << endl; t << "\">" << endl;
if (!edgeInfo->m_label.isEmpty()) if (!edgeInfo->m_label.isEmpty())
...@@ -1430,7 +1437,7 @@ void DotClassGraph::writeXML(QTextStream &t) ...@@ -1430,7 +1437,7 @@ void DotClassGraph::writeXML(QTextStream &t)
DotNode *node; DotNode *node;
for (;(node=dni.current());++dni) for (;(node=dni.current());++dni)
{ {
node->writeXML(t); node->writeXML(t,TRUE);
} }
} }
...@@ -1661,7 +1668,7 @@ void DotInclDepGraph::writeXML(QTextStream &t) ...@@ -1661,7 +1668,7 @@ void DotInclDepGraph::writeXML(QTextStream &t)
DotNode *node; DotNode *node;
for (;(node=dni.current());++dni) for (;(node=dni.current());++dni)
{ {
node->writeXML(t); node->writeXML(t,FALSE);
} }
} }
......
...@@ -76,7 +76,7 @@ class DotNode ...@@ -76,7 +76,7 @@ class DotNode
int maxDistance=1000,bool backArrows=TRUE); int maxDistance=1000,bool backArrows=TRUE);
int m_subgraphId; int m_subgraphId;
void clearWriteFlag(); void clearWriteFlag();
void writeXML(QTextStream &t); void writeXML(QTextStream &t,bool isClassGraph);
void writeDEF(QTextStream &t); void writeDEF(QTextStream &t);
QCString label() const { return m_label; } QCString label() const { return m_label; }
int number() const { return m_number; } int number() const { return m_number; }
......
/****************************************************************************** /******************************************************************************
* *
* $Id$ *
* *
* *
* Copyright (C) 1997-2002 by Dimitri van Heesch. * Copyright (C) 1997-2002 by Dimitri van Heesch.
...@@ -541,232 +541,232 @@ ArgumentList *getTemplateArgumentsFromName( ...@@ -541,232 +541,232 @@ ArgumentList *getTemplateArgumentsFromName(
return ali.current(); return ali.current();
} }
static void addClassToContext(Entry *root)
//----------------------------------------------------------------------
// build a list of all classes mentioned in the documentation
// and all classes that have a documentation block before their definition.
static void buildClassList(Entry *root)
{ {
if ( QCString fullName=removeRedundantWhiteSpace(root->name);
((root->section & Entry::COMPOUNDDOC_MASK) || if (fullName.isEmpty())
((root->section & Entry::COMPOUND_MASK))
) &&
!root->name.isEmpty()
)
{ {
QCString fullName=removeRedundantWhiteSpace(root->name); // this should not be called
if (fullName.isEmpty()) warn(root->fileName,root->startLine,
{ "Warning: invalid class name found!"
// this should not be called );
warn(root->fileName,root->startLine, return;
"Warning: invalid class name found!" }
); Debug::print(Debug::Classes,0," Found class with raw name %s\n",fullName.data());
goto error;
}
Debug::print(Debug::Classes,0," Found class with raw name %s\n",fullName.data());
fullName=stripAnonymousNamespaceScope(fullName); fullName=stripAnonymousNamespaceScope(fullName);
fullName=stripTemplateSpecifiersFromScope(fullName); fullName=stripTemplateSpecifiersFromScope(fullName);
Debug::print(Debug::Classes,0," Found class with name %s\n",fullName.data()); Debug::print(Debug::Classes,0," Found class with name %s\n",fullName.data());
bool ambig; bool ambig;
ClassDef *cd; ClassDef *cd;
//printf("findFileDef(%s)\n",root->fileName.data()); //printf("findFileDef(%s)\n",root->fileName.data());
FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
if ((cd=getClass(fullName))) if ((cd=getClass(fullName)))
{ {
Debug::print(Debug::Classes,0," Existing class!\n",fullName.data()); Debug::print(Debug::Classes,0," Existing class!\n",fullName.data());
//if (cd->templateArguments()==0) //if (cd->templateArguments()==0)
//{ //{
// //printf("existing ClassDef tempArgList=%p specScope=%s\n",root->tArgList,root->scopeSpec.data()); // //printf("existing ClassDef tempArgList=%p specScope=%s\n",root->tArgList,root->scopeSpec.data());
// cd->setTemplateArguments(tArgList); // cd->setTemplateArguments(tArgList);
//} //}
if (!root->doc.isEmpty() || !root->brief.isEmpty() || if (!root->doc.isEmpty() || !root->brief.isEmpty() ||
(root->bodyLine!=-1 && Config_getBool("SOURCE_BROWSER")) (root->bodyLine!=-1 && Config_getBool("SOURCE_BROWSER"))
) )
// block contains something that ends up in the docs // block contains something that ends up in the docs
{ {
if (!root->doc.isEmpty() && !cd->documentation().isEmpty()) if (!root->doc.isEmpty() && !cd->documentation().isEmpty())
{
warn(
root->fileName,root->startLine,
"Warning: class %s already has a detailed description. "
"Skipping the one found here.",
fullName.data()
);
}
else if (!root->doc.isEmpty())
{
cd->setDocumentation(root->doc,root->docFile,root->docLine);
}
if (!root->brief.isEmpty() && !cd->briefDescription().isEmpty())
{
warn(
root->fileName,root->startLine,
"Warning: class %s already has a brief description\n"
" skipping the one found here.",
fullName.data()
);
}
else if (!root->brief.isEmpty())
{
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
}
if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1)
{
cd->setBodySegment(root->bodyLine,root->endBodyLine);
cd->setBodyDef(findFileDef(Doxygen::inputNameDict,root->fileName,ambig));
}
cd->addSectionsToDefinition(root->anchors);
cd->setName(fullName); // change name to match docs
}
cd->setFileDef(fd);
if (cd->hasDocumentation())
{ {
addIncludeFile(cd,fd,root); warn(
root->fileName,root->startLine,
"Warning: class %s already has a detailed description. "
"Skipping the one found here.",
fullName.data()
);
} }
addNamespace(root,cd); else if (!root->doc.isEmpty())
if (fd && (root->section & Entry::COMPOUND_MASK))
{ {
//printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n", cd->setDocumentation(root->doc,root->docFile,root->docLine);
// cd->name().data(),
// fd->name().data(),
// root->fileName.data()
// );
fd->insertClass(cd);
} }
addClassToGroups(root,cd); if (!root->brief.isEmpty() && !cd->briefDescription().isEmpty())
cd->setRefItems(root->todoId,root->testId,root->bugId);
if (!root->subGrouping) cd->setSubGrouping(FALSE);
if (cd->templateArguments()==0)
{ {
// this happens if a template class declared with @class is found warn(
// before the actual definition. root->fileName,root->startLine,
ArgumentList *tArgList = "Warning: class %s already has a brief description\n"
getTemplateArgumentsFromName(fullName,root->tArgLists); " skipping the one found here.",
cd->setTemplateArguments(tArgList); fullName.data()
);
} }
} else if (!root->brief.isEmpty())
else // new class
{
ClassDef::CompoundType sec=ClassDef::Class;
switch(root->section)
{ {
case Entry::UNION_SEC: cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
case Entry::UNIONDOC_SEC:
sec=ClassDef::Union; break;
case Entry::STRUCT_SEC:
case Entry::STRUCTDOC_SEC:
sec=ClassDef::Struct; break;
case Entry::INTERFACE_SEC:
case Entry::INTERFACEDOC_SEC:
sec=ClassDef::Interface; break;
case Entry::EXCEPTION_SEC:
case Entry::EXCEPTIONDOC_SEC:
sec=ClassDef::Exception; break;
} }
Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d\n", if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1)
fullName.data(),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1);
QCString className;
QCString namespaceName;
extractNamespaceName(fullName,className,namespaceName);
//printf("New class: namespace `%s' name=`%s'\n",className.data(),namespaceName.data());
QCString tagName;
QCString refFileName;
if (root->tagInfo)
{ {
tagName = root->tagInfo->tagName; cd->setBodySegment(root->bodyLine,root->endBodyLine);
refFileName = root->tagInfo->fileName; cd->setBodyDef(findFileDef(Doxygen::inputNameDict,root->fileName,ambig));
} }
ClassDef *cd=new ClassDef(root->fileName,root->startLine,fullName,sec, cd->addSectionsToDefinition(root->anchors);
tagName,refFileName); cd->setName(fullName); // change name to match docs
cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition }
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine); cd->setFileDef(fd);
//printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); if (cd->hasDocumentation())
{
addIncludeFile(cd,fd,root);
}
addNamespace(root,cd);
if (fd && (root->section & Entry::COMPOUND_MASK))
{
//printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
// cd->name().data(),
// fd->name().data(),
// root->fileName.data()
// );
fd->insertClass(cd);
}
addClassToGroups(root,cd);
cd->setRefItems(root->todoId,root->testId,root->bugId);
if (!root->subGrouping) cd->setSubGrouping(FALSE);
if (cd->templateArguments()==0)
{
// this happens if a template class declared with @class is found
// before the actual definition.
ArgumentList *tArgList = ArgumentList *tArgList =
getTemplateArgumentsFromName(fullName,root->tArgLists); getTemplateArgumentsFromName(fullName,root->tArgLists);
//printf("class %s template args=%s\n",fullName.data(),
// tArgList ? tempArgListToString(tArgList).data() : "<none>");
cd->setTemplateArguments(tArgList); cd->setTemplateArguments(tArgList);
cd->setProtection(root->protection); }
cd->addSectionsToDefinition(root->anchors); }
cd->setIsStatic(root->stat); else // new class
{
ClassDef::CompoundType sec=ClassDef::Class;
switch(root->section)
{
case Entry::UNION_SEC:
case Entry::UNIONDOC_SEC:
sec=ClassDef::Union; break;
case Entry::STRUCT_SEC:
case Entry::STRUCTDOC_SEC:
sec=ClassDef::Struct; break;
case Entry::INTERFACE_SEC:
case Entry::INTERFACEDOC_SEC:
sec=ClassDef::Interface; break;
case Entry::EXCEPTION_SEC:
case Entry::EXCEPTIONDOC_SEC:
sec=ClassDef::Exception; break;
}
Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d\n",
fullName.data(),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1);
QCString className;
QCString namespaceName;
extractNamespaceName(fullName,className,namespaceName);
// file definition containing the class cd //printf("New class: namespace `%s' name=`%s'\n",className.data(),namespaceName.data());
cd->setBodySegment(root->bodyLine,root->endBodyLine);
cd->setBodyDef(fd);
if (!root->subGrouping) cd->setSubGrouping(FALSE);
addClassToGroups(root,cd); QCString tagName;
cd->setRefItems(root->todoId,root->testId,root->bugId); QCString refFileName;
if (root->tagInfo)
{
tagName = root->tagInfo->tagName;
refFileName = root->tagInfo->fileName;
}
ClassDef *cd=new ClassDef(root->fileName,root->startLine,fullName,sec,
tagName,refFileName);
cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
//printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data());
// see if the class is found inside a namespace
bool found=addNamespace(root,cd);
cd->setFileDef(fd); ArgumentList *tArgList =
if (cd->hasDocumentation()) getTemplateArgumentsFromName(fullName,root->tArgLists);
{ //printf("class %s template args=%s\n",fullName.data(),
addIncludeFile(cd,fd,root); // tArgList ? tempArgListToString(tArgList).data() : "<none>");
} cd->setTemplateArguments(tArgList);
cd->setProtection(root->protection);
cd->addSectionsToDefinition(root->anchors);
cd->setIsStatic(root->stat);
// namespace is part of the class name // file definition containing the class cd
if (!found && !namespaceName.isEmpty()) cd->setBodySegment(root->bodyLine,root->endBodyLine);
{ cd->setBodyDef(fd);
NamespaceDef *nd = getResolvedNamespace(namespaceName); if (!root->subGrouping) cd->setSubGrouping(FALSE);
if (nd)
{
cd->setNamespace(nd);
nd->insertClass(cd);
found=TRUE;
}
}
// if the class is not in a namespace then we insert addClassToGroups(root,cd);
// it in the file definition cd->setRefItems(root->todoId,root->testId,root->bugId);
if (!found && fd && (root->section & Entry::COMPOUND_MASK))
{
//printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
// cd->name().data(),
// fd->name().data(),
// root->fileName.data()
// );
fd->insertClass(cd);
}
// the empty string test is needed for extract all case // see if the class is found inside a namespace
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine); bool found=addNamespace(root,cd);
cd->insertUsedFile(root->fileName);
// add class to the list cd->setFileDef(fd);
//printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data()); if (cd->hasDocumentation())
Doxygen::classSDict.append(fullName,cd); {
addIncludeFile(cd,fd,root);
}
// also add class to the correct structural context // namespace is part of the class name
Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName); if (!found && !namespaceName.isEmpty())
if (d==0) {
{ NamespaceDef *nd = getResolvedNamespace(namespaceName);
//warn(root->fileName,root->startLine, if (nd)
// "Warning: Internal inconsistency: scope for class %s not "
// "found!\n",fullName.data()
// );
}
else
{ {
//printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data()); cd->setNamespace(nd);
d->addInnerCompound(cd); nd->insertClass(cd);
cd->setOuterScope(d); found=TRUE;
} }
} }
// if the class is not in a namespace then we insert
// it in the file definition
if (!found && fd && (root->section & Entry::COMPOUND_MASK))
{
//printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
// cd->name().data(),
// fd->name().data(),
// root->fileName.data()
// );
fd->insertClass(cd);
}
// the empty string test is needed for extract all case
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
cd->insertUsedFile(root->fileName);
// add class to the list
//printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data());
Doxygen::classSDict.append(fullName,cd);
// also add class to the correct structural context
Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName);
if (d==0)
{
//warn(root->fileName,root->startLine,
// "Warning: Internal inconsistency: scope for class %s not "
// "found!\n",fullName.data()
// );
}
else
{
//printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data());
d->addInnerCompound(cd);
cd->setOuterScope(d);
}
}
}
//----------------------------------------------------------------------
// build a list of all classes mentioned in the documentation
// and all classes that have a documentation block before their definition.
static void buildClassList(Entry *root)
{
if (
(root->section & Entry::COMPOUND_MASK) && !root->name.isEmpty()
)
{
addClassToContext(root);
} }
error:
EntryListIterator eli(*root->sublist); EntryListIterator eli(*root->sublist);
Entry *e; Entry *e;
for (;(e=eli.current());++eli) for (;(e=eli.current());++eli)
...@@ -775,18 +775,41 @@ error: ...@@ -775,18 +775,41 @@ error:
} }
} }
static void buildClassDocList(Entry *root)
{
if (
(root->section & Entry::COMPOUNDDOC_MASK) && !root->name.isEmpty()
)
{
addClassToContext(root);
}
EntryListIterator eli(*root->sublist);
Entry *e;
for (;(e=eli.current());++eli)
{
buildClassDocList(e);
}
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// build a list of all namespaces mentioned in the documentation // build a list of all namespaces mentioned in the documentation
// and all namespaces that have a documentation block before their definition. // and all namespaces that have a documentation block before their definition.
static void buildNamespaceList(Entry *root) static void buildNamespaceList(Entry *root)
{ {
if ( if (
(root->section==Entry::NAMESPACE_SEC) || (root->section==Entry::NAMESPACE_SEC ||
(root->section==Entry::NAMESPACEDOC_SEC) && root->section==Entry::NAMESPACEDOC_SEC ||
root->section==Entry::PACKAGEDOC_SEC
) &&
!root->name.isEmpty() !root->name.isEmpty()
) )
{ {
QCString fullName=stripAnonymousNamespaceScope(root->name.copy()); QCString fullName = root->name;
if (root->section==Entry::PACKAGEDOC_SEC)
{
fullName=substitute(fullName,".","::");
}
fullName = stripAnonymousNamespaceScope(fullName);
if (!fullName.isEmpty()) if (!fullName.isEmpty())
{ {
//printf("Found namespace %s in %s at line %d\n",root->name.data(), //printf("Found namespace %s in %s at line %d\n",root->name.data(),
...@@ -5564,50 +5587,50 @@ static void findMainPage(Entry *root) ...@@ -5564,50 +5587,50 @@ static void findMainPage(Entry *root)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
/*! Search for all Java package statements ///*! Search for all Java package statements
*/ // */
static void buildPackageList(Entry *root) //static void buildPackageList(Entry *root)
{ //{
if (root->section == Entry::PACKAGE_SEC || root->section == Entry::PACKAGEDOC_SEC && !root->name.isEmpty()) // if (root->section == Entry::PACKAGE_SEC || root->section == Entry::PACKAGEDOC_SEC && !root->name.isEmpty())
{ // {
PackageDef *pd=0; // PackageDef *pd=0;
if ((pd=Doxygen::packageDict.find(root->name))==0) // if ((pd=Doxygen::packageDict.find(root->name))==0)
{ // {
QCString tagName; // QCString tagName;
if (root->tagInfo) // if (root->tagInfo)
{ // {
tagName=root->tagInfo->tagName; // tagName=root->tagInfo->tagName;
} // }
pd = new PackageDef(root->fileName,root->startLine,root->name,tagName); // pd = new PackageDef(root->fileName,root->startLine,root->name,tagName);
Doxygen::packageDict.inSort(root->name,pd); // Doxygen::packageDict.inSort(root->name,pd);
pd->setDocumentation(root->doc,root->docFile,root->docLine); // pd->setDocumentation(root->doc,root->docFile,root->docLine);
pd->setBriefDescription(root->brief,root->briefFile,root->briefLine); // pd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
} // }
else // else
{ // {
if (!pd->documentation() && !root->doc.isEmpty()) // if (!pd->documentation() && !root->doc.isEmpty())
{ // {
pd->setDocumentation(root->doc,root->docFile,root->docLine); // pd->setDocumentation(root->doc,root->docFile,root->docLine);
} // }
if (!pd->briefDescription() && !root->brief.isEmpty()) // if (!pd->briefDescription() && !root->brief.isEmpty())
{ // {
pd->setBriefDescription(root->brief,root->briefFile,root->briefLine); // pd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
} // }
} // }
bool ambig; // bool ambig;
FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); // FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
if (fd) // if (fd)
{ // {
fd->setPackageDef(pd); // fd->setPackageDef(pd);
} // }
} // }
EntryListIterator eli(*root->sublist); // EntryListIterator eli(*root->sublist);
Entry *e; // Entry *e;
for (;(e=eli.current());++eli) // for (;(e=eli.current());++eli)
{ // {
buildPackageList(e); // buildPackageList(e);
} // }
} //}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
...@@ -5814,20 +5837,20 @@ static void generateGroupDocs() ...@@ -5814,20 +5837,20 @@ static void generateGroupDocs()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static void generatePackageDocs() //static void generatePackageDocs()
{ //{
writePackageIndex(*outputList); // writePackageIndex(*outputList);
//
if (Doxygen::packageDict.count()>0) // if (Doxygen::packageDict.count()>0)
{ // {
PackageSDict::Iterator pdi(Doxygen::packageDict); // PackageSDict::Iterator pdi(Doxygen::packageDict);
PackageDef *pd; // PackageDef *pd;
for (pdi.toFirst();(pd=pdi.current());++pdi) // for (pdi.toFirst();(pd=pdi.current());++pdi)
{ // {
pd->writeDocumentation(*outputList); // pd->writeDocumentation(*outputList);
} // }
} // }
} //}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// generate module pages // generate module pages
...@@ -7220,6 +7243,7 @@ void parseInput() ...@@ -7220,6 +7243,7 @@ void parseInput()
msg("Building class list...\n"); msg("Building class list...\n");
buildClassList(root); buildClassList(root);
buildClassDocList(root);
findUsingDeclarations(root); findUsingDeclarations(root);
msg("Building example list...\n"); msg("Building example list...\n");
...@@ -7268,8 +7292,8 @@ void parseInput() ...@@ -7268,8 +7292,8 @@ void parseInput()
msg("Building page list...\n"); msg("Building page list...\n");
buildPageList(root); buildPageList(root);
msg("Building package list...\n"); //msg("Building package list...\n");
buildPackageList(root); //buildPackageList(root);
msg("Search for main page...\n"); msg("Search for main page...\n");
findMainPage(root); findMainPage(root);
...@@ -7425,9 +7449,9 @@ void generateOutput() ...@@ -7425,9 +7449,9 @@ void generateOutput()
msg("Generating group index...\n"); msg("Generating group index...\n");
writeGroupIndex(*outputList); writeGroupIndex(*outputList);
msg("Generating package index...\n"); //msg("Generating package index...\n");
generatePackageDocs(); //generatePackageDocs();
msg("Generating example index...\n"); msg("Generating example index...\n");
writeExampleIndex(*outputList); writeExampleIndex(*outputList);
......
...@@ -124,6 +124,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -124,6 +124,8 @@ class HtmlGenerator : public OutputGenerator
void endCodeFragment() { t << "</pre></div>"; } void endCodeFragment() { t << "</pre></div>"; }
void startPreFragment() { t << "<pre>"; } void startPreFragment() { t << "<pre>"; }
void endPreFragment() { t << "</pre>"; } void endPreFragment() { t << "</pre>"; }
void startVerbatimFragment() { t << "<div class=\"fragment\"><pre>"; }
void endVerbatimFragment() { t << "</pre></div>"; }
void writeLineNumber(const char *,const char *,const char *,int); void writeLineNumber(const char *,const char *,const char *,int);
void startCodeLine() { col=0; } void startCodeLine() { col=0; }
void endCodeLine() { codify("\n"); } void endCodeLine() { codify("\n"); }
......
...@@ -1230,48 +1230,48 @@ void writeAnnotatedClassList(OutputList &ol) ...@@ -1230,48 +1230,48 @@ void writeAnnotatedClassList(OutputList &ol)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// OBSOLETE // OBSOLETE
void writePackageList(OutputList &ol) //void writePackageList(OutputList &ol)
{ //{
bool &generateHtml = Config_getBool("GENERATE_HTML") ; // bool &generateHtml = Config_getBool("GENERATE_HTML") ;
bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); // bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); // bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
ol.startIndexList(); // ol.startIndexList();
PackageSDict::Iterator pdi(Doxygen::packageDict); // PackageSDict::Iterator pdi(Doxygen::packageDict);
PackageDef *pd; // PackageDef *pd;
for (;(pd=pdi.current());++pdi) // for (;(pd=pdi.current());++pdi)
{ // {
if (!pd->isReference()) // if (!pd->isReference())
{ // {
//ol.writeStartAnnoItem("package",pd->getOutputFileBase(),0,pd->name()); // //ol.writeStartAnnoItem("package",pd->getOutputFileBase(),0,pd->name());
ol.startIndexKey(); // ol.startIndexKey();
ol.writeObjectLink(0,pd->getOutputFileBase(),0,pd->name()); // ol.writeObjectLink(0,pd->getOutputFileBase(),0,pd->name());
ol.endIndexKey(); // ol.endIndexKey();
bool hasBrief = !pd->briefDescription().isEmpty(); // bool hasBrief = !pd->briefDescription().isEmpty();
ol.startIndexValue(hasBrief); // ol.startIndexValue(hasBrief);
if (hasBrief) // if (hasBrief)
{ // {
//ol.docify(" ("); // //ol.docify(" (");
parseDoc(ol, // parseDoc(ol,
pd->getDefFileName(),pd->getDefLine(), // pd->getDefFileName(),pd->getDefLine(),
pd->name(),0, // pd->name(),0,
abbreviate(pd->briefDescription(),pd->name())); // abbreviate(pd->briefDescription(),pd->name()));
//ol.docify(")"); // //ol.docify(")");
} // }
ol.endIndexValue(pd->getOutputFileBase(),hasBrief); // ol.endIndexValue(pd->getOutputFileBase(),hasBrief);
//
//ol.writeEndAnnoItem(pd->getOutputFileBase()); // //ol.writeEndAnnoItem(pd->getOutputFileBase());
if (hasHtmlHelp) // if (hasHtmlHelp)
{ // {
HtmlHelp::getInstance()->addContentsItem(FALSE,pd->name(),pd->getOutputFileBase()); // HtmlHelp::getInstance()->addContentsItem(FALSE,pd->name(),pd->getOutputFileBase());
} // }
if (hasFtvHelp) // if (hasFtvHelp)
{ // {
FTVHelp::getInstance()->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase(),0,pd->name()); // FTVHelp::getInstance()->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase(),0,pd->name());
} // }
} // }
} // }
ol.endIndexList(); // ol.endIndexList();
} //}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
...@@ -1496,54 +1496,54 @@ void writeAnnotatedIndex(OutputList &ol) ...@@ -1496,54 +1496,54 @@ void writeAnnotatedIndex(OutputList &ol)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void writePackageIndex(OutputList &ol) //void writePackageIndex(OutputList &ol)
{ //{
bool &generateHtml = Config_getBool("GENERATE_HTML") ; // bool &generateHtml = Config_getBool("GENERATE_HTML") ;
bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); // bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); // bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
//
if (documentedPackages==0) return; // if (documentedPackages==0) return;
//
ol.pushGeneratorState(); // ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); // ol.disable(OutputGenerator::Man);
startFile(ol,"packages",0,"Package Index"); // startFile(ol,"packages",0,"Package Index");
startTitle(ol,0); // startTitle(ol,0);
QCString title = theTranslator->trPackageList(); // QCString title = theTranslator->trPackageList();
QCString htmlHelpTitle = title; // QCString htmlHelpTitle = title;
QCString ftvHelpTitle = title; // QCString ftvHelpTitle = title;
if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); // if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
parseText(ol,title); // parseText(ol,title);
endTitle(ol,0,0); // endTitle(ol,0,0);
ol.startTextBlock(); // ol.startTextBlock();
HtmlHelp *htmlHelp = 0; // HtmlHelp *htmlHelp = 0;
FTVHelp *ftvHelp = 0; // FTVHelp *ftvHelp = 0;
if (hasHtmlHelp) // if (hasHtmlHelp)
{ // {
htmlHelp = HtmlHelp::getInstance(); // htmlHelp = HtmlHelp::getInstance();
htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"packages"); // htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"packages");
htmlHelp->incContentsDepth(); // htmlHelp->incContentsDepth();
} // }
if (hasFtvHelp) // if (hasFtvHelp)
{ // {
ftvHelp = FTVHelp::getInstance(); // ftvHelp = FTVHelp::getInstance();
ftvHelp->addContentsItem(TRUE,0,"packages",0,ftvHelpTitle); // ftvHelp->addContentsItem(TRUE,0,"packages",0,ftvHelpTitle);
ftvHelp->incContentsDepth(); // ftvHelp->incContentsDepth();
} // }
parseText(ol,theTranslator->trPackageListDescription()); // parseText(ol,theTranslator->trPackageListDescription());
ol.endTextBlock(); // ol.endTextBlock();
writePackageList(ol); // writePackageList(ol);
if (hasHtmlHelp) // if (hasHtmlHelp)
{ // {
htmlHelp->decContentsDepth(); // htmlHelp->decContentsDepth();
} // }
if (hasFtvHelp) // if (hasFtvHelp)
{ // {
ftvHelp->decContentsDepth(); // ftvHelp->decContentsDepth();
} // }
//
endFile(ol); // endFile(ol);
ol.popGeneratorState(); // ol.popGeneratorState();
} //}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
......
...@@ -122,6 +122,8 @@ class LatexGenerator : public OutputGenerator ...@@ -122,6 +122,8 @@ class LatexGenerator : public OutputGenerator
void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl; void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl;
insidePre=FALSE; insidePre=FALSE;
} }
void startVerbatimFragment() { t << endl << endl << "\\footnotesize\\begin{verbatim}"; }
void endVerbatimFragment() { t << "\\end{verbatim}\\normalsize " << endl; }
void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; } void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
void startCodeLine() { col=0; } void startCodeLine() { col=0; }
void endCodeLine() { codify("\n"); } void endCodeLine() { codify("\n"); }
......
...@@ -112,8 +112,10 @@ class ManGenerator : public OutputGenerator ...@@ -112,8 +112,10 @@ class ManGenerator : public OutputGenerator
void writeAnchor(const char *,const char *) {} void writeAnchor(const char *,const char *) {}
void startCodeFragment(); void startCodeFragment();
void endCodeFragment(); void endCodeFragment();
void startPreFragment() { startCodeFragment(); } void startPreFragment() { startCodeFragment(); }
void endPreFragment() { endCodeFragment(); } void endPreFragment() { endCodeFragment(); }
void startVerbatimFragment() { startCodeFragment(); }
void endVerbatimFragment() { endCodeFragment(); }
void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; } void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
void startCodeLine() {} void startCodeLine() {}
void endCodeLine() { codify("\n"); col=0; } void endCodeLine() { codify("\n"); col=0; }
......
...@@ -163,11 +163,19 @@ class BaseOutputDocInterface ...@@ -163,11 +163,19 @@ class BaseOutputDocInterface
/*! Starts a fragment of preformatted text. This means that /*! Starts a fragment of preformatted text. This means that
* spacing, tabs and newlines should be kept in the output * spacing, tabs and newlines should be kept in the output
*/ */
virtual void startPreFragment() = 0; virtual void startPreFragment() = 0;
/*! Ens a preformatted text fragment. */
/*! Ends a preformatted text fragment. */
virtual void endPreFragment() = 0; virtual void endPreFragment() = 0;
/*! Starts a fragment of verbatim test. This is preformatted text,
* without any special internal structure.
*/
virtual void startVerbatimFragment() = 0;
/*! Ends a verbatim text fragment. */
virtual void endVerbatimFragment() = 0;
/*! Writes a horizontal ruler to the output */ /*! Writes a horizontal ruler to the output */
virtual void writeRuler() = 0; virtual void writeRuler() = 0;
......
...@@ -210,6 +210,10 @@ class OutputList : public OutputDocInterface ...@@ -210,6 +210,10 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startPreFragment); } { forall(&OutputGenerator::startPreFragment); }
void endPreFragment() void endPreFragment()
{ forall(&OutputGenerator::endPreFragment); } { forall(&OutputGenerator::endPreFragment); }
void startVerbatimFragment()
{ forall(&OutputGenerator::startVerbatimFragment); }
void endVerbatimFragment()
{ forall(&OutputGenerator::endVerbatimFragment); }
void startCodeLine() void startCodeLine()
{ forall(&OutputGenerator::startCodeLine); } { forall(&OutputGenerator::startCodeLine); }
void endCodeLine() void endCodeLine()
......
...@@ -1518,7 +1518,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1518,7 +1518,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_defVarArgs = FALSE; g_defVarArgs = FALSE;
if ( g_defName!=g_lastGuardName ) if ( g_defName!=g_lastGuardName )
{ // define may appear in the output { // define may appear in the output
QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr; QCString tmp=(QCString)"#define "+g_defName;
outputArray(tmp.data(),tmp.length()); outputArray(tmp.data(),tmp.length());
g_quoteArg=FALSE; g_quoteArg=FALSE;
BEGIN(DefineText); BEGIN(DefineText);
...@@ -1527,10 +1527,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1527,10 +1527,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
{ {
//printf("Found a guard %s\n",yytext); //printf("Found a guard %s\n",yytext);
Define *def=0; Define *def=0;
//if (g_includeStack.isEmpty()) if (g_includeStack.isEmpty())
//{ {
// addDefine(); addDefine();
//} }
if ((def=g_fileDefineDict->find(g_defName))==0) if ((def=g_fileDefineDict->find(g_defName))==0)
{ {
g_fileDefineDict->insert(g_defName,newDefine()); g_fileDefineDict->insert(g_defName,newDefine());
...@@ -1551,6 +1551,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1551,6 +1551,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
//printf("Error: define %s is defined more than once!\n",g_defName.data()); //printf("Error: define %s is defined more than once!\n",g_defName.data());
} }
} }
QCString tmp=(QCString)"#define "+g_defName;
outputArray(tmp.data(),tmp.length());
//outputChar('\n'); //outputChar('\n');
g_lastGuardName.resize(0); g_lastGuardName.resize(0);
BEGIN(Start); BEGIN(Start);
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
* Style sheet additions by Alexander Bartolich * Style sheet additions by Alexander Bartolich
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software * granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty. * for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details. * See the GNU General Public License for more details.
* *
...@@ -57,7 +57,7 @@ static QCString documentType; ...@@ -57,7 +57,7 @@ static QCString documentType;
static QCString documentId; static QCString documentId;
static QCString keywords; static QCString keywords;
// it is undocumented as far as I know, but // it is undocumented as far as I know, but
// "."'s in a bookmarkname are converted to "_"'s // "."'s in a bookmarkname are converted to "_"'s
// when an RTF file is read in... // when an RTF file is read in...
static QCString formatBmkStr(const char *name) static QCString formatBmkStr(const char *name)
...@@ -72,11 +72,11 @@ static QCString formatBmkStr(const char *name) ...@@ -72,11 +72,11 @@ static QCString formatBmkStr(const char *name)
switch(c) switch(c)
{ {
case '.': case '.':
// fall through // fall through
case ':': case ':':
*p='_'; *p='_';
break; break;
default: default:
break; break;
} }
p++; p++;
...@@ -95,7 +95,7 @@ static QCString dateToRTFDateString() ...@@ -95,7 +95,7 @@ static QCString dateToRTFDateString()
const QDateTime &d = QDateTime::currentDateTime(); const QDateTime &d = QDateTime::currentDateTime();
QCString result; QCString result;
result.sprintf("\\yr%d\\mo%d\\dy%d\\hr%d\\min%d\\sec%d", result.sprintf("\\yr%d\\mo%d\\dy%d\\hr%d\\min%d\\sec%d",
d.date().year(), d.date().month(), d.date().day(), d.date().year(), d.date().month(), d.date().day(),
d.time().hour(),d.time().minute(),d.time().second()); d.time().hour(),d.time().minute(),d.time().second());
return result; return result;
} }
...@@ -147,159 +147,159 @@ static const struct Rtf_Style_Default Rtf_Style_Default[] = ...@@ -147,159 +147,159 @@ static const struct Rtf_Style_Default Rtf_Style_Default[] =
{ {
{ "Heading1", { "Heading1",
"\\s1\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs36\\kerning36\\cgrid ", "\\s1\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs36\\kerning36\\cgrid ",
"\\sbasedon0 \\snext0 heading 1" "\\sbasedon0 \\snext0 heading 1"
}, },
{ "Heading2", { "Heading2",
"\\s2\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs28\\kerning28\\cgrid ", "\\s2\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs28\\kerning28\\cgrid ",
"\\sbasedon0 \\snext0 heading 2" "\\sbasedon0 \\snext0 heading 2"
}, },
{ "Heading3", { "Heading3",
"\\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid ", "\\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid ",
"\\sbasedon0 \\snext0 heading 3" "\\sbasedon0 \\snext0 heading 3"
}, },
{ "Heading4", { "Heading4",
"\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ", "\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
"\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font" "\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font"
}, },
{ "Title", { "Title",
"\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid ", "\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid ",
"\\sbasedon0 \\snext15 Title" "\\sbasedon0 \\snext15 Title"
}, },
{ "SubTitle", { "SubTitle",
"\\s16\\qc\\sa60\\widctlpar\\outlinelevel1\\adjustright \\f1\\cgrid ", "\\s16\\qc\\sa60\\widctlpar\\outlinelevel1\\adjustright \\f1\\cgrid ",
"\\sbasedon0 \\snext16 Subtitle" "\\sbasedon0 \\snext16 Subtitle"
}, },
{ "BodyText", { "BodyText",
"\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid ", "\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid ",
"\\sbasedon0 \\snext17 BodyText" "\\sbasedon0 \\snext17 BodyText"
}, },
{ "DenseText", { "DenseText",
"\\s18\\widctlpar\\fs22\\cgrid ", "\\s18\\widctlpar\\fs22\\cgrid ",
"\\sbasedon0 \\snext18 DenseText" "\\sbasedon0 \\snext18 DenseText"
}, },
{ "Header", { "Header",
"\\s28\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\adjustright \\fs20\\cgrid ", "\\s28\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext28 header" "\\sbasedon0 \\snext28 header"
}, },
{ "Footer", { "Footer",
"\\s29\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\qr\\adjustright \\fs20\\cgrid ", "\\s29\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\qr\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext29 footer" "\\sbasedon0 \\snext29 footer"
}, },
{ "GroupHeader", { "GroupHeader",
"\\s30\\li360\\sa60\\sb120\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ", "\\s30\\li360\\sa60\\sb120\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
"\\sbasedon0 \\snext30 GroupHeader" "\\sbasedon0 \\snext30 GroupHeader"
}, },
{ "CodeExample0", { "CodeExample0",
"\\s40\\li0\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s40\\li0\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext41 Code Example 0" "\\sbasedon0 \\snext41 Code Example 0"
}, },
{ "CodeExample1", { "CodeExample1",
"\\s41\\li360\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s41\\li360\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext42 Code Example 1" "\\sbasedon0 \\snext42 Code Example 1"
}, },
{ "CodeExample2", { "CodeExample2",
"\\s42\\li720\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s42\\li720\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext43 Code Example 2" "\\sbasedon0 \\snext43 Code Example 2"
}, },
{ "CodeExample3", { "CodeExample3",
"\\s43\\li1080\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s43\\li1080\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext44 Code Example 3" "\\sbasedon0 \\snext44 Code Example 3"
}, },
{ "CodeExample4", { "CodeExample4",
"\\s44\\li1440\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s44\\li1440\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext45 Code Example 4" "\\sbasedon0 \\snext45 Code Example 4"
}, },
{ "CodeExample5", { "CodeExample5",
"\\s45\\li1800\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s45\\li1800\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext46 Code Example 5" "\\sbasedon0 \\snext46 Code Example 5"
}, },
{ "CodeExample6", { "CodeExample6",
"\\s46\\li2160\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s46\\li2160\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext47 Code Example 6" "\\sbasedon0 \\snext47 Code Example 6"
}, },
{ "CodeExample7", { "CodeExample7",
"\\s47\\li2520\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s47\\li2520\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext48 Code Example 7" "\\sbasedon0 \\snext48 Code Example 7"
}, },
{ "CodeExample8", { "CodeExample8",
"\\s48\\li2880\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s48\\li2880\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext49 Code Example 8" "\\sbasedon0 \\snext49 Code Example 8"
}, },
{ "CodeExample9", { "CodeExample9",
"\\s49\\li3240\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", "\\s49\\li3240\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
"\\sbasedon0 \\snext49 Code Example 9" "\\sbasedon0 \\snext49 Code Example 9"
}, },
{ "ListContinue0", { "ListContinue0",
"\\s50\\li0\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s50\\li0\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext51 List Continue 0" "\\sbasedon0 \\snext51 List Continue 0"
}, },
{ "ListContinue1", { "ListContinue1",
"\\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext52 List Continue 1" "\\sbasedon0 \\snext52 List Continue 1"
}, },
{ "ListContinue2", { "ListContinue2",
"\\s52\\li720\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s52\\li720\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext53 List Continue 2" "\\sbasedon0 \\snext53 List Continue 2"
}, },
{ "ListContinue3", { "ListContinue3",
"\\s53\\li1080\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s53\\li1080\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext54 List Continue 3" "\\sbasedon0 \\snext54 List Continue 3"
}, },
{ "ListContinue4", { "ListContinue4",
"\\s54\\li1440\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s54\\li1440\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext55 List Continue 4" "\\sbasedon0 \\snext55 List Continue 4"
}, },
{ "ListContinue5", { "ListContinue5",
"\\s55\\li1800\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s55\\li1800\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext56 List Continue 5" "\\sbasedon0 \\snext56 List Continue 5"
}, },
{ "ListContinue6", { "ListContinue6",
"\\s56\\li2160\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s56\\li2160\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext57 List Continue 6" "\\sbasedon0 \\snext57 List Continue 6"
}, },
{ "ListContinue7", { "ListContinue7",
"\\s57\\li2520\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s57\\li2520\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext58 List Continue 7" "\\sbasedon0 \\snext58 List Continue 7"
}, },
{ "ListContinue8", { "ListContinue8",
"\\s58\\li2880\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s58\\li2880\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext59 List Continue 8" "\\sbasedon0 \\snext59 List Continue 8"
}, },
{ "ListContinue9", { "ListContinue9",
"\\s59\\li3240\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ", "\\s59\\li3240\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext59 List Continue 9" "\\sbasedon0 \\snext59 List Continue 9"
}, },
{ "DescContinue0", { "DescContinue0",
"\\s60\\li0\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s60\\li0\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext61 DescContinue 0" "\\sbasedon0 \\snext61 DescContinue 0"
}, },
{ "DescContinue1", { "DescContinue1",
"\\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext62 DescContinue 1" "\\sbasedon0 \\snext62 DescContinue 1"
}, },
{ "DescContinue2", { "DescContinue2",
"\\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext63 DescContinue 2" "\\sbasedon0 \\snext63 DescContinue 2"
}, },
{ "DescContinue3", { "DescContinue3",
"\\s63\\li1080\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s63\\li1080\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext64 DescContinue 3" "\\sbasedon0 \\snext64 DescContinue 3"
}, },
{ "DescContinue4", { "DescContinue4",
"\\s64\\li1440\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s64\\li1440\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext65 DescContinue 4" "\\sbasedon0 \\snext65 DescContinue 4"
}, },
{ "DescContinue5", { "DescContinue5",
"\\s65\\li1800\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s65\\li1800\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext66 DescContinue 5" "\\sbasedon0 \\snext66 DescContinue 5"
}, },
{ "DescContinue6", { "DescContinue6",
"\\s66\\li2160\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s66\\li2160\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext67 DescContinue 6" "\\sbasedon0 \\snext67 DescContinue 6"
}, },
{ "DescContinue7", { "DescContinue7",
"\\s67\\li2520\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s67\\li2520\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext68 DescContinue 7" "\\sbasedon0 \\snext68 DescContinue 7"
}, },
{ "DescContinue8", { "DescContinue8",
"\\s68\\li2880\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s68\\li2880\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
...@@ -307,127 +307,127 @@ static const struct Rtf_Style_Default Rtf_Style_Default[] = ...@@ -307,127 +307,127 @@ static const struct Rtf_Style_Default Rtf_Style_Default[] =
}, },
{ "DescContinue9", { "DescContinue9",
"\\s69\\li3240\\widctlpar\\ql\\adjustright \\fs20\\cgrid ", "\\s69\\li3240\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext69 DescContinue 9" "\\sbasedon0 \\snext69 DescContinue 9"
}, },
{ "LatexTOC0", { "LatexTOC0",
"\\s70\\li0\\sa30\\sb30\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s70\\li0\\sa30\\sb30\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext81 LatexTOC 0" "\\sbasedon0 \\snext81 LatexTOC 0"
}, },
{ "LatexTOC1", { "LatexTOC1",
"\\s71\\li360\\sa27\\sb27\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s71\\li360\\sa27\\sb27\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext82 LatexTOC 1" "\\sbasedon0 \\snext82 LatexTOC 1"
}, },
{ "LatexTOC2", { "LatexTOC2",
"\\s72\\li720\\sa24\\sb24\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s72\\li720\\sa24\\sb24\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext83 LatexTOC 2" "\\sbasedon0 \\snext83 LatexTOC 2"
}, },
{ "LatexTOC3", { "LatexTOC3",
"\\s73\\li1080\\sa21\\sb21\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s73\\li1080\\sa21\\sb21\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext84 LatexTOC 3" "\\sbasedon0 \\snext84 LatexTOC 3"
}, },
{ "LatexTOC4", { "LatexTOC4",
"\\s74\\li1440\\sa18\\sb18\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s74\\li1440\\sa18\\sb18\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext85 LatexTOC 4" "\\sbasedon0 \\snext85 LatexTOC 4"
}, },
{ "LatexTOC5", { "LatexTOC5",
"\\s75\\li1800\\sa15\\sb15\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s75\\li1800\\sa15\\sb15\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext86 LatexTOC 5" "\\sbasedon0 \\snext86 LatexTOC 5"
}, },
{ "LatexTOC6", { "LatexTOC6",
"\\s76\\li2160\\sa12\\sb12\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s76\\li2160\\sa12\\sb12\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext87 LatexTOC 6" "\\sbasedon0 \\snext87 LatexTOC 6"
}, },
{ "LatexTOC7", { "LatexTOC7",
"\\s77\\li2520\\sa9\\sb9\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s77\\li2520\\sa9\\sb9\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext88 LatexTOC 7" "\\sbasedon0 \\snext88 LatexTOC 7"
}, },
{ "LatexTOC8", { "LatexTOC8",
"\\s78\\li2880\\sa6\\sb6\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s78\\li2880\\sa6\\sb6\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext89 LatexTOC 8" "\\sbasedon0 \\snext89 LatexTOC 8"
}, },
{ "LatexTOC9", { "LatexTOC9",
"\\s79\\li3240\\sa3\\sb3\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ", "\\s79\\li3240\\sa3\\sb3\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext89 LatexTOC 9" "\\sbasedon0 \\snext89 LatexTOC 9"
}, },
{ "ListBullet0", { "ListBullet0",
"\\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid ", "\\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext81 \\sautoupd List Bullet 0" "\\sbasedon0 \\snext81 \\sautoupd List Bullet 0"
}, },
{ "ListBullet1", { "ListBullet1",
"\\s81\\fi-360\\li720\\widctlpar\\jclisttab\\tx720{\\*\\pn \\pnlvlbody\\ilvl0\\ls2\\pnrnot0\\pndec }\\ls2\\adjustright \\fs20\\cgrid ", "\\s81\\fi-360\\li720\\widctlpar\\jclisttab\\tx720{\\*\\pn \\pnlvlbody\\ilvl0\\ls2\\pnrnot0\\pndec }\\ls2\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext82 \\sautoupd List Bullet 1" "\\sbasedon0 \\snext82 \\sautoupd List Bullet 1"
}, },
{ "ListBullet2", { "ListBullet2",
"\\s82\\fi-360\\li1080\\widctlpar\\jclisttab\\tx1080{\\*\\pn \\pnlvlbody\\ilvl0\\ls3\\pnrnot0\\pndec }\\ls3\\adjustright \\fs20\\cgrid ", "\\s82\\fi-360\\li1080\\widctlpar\\jclisttab\\tx1080{\\*\\pn \\pnlvlbody\\ilvl0\\ls3\\pnrnot0\\pndec }\\ls3\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext83 \\sautoupd List Bullet 2" "\\sbasedon0 \\snext83 \\sautoupd List Bullet 2"
}, },
{ "ListBullet3", { "ListBullet3",
"\\s83\\fi-360\\li1440\\widctlpar\\jclisttab\\tx1440{\\*\\pn \\pnlvlbody\\ilvl0\\ls4\\pnrnot0\\pndec }\\ls4\\adjustright \\fs20\\cgrid ", "\\s83\\fi-360\\li1440\\widctlpar\\jclisttab\\tx1440{\\*\\pn \\pnlvlbody\\ilvl0\\ls4\\pnrnot0\\pndec }\\ls4\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext84 \\sautoupd List Bullet 3" "\\sbasedon0 \\snext84 \\sautoupd List Bullet 3"
}, },
{ "ListBullet4", { "ListBullet4",
"\\s84\\fi-360\\li1800\\widctlpar\\jclisttab\\tx1800{\\*\\pn \\pnlvlbody\\ilvl0\\ls5\\pnrnot0\\pndec }\\ls5\\adjustright \\fs20\\cgrid ", "\\s84\\fi-360\\li1800\\widctlpar\\jclisttab\\tx1800{\\*\\pn \\pnlvlbody\\ilvl0\\ls5\\pnrnot0\\pndec }\\ls5\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext85 \\sautoupd List Bullet 4" "\\sbasedon0 \\snext85 \\sautoupd List Bullet 4"
}, },
{ "ListBullet5", { "ListBullet5",
"\\s85\\fi-360\\li2160\\widctlpar\\jclisttab\\tx2160{\\*\\pn \\pnlvlbody\\ilvl0\\ls6\\pnrnot0\\pndec }\\ls6\\adjustright \\fs20\\cgrid ", "\\s85\\fi-360\\li2160\\widctlpar\\jclisttab\\tx2160{\\*\\pn \\pnlvlbody\\ilvl0\\ls6\\pnrnot0\\pndec }\\ls6\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext86 \\sautoupd List Bullet 5" "\\sbasedon0 \\snext86 \\sautoupd List Bullet 5"
}, },
{ "ListBullet6", { "ListBullet6",
"\\s86\\fi-360\\li2520\\widctlpar\\jclisttab\\tx2520{\\*\\pn \\pnlvlbody\\ilvl0\\ls7\\pnrnot0\\pndec }\\ls7\\adjustright \\fs20\\cgrid ", "\\s86\\fi-360\\li2520\\widctlpar\\jclisttab\\tx2520{\\*\\pn \\pnlvlbody\\ilvl0\\ls7\\pnrnot0\\pndec }\\ls7\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext87 \\sautoupd List Bullet 6" "\\sbasedon0 \\snext87 \\sautoupd List Bullet 6"
}, },
{ "ListBullet7", { "ListBullet7",
"\\s87\\fi-360\\li2880\\widctlpar\\jclisttab\\tx2880{\\*\\pn \\pnlvlbody\\ilvl0\\ls8\\pnrnot0\\pndec }\\ls8\\adjustright \\fs20\\cgrid ", "\\s87\\fi-360\\li2880\\widctlpar\\jclisttab\\tx2880{\\*\\pn \\pnlvlbody\\ilvl0\\ls8\\pnrnot0\\pndec }\\ls8\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext88 \\sautoupd List Bullet 7" "\\sbasedon0 \\snext88 \\sautoupd List Bullet 7"
}, },
{ "ListBullet8", { "ListBullet8",
"\\s88\\fi-360\\li3240\\widctlpar\\jclisttab\\tx3240{\\*\\pn \\pnlvlbody\\ilvl0\\ls9\\pnrnot0\\pndec }\\ls9\\adjustright \\fs20\\cgrid ", "\\s88\\fi-360\\li3240\\widctlpar\\jclisttab\\tx3240{\\*\\pn \\pnlvlbody\\ilvl0\\ls9\\pnrnot0\\pndec }\\ls9\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext89 \\sautoupd List Bullet 8" "\\sbasedon0 \\snext89 \\sautoupd List Bullet 8"
}, },
{ "ListBullet9", { "ListBullet9",
"\\s89\\fi-360\\li3600\\widctlpar\\jclisttab\\tx3600{\\*\\pn \\pnlvlbody\\ilvl0\\ls10\\pnrnot0\\pndec }\\ls10\\adjustright \\fs20\\cgrid ", "\\s89\\fi-360\\li3600\\widctlpar\\jclisttab\\tx3600{\\*\\pn \\pnlvlbody\\ilvl0\\ls10\\pnrnot0\\pndec }\\ls10\\adjustright \\fs20\\cgrid ",
"\\sbasedon0 \\snext89 \\sautoupd List Bullet 9" "\\sbasedon0 \\snext89 \\sautoupd List Bullet 9"
}, },
{ "ListEnum0", { "ListEnum0",
"\\s90\\fi-360\\li360\\widctlpar\\fs20\\cgrid ", "\\s90\\fi-360\\li360\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext91 \\sautoupd List Enum 0" "\\sbasedon0 \\snext91 \\sautoupd List Enum 0"
}, },
{ "ListEnum1", { "ListEnum1",
"\\s91\\fi-360\\li720\\widctlpar\\fs20\\cgrid ", "\\s91\\fi-360\\li720\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext92 \\sautoupd List Enum 1" "\\sbasedon0 \\snext92 \\sautoupd List Enum 1"
}, },
{ "ListEnum2", { "ListEnum2",
"\\s92\\fi-360\\li1080\\widctlpar\\fs20\\cgrid ", "\\s92\\fi-360\\li1080\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext93 \\sautoupd List Enum 2" "\\sbasedon0 \\snext93 \\sautoupd List Enum 2"
}, },
{ "ListEnum3", { "ListEnum3",
"\\s93\\fi-360\\li1440\\widctlpar\\fs20\\cgrid ", "\\s93\\fi-360\\li1440\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext94 \\sautoupd List Enum 3" "\\sbasedon0 \\snext94 \\sautoupd List Enum 3"
}, },
{ "ListEnum4", { "ListEnum4",
"\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid ", "\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext95 \\sautoupd List Enum 4" "\\sbasedon0 \\snext95 \\sautoupd List Enum 4"
}, },
{ "ListEnum5", { "ListEnum5",
"\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid ", "\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext96 \\sautoupd List Enum 5" "\\sbasedon0 \\snext96 \\sautoupd List Enum 5"
}, },
{ "ListEnum6", { "ListEnum6",
"\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid ", "\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext96 \\sautoupd List Enum 5" "\\sbasedon0 \\snext96 \\sautoupd List Enum 5"
}, },
{ "ListEnum7", { "ListEnum7",
"\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid ", "\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext98 \\sautoupd List Enum 7" "\\sbasedon0 \\snext98 \\sautoupd List Enum 7"
}, },
{ "ListEnum8", { "ListEnum8",
"\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid ", "\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext99 \\sautoupd List Enum 8" "\\sbasedon0 \\snext99 \\sautoupd List Enum 8"
}, },
{ "ListEnum9", { "ListEnum9",
"\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid ", "\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid ",
"\\sbasedon0 \\snext99 \\sautoupd List Enum 9" "\\sbasedon0 \\snext99 \\sautoupd List Enum 9"
}, },
{ 0, { 0,
0, 0,
...@@ -441,7 +441,7 @@ void RTFGenerator::writeStyleSheetFile(QFile &file) ...@@ -441,7 +441,7 @@ void RTFGenerator::writeStyleSheetFile(QFile &file)
t << "# Generated by doxygen " << versionString << "\n\n"; t << "# Generated by doxygen " << versionString << "\n\n";
t << "# This file describes styles used for generating RTF output.\n"; t << "# This file describes styles used for generating RTF output.\n";
t << "# All text after a hash (#) is considered a comment and will be ignored.\n"; t << "# All text after a hash (#) is considered a comment and will be ignored.\n";
t << "# Remove a hash to activate a line.\n\n"; t << "# Remove a hash to activate a line.\n\n";
int i; int i;
for (i=0;Rtf_Style_Default[i].reference!=0;i++) for (i=0;Rtf_Style_Default[i].reference!=0;i++)
...@@ -497,7 +497,7 @@ bool StyleData::setStyle(const char* s, const char* styleName) ...@@ -497,7 +497,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
{ {
static const QRegExp subgroup("^{[^}]*}\\s*"); static const QRegExp subgroup("^{[^}]*}\\s*");
static const QRegExp any_clause("^\\\\[a-z][a-z0-9-]*\\s*"); static const QRegExp any_clause("^\\\\[a-z][a-z0-9-]*\\s*");
int len; int len;
int start = s_clause.match(s, 0, &len); int start = s_clause.match(s, 0, &len);
if (start < 0) if (start < 0)
...@@ -578,7 +578,7 @@ static void loadStylesheet(const char *name, QDict<StyleData>& dict) ...@@ -578,7 +578,7 @@ static void loadStylesheet(const char *name, QDict<StyleData>& dict)
int sepStart = separator.match(s,0,&sepLength); int sepStart = separator.match(s,0,&sepLength);
if (sepStart<=0) // no valid assignment statement if (sepStart<=0) // no valid assignment statement
{ {
warn(name,lineNr,"Assignment of style sheet name expected!\n"); warn(name,lineNr,"Assignment of style sheet name expected!\n");
continue; continue;
} }
QCString key=s.left(sepStart); QCString key=s.left(sepStart);
...@@ -608,7 +608,7 @@ void RTFGenerator::writeExtensionsFile(QFile &file) ...@@ -608,7 +608,7 @@ void RTFGenerator::writeExtensionsFile(QFile &file)
t << "# Generated by doxygen " << versionString << "\n\n"; t << "# Generated by doxygen " << versionString << "\n\n";
t << "# This file describes extensions used for generating RTF output.\n"; t << "# This file describes extensions used for generating RTF output.\n";
t << "# All text after a hash (#) is considered a comment and will be ignored.\n"; t << "# All text after a hash (#) is considered a comment and will be ignored.\n";
t << "# Remove a hash to activate a line.\n\n"; t << "# Remove a hash to activate a line.\n\n";
t << "# Overrides the project title.\n"; t << "# Overrides the project title.\n";
...@@ -686,7 +686,7 @@ static void loadExtensions(const char *name) ...@@ -686,7 +686,7 @@ static void loadExtensions(const char *name)
QCString key=s.left(sepStart); QCString key=s.left(sepStart);
QCString data=s.data() + sepStart + sepLength; QCString data=s.data() + sepStart + sepLength;
if (key == "Title") title = data.data(); if (key == "Title") title = data.data();
if (key == "Subject") subject = data.data(); if (key == "Subject") subject = data.data();
if (key == "Comments") comments = data.data(); if (key == "Comments") comments = data.data();
if (key == "Company") company = data.data(); if (key == "Company") company = data.data();
...@@ -711,7 +711,7 @@ void RTFGenerator::init() ...@@ -711,7 +711,7 @@ void RTFGenerator::init()
exit(1); exit(1);
} }
Rtf_Style.setAutoDelete(TRUE); Rtf_Style.setAutoDelete(TRUE);
// first duplicate strings of Rtf_Style_Default // first duplicate strings of Rtf_Style_Default
const struct Rtf_Style_Default* def = Rtf_Style_Default; const struct Rtf_Style_Default* def = Rtf_Style_Default;
while(def->reference != 0) while(def->reference != 0)
...@@ -794,20 +794,20 @@ void RTFGenerator::beginRTFDocument() ...@@ -794,20 +794,20 @@ void RTFGenerator::beginRTFDocument()
for(; (style = iter.current()); ++iter) for(; (style = iter.current()); ++iter)
{ {
unsigned index = style->index; unsigned index = style->index;
unsigned size = array.size(); unsigned size = array.size();
if (index >= size) if (index >= size)
{ {
// +1 to add at least one element, then align up to multiple of 8 // +1 to add at least one element, then align up to multiple of 8
array.resize((index + 1 + 7) & ~7); array.resize((index + 1 + 7) & ~7);
array.fill(0, size); array.fill(0, size);
ASSERT(index < array.size()); ASSERT(index < array.size());
} }
if (array.at(index) != 0) if (array.at(index) != 0)
{ {
QCString key(convertToQCString(iter.currentKey())); QCString key(convertToQCString(iter.currentKey()));
msg("Style '%s' redefines \\s%d.\n", key.data(), index); msg("Style '%s' redefines \\s%d.\n", key.data(), index);
} }
array.at(index) = style; array.at(index) = style;
} }
// write array elements // write array elements
...@@ -834,7 +834,7 @@ void RTFGenerator::beginRTFChapter() ...@@ -834,7 +834,7 @@ void RTFGenerator::beginRTFChapter()
// if we are compact, no extra page breaks... // if we are compact, no extra page breaks...
if (Config_getBool("COMPACT_RTF")) if (Config_getBool("COMPACT_RTF"))
{ {
// t <<"\\sect\\sectd\\sbknone\n"; // t <<"\\sect\\sectd\\sbknone\n";
t <<"\\sect\\sbknone\n"; t <<"\\sect\\sbknone\n";
RtfwriteRuler_thick(); RtfwriteRuler_thick();
} }
...@@ -854,7 +854,7 @@ void RTFGenerator::beginRTFSection() ...@@ -854,7 +854,7 @@ void RTFGenerator::beginRTFSection()
// if we are compact, no extra page breaks... // if we are compact, no extra page breaks...
if (Config_getBool("COMPACT_RTF")) if (Config_getBool("COMPACT_RTF"))
{ {
// t <<"\\sect\\sectd\\sbknone\n"; // t <<"\\sect\\sectd\\sbknone\n";
t <<"\\sect\\sbknone\n"; t <<"\\sect\\sbknone\n";
RtfwriteRuler_emboss(); RtfwriteRuler_emboss();
} }
...@@ -888,7 +888,7 @@ void RTFGenerator::startProjectNumber() ...@@ -888,7 +888,7 @@ void RTFGenerator::startProjectNumber()
t << " "; t << " ";
} }
void RTFGenerator::endProjectNumber() void RTFGenerator::endProjectNumber()
{ {
} }
...@@ -912,7 +912,7 @@ void RTFGenerator::startIndexSection(IndexSections is) ...@@ -912,7 +912,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
if (subject) t << "{\\subject " << subject << "}\n"; if (subject) t << "{\\subject " << subject << "}\n";
if (comments) t << "{\\comment " << comments << "}\n"; if (comments) t << "{\\comment " << comments << "}\n";
if (company) t << "{\\company " << company << "}\n"; if (company) t << "{\\company " << company << "}\n";
if (author) t << "{\\author " << author << "}\n"; if (author) t << "{\\author " << author << "}\n";
if (manager) t << "{\\manager " << manager << "}\n"; if (manager) t << "{\\manager " << manager << "}\n";
if (documentType) t << "{\\category " << documentType << "}\n"; if (documentType) t << "{\\category " << documentType << "}\n";
if (keywords) t << "{\\keywords " << keywords << "}\n"; if (keywords) t << "{\\keywords " << keywords << "}\n";
...@@ -932,7 +932,7 @@ void RTFGenerator::startIndexSection(IndexSections is) ...@@ -932,7 +932,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
break; break;
case isNamespaceIndex: case isNamespaceIndex:
//Namespace Index //Namespace Index
beginRTFChapter(); beginRTFChapter();
break; break;
case isClassHierarchyIndex: case isClassHierarchyIndex:
//Hierarchical Index //Hierarchical Index
...@@ -995,7 +995,7 @@ void RTFGenerator::startIndexSection(IndexSections is) ...@@ -995,7 +995,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
beginRTFChapter(); beginRTFChapter();
found=TRUE; found=TRUE;
} }
} }
} }
break; break;
case isClassDocumentation: case isClassDocumentation:
...@@ -1028,7 +1028,7 @@ void RTFGenerator::startIndexSection(IndexSections is) ...@@ -1028,7 +1028,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
{ {
if (isFirst) if (isFirst)
{ {
beginRTFChapter(); beginRTFChapter();
isFirst=FALSE; isFirst=FALSE;
break; break;
} }
...@@ -1107,7 +1107,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1107,7 +1107,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << documentId << "\\par\n"; t << documentId << "\\par\n";
} }
t << "\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\n"; t << "\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\n";
t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to subtitle style t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to subtitle style
t << "{\\field\\fldedit {\\*\\fldinst AUTHOR \\\\*MERGEFORMAT}{\\fldrslt AUTHOR}}\\par" << endl; t << "{\\field\\fldedit {\\*\\fldinst AUTHOR \\\\*MERGEFORMAT}{\\fldrslt AUTHOR}}\\par" << endl;
t << "Version " << Config_getString("PROJECT_NUMBER") << "\\par"; t << "Version " << Config_getString("PROJECT_NUMBER") << "\\par";
...@@ -1257,7 +1257,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1257,7 +1257,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \""; t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
t << cd->getOutputFileBase(); t << cd->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
} }
} }
} }
break; break;
...@@ -1345,7 +1345,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1345,7 +1345,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
} }
break; break;
case isEndIndex: case isEndIndex:
beginRTFChapter(); beginRTFChapter();
t << Rtf_Style["Heading1"]->reference; t << Rtf_Style["Heading1"]->reference;
t << theTranslator->trRTFGeneralIndex() << "\\par "<< endl; t << theTranslator->trRTFGeneralIndex() << "\\par "<< endl;
t << Rtf_Style_Reset << endl; t << Rtf_Style_Reset << endl;
...@@ -1385,8 +1385,8 @@ void RTFGenerator::writeString(const char *text) ...@@ -1385,8 +1385,8 @@ void RTFGenerator::writeString(const char *text)
t << text; t << text;
} }
void RTFGenerator::startIndexList() void RTFGenerator::startIndexList()
{ {
DBG_RTF(t << "{\\comment (startIndexList)}" << endl) DBG_RTF(t << "{\\comment (startIndexList)}" << endl)
t << "{" << endl; t << "{" << endl;
incrementIndentLevel(); incrementIndentLevel();
...@@ -1396,7 +1396,7 @@ void RTFGenerator::startIndexList() ...@@ -1396,7 +1396,7 @@ void RTFGenerator::startIndexList()
} }
void RTFGenerator::endIndexList() void RTFGenerator::endIndexList()
{ {
DBG_RTF(t << "{\\comment (endIndexList)}" << endl) DBG_RTF(t << "{\\comment (endIndexList)}" << endl)
newParagraph(); newParagraph();
t << "}"; t << "}";
...@@ -1405,8 +1405,8 @@ void RTFGenerator::endIndexList() ...@@ -1405,8 +1405,8 @@ void RTFGenerator::endIndexList()
} }
/*! start bullet list */ /*! start bullet list */
void RTFGenerator::startItemList() void RTFGenerator::startItemList()
{ {
DBG_RTF(t << "{\\comment (startItemList level=" << m_listLevel << ") }" << endl) DBG_RTF(t << "{\\comment (startItemList level=" << m_listLevel << ") }" << endl)
t << "{"; t << "{";
incrementIndentLevel(); incrementIndentLevel();
...@@ -1414,8 +1414,8 @@ void RTFGenerator::startItemList() ...@@ -1414,8 +1414,8 @@ void RTFGenerator::startItemList()
} }
/*! end bullet list */ /*! end bullet list */
void RTFGenerator::endItemList() void RTFGenerator::endItemList()
{ {
newParagraph(); newParagraph();
DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl) DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl)
t << "}"; t << "}";
...@@ -1425,7 +1425,7 @@ void RTFGenerator::endItemList() ...@@ -1425,7 +1425,7 @@ void RTFGenerator::endItemList()
/*! start enumeration list */ /*! start enumeration list */
void RTFGenerator::startEnumList() // starts an enumeration list void RTFGenerator::startEnumList() // starts an enumeration list
{ {
DBG_RTF(t << "{\\comment (startEnumList)}" << endl) DBG_RTF(t << "{\\comment (startEnumList)}" << endl)
t << "{" << endl; t << "{" << endl;
incrementIndentLevel(); incrementIndentLevel();
...@@ -1439,7 +1439,7 @@ void RTFGenerator::startEnumList() // starts an enumeration list ...@@ -1439,7 +1439,7 @@ void RTFGenerator::startEnumList() // starts an enumeration list
/*! end enumeration list */ /*! end enumeration list */
void RTFGenerator::endEnumList() void RTFGenerator::endEnumList()
{ {
newParagraph(); newParagraph();
DBG_RTF(t << "{\\comment (endEnumList)}" << endl) DBG_RTF(t << "{\\comment (endEnumList)}" << endl)
t << "}"; t << "}";
...@@ -1480,7 +1480,7 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn, ...@@ -1480,7 +1480,7 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn,
} }
else else
{ {
t << endl; t << endl;
} }
newParagraph(); newParagraph();
m_omitParagraph=TRUE; m_omitParagraph=TRUE;
...@@ -1501,7 +1501,7 @@ void RTFGenerator::startHtmlLink(const char *url) ...@@ -1501,7 +1501,7 @@ void RTFGenerator::startHtmlLink(const char *url)
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \""; t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << url; t << url;
t << "\" }{}"; t << "\" }{}";
t << "}{\\fldrslt {\\cs37\\ul\\cf2 "; t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
} }
else else
{ {
...@@ -1539,7 +1539,7 @@ void RTFGenerator::writeStartAnnoItem(const char *,const char *f, ...@@ -1539,7 +1539,7 @@ void RTFGenerator::writeStartAnnoItem(const char *,const char *f,
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \""; t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(f); t << formatBmkStr(f);
t << "\" }{}"; t << "\" }{}";
t << "}{\\fldrslt {\\cs37\\ul\\cf2 "; t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
docify(name); docify(name);
...@@ -1547,7 +1547,7 @@ void RTFGenerator::writeStartAnnoItem(const char *,const char *f, ...@@ -1547,7 +1547,7 @@ void RTFGenerator::writeStartAnnoItem(const char *,const char *f,
} }
else else
{ {
docify(name); docify(name);
} }
t << "} "; t << "} ";
} }
...@@ -1563,13 +1563,13 @@ void RTFGenerator::writeEndAnnoItem(const char *name) ...@@ -1563,13 +1563,13 @@ void RTFGenerator::writeEndAnnoItem(const char *name)
} }
else else
{ {
t << endl; t << endl;
} }
newParagraph(); newParagraph();
} }
void RTFGenerator::startIndexKey() void RTFGenerator::startIndexKey()
{ {
DBG_RTF(t << "{\\comment (startIndexKey)}" << endl) DBG_RTF(t << "{\\comment (startIndexKey)}" << endl)
t << "{\\b "; t << "{\\b ";
} }
...@@ -1578,8 +1578,8 @@ void RTFGenerator::endIndexKey() ...@@ -1578,8 +1578,8 @@ void RTFGenerator::endIndexKey()
{ {
} }
void RTFGenerator::startIndexValue(bool hasBrief) void RTFGenerator::startIndexValue(bool hasBrief)
{ {
t << " "; t << " ";
if (hasBrief) t << "("; if (hasBrief) t << "(";
} }
...@@ -1597,13 +1597,13 @@ void RTFGenerator::endIndexValue(const char *name,bool hasBrief) ...@@ -1597,13 +1597,13 @@ void RTFGenerator::endIndexValue(const char *name,bool hasBrief)
} }
else else
{ {
t << endl; t << endl;
} }
newParagraph(); newParagraph();
} }
void RTFGenerator::startSubsection() void RTFGenerator::startSubsection()
{ {
//beginRTFSubSection(); //beginRTFSubSection();
t <<"\n"; t <<"\n";
DBG_RTF(t << "{\\comment Begin SubSection}\n") DBG_RTF(t << "{\\comment Begin SubSection}\n")
...@@ -1611,13 +1611,13 @@ void RTFGenerator::startSubsection() ...@@ -1611,13 +1611,13 @@ void RTFGenerator::startSubsection()
t << Rtf_Style["Heading3"]->reference << "\n"; t << Rtf_Style["Heading3"]->reference << "\n";
} }
void RTFGenerator::endSubsection() void RTFGenerator::endSubsection()
{ {
newParagraph(); newParagraph();
t << Rtf_Style_Reset << endl; t << Rtf_Style_Reset << endl;
} }
void RTFGenerator::startSubsubsection() void RTFGenerator::startSubsubsection()
{ {
//beginRTFSubSubSection(); //beginRTFSubSubSection();
t << "\n"; t << "\n";
...@@ -1626,11 +1626,11 @@ void RTFGenerator::startSubsubsection() ...@@ -1626,11 +1626,11 @@ void RTFGenerator::startSubsubsection()
t << Rtf_Style_Reset << Rtf_Style["Heading4"]->reference << "\n"; t << Rtf_Style_Reset << Rtf_Style["Heading4"]->reference << "\n";
} }
void RTFGenerator::endSubsubsection() void RTFGenerator::endSubsubsection()
{ {
newParagraph(); newParagraph();
t << "}" << endl; t << "}" << endl;
} }
//void RTFGenerator::writeClassLink(const char *,const char *, //void RTFGenerator::writeClassLink(const char *,const char *,
...@@ -1638,7 +1638,7 @@ void RTFGenerator::endSubsubsection() ...@@ -1638,7 +1638,7 @@ void RTFGenerator::endSubsubsection()
//{ //{
// t << "{\\bf "; // t << "{\\bf ";
// docify(name); // docify(name);
// t << "}"; // t << "}";
//} //}
void RTFGenerator::startTextLink(const char *f,const char *anchor) void RTFGenerator::startTextLink(const char *f,const char *anchor)
...@@ -1659,7 +1659,7 @@ void RTFGenerator::startTextLink(const char *f,const char *anchor) ...@@ -1659,7 +1659,7 @@ void RTFGenerator::startTextLink(const char *f,const char *anchor)
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \""; t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(ref); t << formatBmkStr(ref);
t << "\" }{}"; t << "\" }{}";
t << "}{\\fldrslt {\\cs37\\ul\\cf2 "; t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
} }
} }
...@@ -1690,7 +1690,7 @@ void RTFGenerator::writeObjectLink(const char *ref, const char *f, ...@@ -1690,7 +1690,7 @@ void RTFGenerator::writeObjectLink(const char *ref, const char *f,
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \""; t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(refName); t << formatBmkStr(refName);
t << "\" }{}"; t << "\" }{}";
t << "}{\\fldrslt {\\cs37\\ul\\cf2 "; t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
docify(text); docify(text);
...@@ -1701,7 +1701,7 @@ void RTFGenerator::writeObjectLink(const char *ref, const char *f, ...@@ -1701,7 +1701,7 @@ void RTFGenerator::writeObjectLink(const char *ref, const char *f,
startBold(); startBold();
docify(text); docify(text);
endBold(); endBold();
} }
} }
void RTFGenerator::startPageRef() void RTFGenerator::startPageRef()
...@@ -1746,7 +1746,7 @@ void RTFGenerator::writeCodeLink(const char *ref,const char *f, ...@@ -1746,7 +1746,7 @@ void RTFGenerator::writeCodeLink(const char *ref,const char *f,
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \""; t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(refName); t << formatBmkStr(refName);
t << "\" }{}"; t << "\" }{}";
t << "}{\\fldrslt {\\cs37\\ul\\cf2 "; t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
codify(name); codify(name);
...@@ -1762,7 +1762,7 @@ void RTFGenerator::startTitleHead(const char *) ...@@ -1762,7 +1762,7 @@ void RTFGenerator::startTitleHead(const char *)
{ {
DBG_RTF(t <<"{\\comment startTitleHead}" << endl) DBG_RTF(t <<"{\\comment startTitleHead}" << endl)
// beginRTFSection(); // beginRTFSection();
t << Rtf_Style_Reset << Rtf_Style["Heading2"]->reference << endl; t << Rtf_Style_Reset << Rtf_Style["Heading2"]->reference << endl;
} }
...@@ -1836,7 +1836,7 @@ void RTFGenerator::startMemberDoc(const char *clname, ...@@ -1836,7 +1836,7 @@ void RTFGenerator::startMemberDoc(const char *clname,
t << endl; t << endl;
} }
void RTFGenerator::endMemberDoc() void RTFGenerator::endMemberDoc()
{ {
DBG_RTF(t << "{\\comment endMemberDoc}" << endl) DBG_RTF(t << "{\\comment endMemberDoc}" << endl)
t << "}" << endl; t << "}" << endl;
...@@ -1864,7 +1864,7 @@ void RTFGenerator::endDoxyAnchor(const char *fName,const char *anchor) ...@@ -1864,7 +1864,7 @@ void RTFGenerator::endDoxyAnchor(const char *fName,const char *anchor)
ref+='_'; ref+='_';
ref+=anchor; ref+=anchor;
} }
t << "{\\bkmkstart "; t << "{\\bkmkstart ";
t << formatBmkStr(ref); t << formatBmkStr(ref);
t << "}" << endl; t << "}" << endl;
...@@ -1911,36 +1911,36 @@ void RTFGenerator::endIndent() ...@@ -1911,36 +1911,36 @@ void RTFGenerator::endIndent()
} }
void RTFGenerator::startDescription() void RTFGenerator::startDescription()
{ {
DBG_RTF(t << "{\\comment (startDescription)}" << endl) DBG_RTF(t << "{\\comment (startDescription)}" << endl)
t << "{" << endl; t << "{" << endl;
t << Rtf_Style_Reset << Rtf_CList_DepthStyle(); t << Rtf_Style_Reset << Rtf_CList_DepthStyle();
} }
void RTFGenerator::endDescription() void RTFGenerator::endDescription()
{ {
DBG_RTF(t << "{\\comment (endDescription)}" << endl) DBG_RTF(t << "{\\comment (endDescription)}" << endl)
t << "}"; t << "}";
newParagraph(); newParagraph();
} }
void RTFGenerator::startDescItem() void RTFGenerator::startDescItem()
{ {
newParagraph(); newParagraph();
DBG_RTF(t << "{\\comment (startDescItem)}" << endl) DBG_RTF(t << "{\\comment (startDescItem)}" << endl)
t << "{\\b "; t << "{\\b ";
} }
void RTFGenerator::endDescItem() void RTFGenerator::endDescItem()
{ {
DBG_RTF(t << "{\\comment (endDescItem)}" << endl) DBG_RTF(t << "{\\comment (endDescItem)}" << endl)
t << "}" << endl; t << "}" << endl;
newParagraph(); newParagraph();
} }
void RTFGenerator::startMemberDescription() void RTFGenerator::startMemberDescription()
{ {
DBG_RTF(t << "{\\comment (startMemberDescription)}" << endl) DBG_RTF(t << "{\\comment (startMemberDescription)}" << endl)
t << "{" << endl; t << "{" << endl;
incrementIndentLevel(); incrementIndentLevel();
...@@ -1949,7 +1949,7 @@ void RTFGenerator::startMemberDescription() ...@@ -1949,7 +1949,7 @@ void RTFGenerator::startMemberDescription()
} }
void RTFGenerator::endMemberDescription() void RTFGenerator::endMemberDescription()
{ {
DBG_RTF(t << "{\\comment (endMemberDescription)}" << endl) DBG_RTF(t << "{\\comment (endMemberDescription)}" << endl)
endEmphasis(); endEmphasis();
newParagraph(); newParagraph();
...@@ -1957,8 +1957,8 @@ void RTFGenerator::endMemberDescription() ...@@ -1957,8 +1957,8 @@ void RTFGenerator::endMemberDescription()
t << "\\par}" << endl; t << "\\par}" << endl;
} }
void RTFGenerator::startDescList(SectionTypes) void RTFGenerator::startDescList(SectionTypes)
{ {
DBG_RTF(t << "{\\comment (startDescList)}" << endl) DBG_RTF(t << "{\\comment (startDescList)}" << endl)
t << "{"; // ends at endDescList t << "{"; // ends at endDescList
t << "{"; // ends at endDescTitle t << "{"; // ends at endDescTitle
...@@ -1966,8 +1966,8 @@ void RTFGenerator::startDescList(SectionTypes) ...@@ -1966,8 +1966,8 @@ void RTFGenerator::startDescList(SectionTypes)
newParagraph(); newParagraph();
} }
void RTFGenerator::endDescTitle() void RTFGenerator::endDescTitle()
{ {
DBG_RTF(t << "{\\comment (endDescTitle) }" << endl) DBG_RTF(t << "{\\comment (endDescTitle) }" << endl)
endBold(); endBold();
t << "}"; t << "}";
...@@ -1981,7 +1981,7 @@ void RTFGenerator::writeDescItem() ...@@ -1981,7 +1981,7 @@ void RTFGenerator::writeDescItem()
DBG_RTF(t << "{\\comment (writeDescItem) }" << endl) DBG_RTF(t << "{\\comment (writeDescItem) }" << endl)
} }
void RTFGenerator::endDescList() void RTFGenerator::endDescList()
{ {
DBG_RTF(t << "{\\comment (endDescList)}" << endl) DBG_RTF(t << "{\\comment (endDescList)}" << endl)
newParagraph(); newParagraph();
...@@ -1990,8 +1990,8 @@ void RTFGenerator::endDescList() ...@@ -1990,8 +1990,8 @@ void RTFGenerator::endDescList()
t << "}"; t << "}";
} }
void RTFGenerator::startParamList(ParamListTypes) void RTFGenerator::startParamList(ParamListTypes)
{ {
DBG_RTF(t << "{\\comment (startParamList)}" << endl) DBG_RTF(t << "{\\comment (startParamList)}" << endl)
t << "{"; // ends at endParamList t << "{"; // ends at endParamList
t << "{"; // ends at endDescTitle t << "{"; // ends at endDescTitle
...@@ -1999,7 +1999,7 @@ void RTFGenerator::startParamList(ParamListTypes) ...@@ -1999,7 +1999,7 @@ void RTFGenerator::startParamList(ParamListTypes)
newParagraph(); newParagraph();
} }
void RTFGenerator::endParamList() void RTFGenerator::endParamList()
{ {
DBG_RTF(t << "{\\comment (endParamList)}" << endl) DBG_RTF(t << "{\\comment (endParamList)}" << endl)
newParagraph(); newParagraph();
...@@ -2076,6 +2076,14 @@ void RTFGenerator::writeSectionRefItem(const char *,const char *lab, ...@@ -2076,6 +2076,14 @@ void RTFGenerator::writeSectionRefItem(const char *,const char *lab,
// writeSectionRef(name,lab,title); // writeSectionRef(name,lab,title);
//} //}
char* RTFGenerator::getMultiByte(int c)
{
static char s[10];
sprintf(s,"\\'%X",c);
return s;
}
void RTFGenerator::docify(const char *str) void RTFGenerator::docify(const char *str)
{ {
if (str) if (str)
...@@ -2085,17 +2093,32 @@ void RTFGenerator::docify(const char *str) ...@@ -2085,17 +2093,32 @@ void RTFGenerator::docify(const char *str)
unsigned char pc='\0'; unsigned char pc='\0';
while (*p) while (*p)
{ {
static bool MultiByte = FALSE;
c=*p++; c=*p++;
switch(c)
if ( MultiByte )
{
t << getMultiByte( c );
MultiByte = FALSE;
continue;
}
if ( c >= 0x80 )
{
MultiByte = TRUE;
t << getMultiByte( c );
continue;
}
switch (c)
{ {
case '{': t << "\\{"; break; case '{': t << "\\{"; break;
case '}': t << "\\}"; break; case '}': t << "\\}"; break;
case '\\': t << "\\\\"; break; case '\\': t << "\\\\"; break;
default: default:
{ {
// see if we can insert an hyphenation hint // see if we can insert an hyphenation hint
//if (isupper(c) && islower(pc) && !insideTabbing) t << "\\-"; //if (isupper(c) && islower(pc) && !insideTabbing) t << "\\-";
t << (char)c; t << (char)c;
} }
} }
pc = c; pc = c;
...@@ -2110,26 +2133,43 @@ void RTFGenerator::codify(const char *str) ...@@ -2110,26 +2133,43 @@ void RTFGenerator::codify(const char *str)
// nothing... add a "newParagraph()"; // nothing... add a "newParagraph()";
//static char spaces[]=" "; //static char spaces[]=" ";
if (str) if (str)
{ {
const char *p=str; const unsigned char *p=(const unsigned char *)str;
char c; unsigned char c;
int spacesToNextTabStop; int spacesToNextTabStop;
while (*p) while (*p)
{ {
static bool MultiByte = FALSE;
c=*p++; c=*p++;
if( MultiByte )
{
t << getMultiByte( c );
MultiByte = FALSE;
continue;
}
if( c >= 0x80 )
{
MultiByte = TRUE;
t << getMultiByte( c );
continue;
}
switch(c) switch(c)
{ {
case '\t': spacesToNextTabStop = Config_getInt("TAB_SIZE") - (col%Config_getInt("TAB_SIZE")); case '\t': spacesToNextTabStop = Config_getInt("TAB_SIZE") - (col%Config_getInt("TAB_SIZE"));
t << spaces.left(spacesToNextTabStop); t << spaces.left(spacesToNextTabStop);
col+=spacesToNextTabStop; col+=spacesToNextTabStop;
break; break;
case '\n': newParagraph(); case '\n': newParagraph();
t << '\n'; col=0; t << '\n'; col=0;
break; break;
case '{': t << "\\{"; col++; break; case '{': t << "\\{"; col++; break;
case '}': t << "\\}"; col++; break; case '}': t << "\\}"; col++; break;
case '\\': t << "\\\\"; col++; break; case '\\': t << "\\\\"; col++; break;
default: t << c; col++; break; default: t << (char)c; col++; break;
} }
} }
} }
...@@ -2169,20 +2209,20 @@ void RTFGenerator::writeFormula(const char *,const char *text) ...@@ -2169,20 +2209,20 @@ void RTFGenerator::writeFormula(const char *,const char *text)
t << text; t << text;
} }
void RTFGenerator::startMemberItem(int) void RTFGenerator::startMemberItem(int)
{ {
DBG_RTF(t <<"{\\comment startMemberItem }" << endl) DBG_RTF(t <<"{\\comment startMemberItem }" << endl)
t << Rtf_Style_Reset << Rtf_BList_DepthStyle() << endl; // set style to apropriate depth t << Rtf_Style_Reset << Rtf_BList_DepthStyle() << endl; // set style to apropriate depth
} }
void RTFGenerator::endMemberItem(bool) void RTFGenerator::endMemberItem(bool)
{ {
DBG_RTF(t <<"{\\comment endMemberItem }" << endl) DBG_RTF(t <<"{\\comment endMemberItem }" << endl)
newParagraph(); newParagraph();
} }
void RTFGenerator::writeAnchor(const char *fileName,const char *name) void RTFGenerator::writeAnchor(const char *fileName,const char *name)
{ {
t << "{\\bkmkstart "; t << "{\\bkmkstart ";
if (fileName) t << formatBmkStr(fileName); if (fileName) t << formatBmkStr(fileName);
if (fileName && name) t << "_"; if (fileName && name) t << "_";
...@@ -2198,8 +2238,8 @@ void RTFGenerator::WriteRTFReference(const char *label) ...@@ -2198,8 +2238,8 @@ void RTFGenerator::WriteRTFReference(const char *label)
t << " \\\\*MERGEFORMAT}{\\fldrslt pagenum}}"; t << " \\\\*MERGEFORMAT}{\\fldrslt pagenum}}";
} }
void RTFGenerator::startCodeFragment() void RTFGenerator::startCodeFragment()
{ {
t << "{" << endl; t << "{" << endl;
newParagraph(); newParagraph();
t << Rtf_Style_Reset << Rtf_Code_DepthStyle(); t << Rtf_Style_Reset << Rtf_Code_DepthStyle();
...@@ -2207,7 +2247,7 @@ void RTFGenerator::startCodeFragment() ...@@ -2207,7 +2247,7 @@ void RTFGenerator::startCodeFragment()
} }
void RTFGenerator::endCodeFragment() void RTFGenerator::endCodeFragment()
{ {
newParagraph(); newParagraph();
//styleStack.pop(); //styleStack.pop();
//printf("RTFGenerator::endCodeFrament() top=%s\n",styleStack.top()); //printf("RTFGenerator::endCodeFrament() top=%s\n",styleStack.top());
...@@ -2217,30 +2257,30 @@ void RTFGenerator::endCodeFragment() ...@@ -2217,30 +2257,30 @@ void RTFGenerator::endCodeFragment()
m_omitParagraph = TRUE; m_omitParagraph = TRUE;
} }
void RTFGenerator::writeNonBreakableSpace(int) void RTFGenerator::writeNonBreakableSpace(int)
{ {
t << "\\~ "; t << "\\~ ";
} }
void RTFGenerator::startMemberList() void RTFGenerator::startMemberList()
{ {
t << endl; t << endl;
DBG_RTF(t << "{\\comment (startMemberList) }" << endl) DBG_RTF(t << "{\\comment (startMemberList) }" << endl)
t << "{" << endl; t << "{" << endl;
#ifdef DELETEDCODE #ifdef DELETEDCODE
if (!insideTabbing) if (!insideTabbing)
t << "\\begin{CompactItemize}" << endl; t << "\\begin{CompactItemize}" << endl;
#endif #endif
} }
void RTFGenerator::endMemberList() void RTFGenerator::endMemberList()
{ {
DBG_RTF(t << "{\\comment (endMemberList) }" << endl) DBG_RTF(t << "{\\comment (endMemberList) }" << endl)
t << "}" << endl; t << "}" << endl;
#ifdef DELETEDCODE #ifdef DELETEDCODE
if (!insideTabbing) if (!insideTabbing)
t << "\\end{CompactItemize}" << endl; t << "\\end{CompactItemize}" << endl;
#endif #endif
} }
...@@ -2266,7 +2306,7 @@ void RTFGenerator::startDotFile(const char *name,bool) ...@@ -2266,7 +2306,7 @@ void RTFGenerator::startDotFile(const char *name,bool)
int i; int i;
if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1) if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
{ {
baseName=baseName.right(baseName.length()-i-1); baseName=baseName.right(baseName.length()-i-1);
} }
QCString outName = Config_getString("RTF_OUTPUT")+ QCString outName = Config_getString("RTF_OUTPUT")+
#ifdef _WIN32 #ifdef _WIN32
...@@ -2290,16 +2330,16 @@ void RTFGenerator::endDotFile(bool) ...@@ -2290,16 +2330,16 @@ void RTFGenerator::endDotFile(bool)
// not yet implemented // not yet implemented
} }
void RTFGenerator::startDescTable() void RTFGenerator::startDescTable()
{ {
DBG_RTF(t << "{\\comment (startDescTable) }" << endl) DBG_RTF(t << "{\\comment (startDescTable) }" << endl)
//t << "{" << endl; //t << "{" << endl;
//incrementIndentLevel(); //incrementIndentLevel();
//t << Rtf_Style_Reset << Rtf_CList_DepthStyle(); //t << Rtf_Style_Reset << Rtf_CList_DepthStyle();
} }
void RTFGenerator::endDescTable() void RTFGenerator::endDescTable()
{ {
//decrementIndentLevel(); //decrementIndentLevel();
DBG_RTF(t << "{\\comment (endDescTable)}" << endl) DBG_RTF(t << "{\\comment (endDescTable)}" << endl)
//t << "}" << endl; //t << "}" << endl;
...@@ -2322,13 +2362,13 @@ void RTFGenerator::endDescTableTitle() ...@@ -2322,13 +2362,13 @@ void RTFGenerator::endDescTableTitle()
t << " "; t << " ";
} }
void RTFGenerator::startDescTableData() void RTFGenerator::startDescTableData()
{ {
DBG_RTF(t << "{\\comment (startDescTableData) }" << endl) DBG_RTF(t << "{\\comment (startDescTableData) }" << endl)
m_omitParagraph=FALSE; m_omitParagraph=FALSE;
} }
void RTFGenerator::endDescTableData() void RTFGenerator::endDescTableData()
{ {
DBG_RTF(t << "{\\comment (endDescTableData) }" << endl) DBG_RTF(t << "{\\comment (endDescTableData) }" << endl)
newParagraph(); newParagraph();
...@@ -2340,9 +2380,9 @@ void RTFGenerator::endDescTableData() ...@@ -2340,9 +2380,9 @@ void RTFGenerator::endDescTableData()
void RTFGenerator::incrementIndentLevel() void RTFGenerator::incrementIndentLevel()
{ {
m_listLevel++; m_listLevel++;
if (m_listLevel>indentLevels-1) if (m_listLevel>indentLevels-1)
{ {
warn_cont("Warning: Maximum indent level (%d) exceeded while generating RTF output!\n",indentLevels); warn_cont("Warning: Maximum indent level (%d) exceeded while generating RTF output!\n",indentLevels);
m_listLevel=indentLevels-1; m_listLevel=indentLevels-1;
} }
} }
...@@ -2350,7 +2390,7 @@ void RTFGenerator::incrementIndentLevel() ...@@ -2350,7 +2390,7 @@ void RTFGenerator::incrementIndentLevel()
void RTFGenerator::decrementIndentLevel() void RTFGenerator::decrementIndentLevel()
{ {
m_listLevel--; m_listLevel--;
if (m_listLevel<0) if (m_listLevel<0)
{ {
warn_cont("Warning: Negative indent level while generating RTF output!\n"); warn_cont("Warning: Negative indent level while generating RTF output!\n");
m_listLevel=0; m_listLevel=0;
...@@ -2371,14 +2411,14 @@ const char * RTFGenerator::Rtf_LCList_DepthStyle() ...@@ -2371,14 +2411,14 @@ const char * RTFGenerator::Rtf_LCList_DepthStyle()
return Rtf_Style[n]->reference; return Rtf_Style[n]->reference;
} }
// a style for list formatted as a "bullet" style // a style for list formatted as a "bullet" style
const char * RTFGenerator::Rtf_BList_DepthStyle() const char * RTFGenerator::Rtf_BList_DepthStyle()
{ {
QCString n=makeIndexName("ListBullet",m_listLevel); QCString n=makeIndexName("ListBullet",m_listLevel);
return Rtf_Style[n]->reference; return Rtf_Style[n]->reference;
} }
// a style for list formatted as a "enumeration" style // a style for list formatted as a "enumeration" style
const char * RTFGenerator::Rtf_EList_DepthStyle() const char * RTFGenerator::Rtf_EList_DepthStyle()
{ {
QCString n=makeIndexName("ListEnum",m_listLevel); QCString n=makeIndexName("ListEnum",m_listLevel);
...@@ -2563,7 +2603,7 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl ...@@ -2563,7 +2603,7 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl
return FALSE; return FALSE;
} }
const int maxLineLength = 10240; const int maxLineLength = 10240;
static QCString lineBuf(maxLineLength); static QCString lineBuf(maxLineLength);
// scan until find end of header // scan until find end of header
...@@ -2622,15 +2662,15 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl ...@@ -2622,15 +2662,15 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl
return TRUE; return TRUE;
} }
void RTFGenerator::startDotGraph() void RTFGenerator::startDotGraph()
{ {
} }
void RTFGenerator::endDotGraph(DotClassGraph &g) void RTFGenerator::endDotGraph(DotClassGraph &g)
{ {
newParagraph(); newParagraph();
QCString fileName = QCString fileName =
g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),TRUE,FALSE); g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),TRUE,FALSE);
// display the file // display the file
...@@ -2642,11 +2682,11 @@ void RTFGenerator::endDotGraph(DotClassGraph &g) ...@@ -2642,11 +2682,11 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
t << "}" << endl; t << "}" << endl;
} }
void RTFGenerator::startInclDepGraph() void RTFGenerator::startInclDepGraph()
{ {
} }
void RTFGenerator::endInclDepGraph(DotInclDepGraph &g) void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
{ {
newParagraph(); newParagraph();
...@@ -2678,7 +2718,7 @@ void testRTFOutput(const char *name) ...@@ -2678,7 +2718,7 @@ void testRTFOutput(const char *name)
{ {
c=f.getch(); c=f.getch();
if (c==-1) break; if (c==-1) break;
} }
else if (c=='{') // open bracket else if (c=='{') // open bracket
{ {
bcount++; bcount++;
...@@ -2707,15 +2747,15 @@ err: ...@@ -2707,15 +2747,15 @@ err:
/** /**
* This is an API to a VERY brittle RTF preprocessor that combines nested * This is an API to a VERY brittle RTF preprocessor that combines nested
* RTF files. This version replaces the infile with the new file * RTF files. This version replaces the infile with the new file
*/ */
bool RTFGenerator::preProcessFileInplace(const char *path,const char *name) bool RTFGenerator::preProcessFileInplace(const char *path,const char *name)
{ {
QDir d(path); QDir d(path);
// store the original directory // store the original directory
if (!d.exists()) if (!d.exists())
{ {
err("Error: Output dir %s does not exist!\n",path); err("Error: Output dir %s does not exist!\n",path);
return FALSE; return FALSE;
} }
QCString oldDir = convertToQCString(QDir::currentDirPath()); QCString oldDir = convertToQCString(QDir::currentDirPath());
......
...@@ -112,8 +112,10 @@ class RTFGenerator : public OutputGenerator ...@@ -112,8 +112,10 @@ class RTFGenerator : public OutputGenerator
void writeAnchor(const char *fileName,const char *name); void writeAnchor(const char *fileName,const char *name);
void startCodeFragment(); void startCodeFragment();
void endCodeFragment(); void endCodeFragment();
void startPreFragment() { startCodeFragment(); } void startPreFragment() { startCodeFragment(); }
void endPreFragment() { endCodeFragment(); } void endPreFragment() { endCodeFragment(); }
void startVerbatimFragment() { startVerbatimFragment(); }
void endVerbatimFragment() { endVerbatimFragment(); }
void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; } void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
void startCodeLine() { col=0; } void startCodeLine() { col=0; }
void endCodeLine() { lineBreak(); } void endCodeLine() { lineBreak(); }
...@@ -275,6 +277,7 @@ class RTFGenerator : public OutputGenerator ...@@ -275,6 +277,7 @@ class RTFGenerator : public OutputGenerator
void RtfwriteRuler_thick() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; }; void RtfwriteRuler_thick() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; };
void RtfwriteRuler_thin() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; }; void RtfwriteRuler_thin() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; };
void WriteRTFReference(const char *label); void WriteRTFReference(const char *label);
char *getMultiByte(int c);
}; };
#endif #endif
...@@ -868,6 +868,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -868,6 +868,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
lineCount(); lineCount();
BEGIN( CompoundName ); BEGIN( CompoundName );
} }
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class{" |
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class"{BN}+ { <FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class"{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1; isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::CLASS_SEC; current->section = Entry::CLASS_SEC;
...@@ -886,6 +887,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -886,6 +887,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
// current->mtArgList = 0; // current->mtArgList = 0;
//} //}
lineCount() ; lineCount() ;
if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ; BEGIN( CompoundName ) ;
} }
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct{" | <FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct{" |
...@@ -907,6 +909,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -907,6 +909,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
// current->mtArgList = 0; // current->mtArgList = 0;
//} //}
lineCount() ; lineCount() ;
if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ; BEGIN( CompoundName ) ;
} }
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"union{" | <FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"union{" |
...@@ -919,6 +922,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -919,6 +922,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->startLine = yyLineNr; current->startLine = yyLineNr;
current->bodyLine = yyLineNr; current->bodyLine = yyLineNr;
lineCount() ; lineCount() ;
if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ; BEGIN( CompoundName ) ;
} }
<FindMembers>{B}*(("typedef"{BN}+)?)"enum{" | <FindMembers>{B}*(("typedef"{BN}+)?)"enum{" |
...@@ -931,6 +935,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -931,6 +935,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->startLine = yyLineNr; current->startLine = yyLineNr;
current->bodyLine = yyLineNr; current->bodyLine = yyLineNr;
lineCount() ; lineCount() ;
if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ; BEGIN( CompoundName ) ;
} }
<Operator>"("{BN}*")"{BN}*/"(" { <Operator>"("{BN}*")"{BN}*/"(" {
...@@ -3622,6 +3627,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -3622,6 +3627,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
insideFormula=FALSE; insideFormula=FALSE;
BEGIN(lastFormulaContext); BEGIN(lastFormulaContext);
} }
<ReadFormulaLong>\n { formulaText+=*yytext; }
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; } <ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" { <ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs(); checkDocs();
......
/****************************************************************************** /******************************************************************************
* *
* *
* *
* Copyright (C) 1997-2000 by Dimitri van Heesch. * Copyright (C) 1997-2000 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software * granted. No representations are made about the suitability of this
* for any purpose. It is provided "as is" without express or implied warranty. software
* See the GNU General Public License for more details. * for any purpose. It is provided "as is" without express or implied
* warranty.
* Documents produced by Doxygen are derivative works derived from the * See the GNU General Public License for more details.
* input used in their production; they are not affected by this license. *
* * Documents produced by Doxygen are derivative works derived from the
*/ * input used in their production; they are not affected by this license.
*
*/
/* /*
* translator_jp.h * translator_jp.h
* *
* 1.2.5) * 1.2.5)
* First Translation * First Translation
* by Kenji Nagamatsu * by Kenji Nagamatsu
* 1.2.12) * 1.2.12)
* Update and Shift-Jis(_WIN32) * Update and Shift-Jis(_WIN32)
* by Ryunosuke Sato (30-Dec-2001) * by Ryunosuke Sato (30-Dec-2001)
*/ */
#ifndef TRANSLATOR_JP_H #ifndef TRANSLATOR_JP_H
#define TRANSLATOR_JP_H #define TRANSLATOR_JP_H
class TranslatorJapanese : public Translator class TranslatorJapanese : public Translator
{ {
private: private:
/*! The decode() can change euc into sjis */ /*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput) inline QCString decode(const QCString & sInput)
{ {
...@@ -46,7 +48,7 @@ class TranslatorJapanese : public Translator ...@@ -46,7 +48,7 @@ class TranslatorJapanese : public Translator
{ return "japanese"; } { return "japanese"; }
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
{ {
return ""; return "";
} }
/*! returns the name of the package that is included by LaTeX */ /*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
...@@ -58,7 +60,8 @@ class TranslatorJapanese : public Translator ...@@ -58,7 +60,8 @@ class TranslatorJapanese : public Translator
#endif #endif
} }
/*! used in the compound documentation before a list of related functions. */ /*! used in the compound documentation before a list of related
functions. */
virtual QCString trRelatedFunctions() virtual QCString trRelatedFunctions()
{ return decode("関連する関数"); } { return decode("関連する関数"); }
...@@ -66,55 +69,57 @@ class TranslatorJapanese : public Translator ...@@ -66,55 +69,57 @@ class TranslatorJapanese : public Translator
virtual QCString trRelatedSubscript() virtual QCString trRelatedSubscript()
{ return decode("(これらはメンバ関数でないことに注意)"); } { return decode("(これらはメンバ関数でないことに注意)"); }
/*! header that is put before the detailed description of files, classes and namespaces. */ /*! header that is put before the detailed description of files, classes
and namespaces. */
virtual QCString trDetailedDescription() virtual QCString trDetailedDescription()
{ return decode("解説"); } { return decode("解説"); }
/*! header that is put before the list of typedefs. */ /*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation() virtual QCString trMemberTypedefDocumentation()
{ return decode("メンバ型定義の解説"); } { return decode("Typedefメンバの解説"); }
/*! header that is put before the list of enumerations. */ /*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation() virtual QCString trMemberEnumerationDocumentation()
{ return decode("メンバ列挙型の解説"); } { return decode("Enumメンバの解説"); }
/*! header that is put before the list of member functions. */ /*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation() virtual QCString trMemberFunctionDocumentation()
{ return decode("メンバ関数の解説"); } { return decode("関数メンバの解説"); }
/*! header that is put before the list of member attributes. */ /*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation() virtual QCString trMemberDataDocumentation()
{ {
if( Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if( Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("構造体の解説"); return decode("構造体の解説");
} }
else else
{ {
return decode("メンバの解説"); return decode("メンバの解説");
} }
} }
/*! this is the text of a link put after brief descriptions. */ /*! this is the text of a link put after brief descriptions. */
virtual QCString trMore() virtual QCString trMore()
{ return decode("より詳しく..."); } { return decode("[詳細]"); }
/*! put in the class documentation */ /*! put in the class documentation */
virtual QCString trListOfAllMembers() virtual QCString trListOfAllMembers()
{ return decode("すべてのメンバ一覧"); } { return decode("メンバ一覧"); }
/*! used as the title of the "list of all members" page of a class */ /*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList() virtual QCString trMemberList()
{ return decode("メンバ一覧"); } { return decode("メンバ一覧"); }
/*! this is the first part of a sentence that is followed by a class name */ /*! this is the first part of a sentence that is followed by a class
name */
virtual QCString trThisIsTheListOfAllMembers() virtual QCString trThisIsTheListOfAllMembers()
{ return decode("これはメンバの一覧です。"); } { return decode("これはメンバの一覧です。"); }
/*! this is the remainder of the sentence after the class name */ /*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers() virtual QCString trIncludingInheritedMembers()
{ return decode("継承メンバもすべて含んでいます。"); } { return decode("継承メンバもすべて含んでいます。"); }
/*! this is put at the author sections at the bottom of man pages. /*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name. * parameter s is name of the project name.
*/ */
...@@ -127,73 +132,77 @@ class TranslatorJapanese : public Translator ...@@ -127,73 +132,77 @@ class TranslatorJapanese : public Translator
/*! put after an enum name in the list of all members */ /*! put after an enum name in the list of all members */
virtual QCString trEnumName() virtual QCString trEnumName()
{ return decode("列挙型"); } { return decode("Enum"); }
/*! put after an enum value in the list of all members */ /*! put after an enum value in the list of all members */
virtual QCString trEnumValue() virtual QCString trEnumValue()
{ return decode("列挙値"); } { return decode("Enum値"); }
/*! put after an undocumented member in the list of all members */ /*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn() virtual QCString trDefinedIn()
{ return decode("次で定義されています。"); } { return decode("次で定義されています。"); }
// quick reference sections // quick reference sections
/*! This is put above each page as a link to the list of all groups of /*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command). * compounds or files (see the \group command).
*/ */
virtual QCString trModules() virtual QCString trModules()
{ return decode("モジュール"); } { return decode("モジュール"); }
/*! This is put above each page as a link to the class hierarchy */ /*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy() virtual QCString trClassHierarchy()
{ return decode("クラス階層"); } { return decode("クラス階層"); }
/*! This is put above each page as a link to the list of annotated classes */ /*! This is put above each page as a link to the list of annotated
classes */
virtual QCString trCompoundList() virtual QCString trCompoundList()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データ構造"); return decode("データ構造");
} }
else else
{ {
return decode("構成"); return decode("構成");
} }
} }
/*! This is put above each page as a link to the list of documented files */ /*! This is put above each page as a link to the list of documented
files */
virtual QCString trFileList() virtual QCString trFileList()
{ return decode("ファイル一覧"); } { return decode("ファイル一覧"); }
/*! This is put above each page as a link to the list of all verbatim headers */ /*! This is put above each page as a link to the list of all verbatim
headers */
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
{ return decode("ヘッダファイル"); } { return decode("ヘッダファイル"); }
/*! This is put above each page as a link to all members of compounds. */ /*! This is put above each page as a link to all members of compounds.
*/
virtual QCString trCompoundMembers() virtual QCString trCompoundMembers()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データフィールド"); return decode("データフィールド");
} }
else else
{ {
return decode("構成メンバ"); return decode("構成メンバ");
} }
} }
/*! This is put above each page as a link to all members of files. */ /*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers() virtual QCString trFileMembers()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("グローバル"); return decode("グローバル");
} }
else else
{ {
return decode("ファイルメンバ"); return decode("ファイルメンバ");
} }
} }
/*! This is put above each page as a link to all related pages. */ /*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages() virtual QCString trRelatedPages()
...@@ -225,13 +234,13 @@ class TranslatorJapanese : public Translator ...@@ -225,13 +234,13 @@ class TranslatorJapanese : public Translator
virtual QCString trCompoundListDescription() virtual QCString trCompoundListDescription()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データ構造の解説です。"); return decode("データ構造の解説です。");
} }
else else
{ {
return decode("クラス、構造体、共用体、インタフェースの解説です。"); return decode("クラス、構造体、共用体、インタフェースの解説です。");
} }
} }
/*! This is an introduction to the page with all class members. */ /*! This is an introduction to the page with all class members. */
...@@ -239,15 +248,15 @@ class TranslatorJapanese : public Translator ...@@ -239,15 +248,15 @@ class TranslatorJapanese : public Translator
{ {
QCString result=decode("これは"); QCString result=decode("これは");
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
result+=decode("フィールドの一覧でそれぞれ"); result+=decode("フィールドの一覧でそれぞれ");
if (extractAll) result+=decode("が属している構造体/共用体"); if (extractAll) result+=decode("が属している構造体/共用体");
} }
else else
{ {
result+=decode("クラスメンバの一覧で、それぞれ"); result+=decode("クラスメンバの一覧で、それぞれ");
if (extractAll) result+=decode("が属しているクラス"); if (extractAll) result+=decode("が属しているクラス");
} }
result+=decode("の解説へリンクしています。"); result+=decode("の解説へリンクしています。");
return result; return result;
} }
...@@ -257,18 +266,20 @@ class TranslatorJapanese : public Translator ...@@ -257,18 +266,20 @@ class TranslatorJapanese : public Translator
{ {
QCString result=decode("これは"); QCString result=decode("これは");
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
result+=decode("関数、変数、マクロ、列挙型、型定義の"); result+=decode("関数、変数、マクロ、Typedef定義、Enum定義の");
} }
else else
{ {
result+=decode("ファイルメンバの"); result+=decode("ファイルメンバの");
} }
result+=decode("一覧です。それぞれが属しているファイルの解説へリンクしています。");
result+=decode("一覧です。それぞれが属しているファイルの解説へリンクしています。");
return result; return result;
} }
/*! This is an introduction to the page with the list of all header files. */ /*! This is an introduction to the page with the list of all header
files. */
virtual QCString trHeaderFilesDescription() virtual QCString trHeaderFilesDescription()
{ return decode("APIを構成するヘッダファイルです。"); } { return decode("APIを構成するヘッダファイルです。"); }
...@@ -276,58 +287,60 @@ class TranslatorJapanese : public Translator ...@@ -276,58 +287,60 @@ class TranslatorJapanese : public Translator
virtual QCString trExamplesDescription() virtual QCString trExamplesDescription()
{ return decode("すべての例の一覧です。"); } { return decode("すべての例の一覧です。"); }
/*! This is an introduction to the page with the list of related pages */ /*! This is an introduction to the page with the list of related pages
*/
virtual QCString trRelatedPagesDescription() virtual QCString trRelatedPagesDescription()
{ return decode("関連ページの一覧です。"); } { return decode("関連ページの一覧です。"); }
/*! This is an introduction to the page with the list of class/file groups */ /*! This is an introduction to the page with the list of class/file
groups */
virtual QCString trModulesDescription() virtual QCString trModulesDescription()
{ return decode("すべてのモジュールの一覧です。"); } { return decode("すべてのモジュールの一覧です。"); }
/*! This sentences is used in the annotated class/file lists if no brief /*! This sentences is used in the annotated class/file lists if no brief
* description is given. * description is given.
*/ */
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
{ return decode("ドキュメントが記述されていません。"); } { return decode("ドキュメントが記述されていません。"); }
// index titles (the project name is prepended for these) // index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */ /*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation() virtual QCString trDocumentation()
{ return decode("ドキュメント"); } { return decode("ドキュメント"); }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* index of all groups. * index of all groups.
*/ */
virtual QCString trModuleIndex() virtual QCString trModuleIndex()
{ return decode("モジュール索引"); } { return decode("モジュール索引"); }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* class hierarchy. * class hierarchy.
*/ */
virtual QCString trHierarchicalIndex() virtual QCString trHierarchicalIndex()
{ return decode("階層索引"); } { return decode("階層索引"); }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* annotated compound index. * annotated compound index.
*/ */
virtual QCString trCompoundIndex() virtual QCString trCompoundIndex()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データ構造索引"); return decode("データ構造索引");
} }
else else
{ {
return decode("構成索引"); return decode("構成索引");
} }
} }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* list of all files. * list of all files.
*/ */
virtual QCString trFileIndex() virtual QCString trFileIndex()
{ return decode("ファイル索引"); } { return decode("ファイル索引"); }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
...@@ -342,13 +355,13 @@ class TranslatorJapanese : public Translator ...@@ -342,13 +355,13 @@ class TranslatorJapanese : public Translator
virtual QCString trClassDocumentation() virtual QCString trClassDocumentation()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データ構造の解説"); return decode("データ構造の解説");
} }
else else
{ {
return decode("クラスの解説"); return decode("クラスの解説");
} }
} }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
...@@ -361,7 +374,7 @@ class TranslatorJapanese : public Translator ...@@ -361,7 +374,7 @@ class TranslatorJapanese : public Translator
* the documentation of all examples. * the documentation of all examples.
*/ */
virtual QCString trExampleDocumentation() virtual QCString trExampleDocumentation()
{ return decode("例の解説"); } { return decode("例の解説"); }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages. * the documentation of all related pages.
...@@ -372,115 +385,122 @@ class TranslatorJapanese : public Translator ...@@ -372,115 +385,122 @@ class TranslatorJapanese : public Translator
/*! This is used in LaTeX as the title of the document */ /*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual() virtual QCString trReferenceManual()
{ return decode("リファレンスマニュアル"); } { return decode("リファレンスマニュアル"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of defines * list of defines
*/ */
virtual QCString trDefines() virtual QCString trDefines()
{ return decode("マクロ定義"); } { return decode("マクロ定義"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of function prototypes * list of function prototypes
*/ */
virtual QCString trFuncProtos() virtual QCString trFuncProtos()
{ return decode("関数プロトタイプ"); } { return decode("関数プロトタイプ"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of typedefs * list of typedefs
*/ */
virtual QCString trTypedefs() virtual QCString trTypedefs()
{ return decode("定義"); } { return decode("Typedef定義"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of enumerations * list of enumerations
*/ */
virtual QCString trEnumerations() virtual QCString trEnumerations()
{ return decode("列挙型"); } { return decode("Enum定義"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) functions * list of (global) functions
*/ */
virtual QCString trFunctions() virtual QCString trFunctions()
{ return decode("関数"); } { return decode("関数"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trVariables() virtual QCString trVariables()
{ return decode("変数"); } { return decode("変数"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trEnumerationValues() virtual QCString trEnumerationValues()
{ return decode("列挙型値"); } { return decode("Enum値"); }
/*! This is used in the documentation of a file before the list of /*! This is used in the documentation of a file before the list of
* documentation blocks for defines * documentation blocks for defines
*/ */
virtual QCString trDefineDocumentation() virtual QCString trDefineDocumentation()
{ return decode("マクロ定義の解説"); } { return decode("マクロ定義の解説"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the
list
* of documentation blocks for function prototypes * of documentation blocks for function prototypes
*/ */
virtual QCString trFunctionPrototypeDocumentation() virtual QCString trFunctionPrototypeDocumentation()
{ return decode("関数プロトタイプの解説"); } { return decode("関数プロトタイプの解説"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the
list
* of documentation blocks for typedefs * of documentation blocks for typedefs
*/ */
virtual QCString trTypedefDocumentation() virtual QCString trTypedefDocumentation()
{ return decode("定義の解説"); } { return decode("Typedef定義の解説"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the
list
* of documentation blocks for enumeration types * of documentation blocks for enumeration types
*/ */
virtual QCString trEnumerationTypeDocumentation() virtual QCString trEnumerationTypeDocumentation()
{ return decode("列挙型の解説"); } { return decode("Enum定義の解説"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the
list
* of documentation blocks for enumeration values * of documentation blocks for enumeration values
*/ */
virtual QCString trEnumerationValueDocumentation() virtual QCString trEnumerationValueDocumentation()
{ return decode("列挙型値の解説"); } { return decode("Enum値の解説"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the
list
* of documentation blocks for functions * of documentation blocks for functions
*/ */
virtual QCString trFunctionDocumentation() virtual QCString trFunctionDocumentation()
{ return decode("関数の解説"); } { return decode("関数の解説"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the
list
* of documentation blocks for variables * of documentation blocks for variables
*/ */
virtual QCString trVariableDocumentation() virtual QCString trVariableDocumentation()
{ return decode("変数の解説"); } { return decode("変数の解説"); }
/*! This is used in the documentation of a file/namespace/group before /*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds * the list of links to documented compounds
*/ */
virtual QCString trCompounds() virtual QCString trCompounds()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データ構造"); return decode("データ構造");
} }
else else
{ {
return decode("構成"); return decode("構成");
} }
} }
/*! This is used in the standard footer of each page and indicates when /*! This is used in the standard footer of each page and indicates when
* the page was generated * the page was generated
*/ */
virtual QCString trGeneratedAt(const char *date,const char *projName) virtual QCString trGeneratedAt(const char *date,const char *projName)
{ {
QCString result; QCString result;
if (projName) result+=(QCString)projName+decode("に対して"); if (projName) result+=(QCString)projName+decode("に対して");
result+=(QCString)date+decode("に生成されました。"); result+=(QCString)date+decode("に生成されました。");
return result; return result;
} }
/*! This is part of the sentence used in the standard footer of each page. /*! This is part of the sentence used in the standard footer of each
page.
*/ */
virtual QCString trWrittenBy() virtual QCString trWrittenBy()
{ {
...@@ -490,16 +510,17 @@ class TranslatorJapanese : public Translator ...@@ -490,16 +510,17 @@ class TranslatorJapanese : public Translator
/*! this text is put before a class diagram */ /*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName) virtual QCString trClassDiagram(const char *clName)
{ {
return (QCString)clName+decode("に対する継承グラフ"); return (QCString)clName+decode("継承グラフ");
} }
/*! this text is generated when the \\internal command is used. */ /*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly() virtual QCString trForInternalUseOnly()
{ return decode("内部使用のみ。"); } { return decode("内部使用のみ。"); }
/*! this text is generated when the \\reimp command is used. */ /*! this text is generated when the \\reimp command is used. */
virtual QCString trReimplementedForInternalReasons() virtual QCString trReimplementedForInternalReasons()
{ return decode("内部的な理由により再実装されましたが、APIには影響しません。"); { return
decode("内部的な理由により再実装されましたが、APIには影響しません。");
} }
/*! this text is generated when the \\warning command is used. */ /*! this text is generated when the \\warning command is used. */
...@@ -537,7 +558,7 @@ class TranslatorJapanese : public Translator ...@@ -537,7 +558,7 @@ class TranslatorJapanese : public Translator
/*! this text is generated when the \\exception command is used. */ /*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions() virtual QCString trExceptions()
{ return decode("例外"); } { return decode("例外"); }
/*! this text is used in the title page of a LaTeX document. */ /*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy() virtual QCString trGeneratedBy()
{ return decode(""); } { return decode(""); }
...@@ -545,8 +566,9 @@ class TranslatorJapanese : public Translator ...@@ -545,8 +566,9 @@ class TranslatorJapanese : public Translator
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990307 // new since 0.49-990307
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used as the title of page containing all the index of all namespaces. */ /*! used as the title of page containing all the index of all
namespaces. */
virtual QCString trNamespaceList() virtual QCString trNamespaceList()
{ return decode("名前空間一覧"); } { return decode("名前空間一覧"); }
...@@ -562,18 +584,18 @@ class TranslatorJapanese : public Translator ...@@ -562,18 +584,18 @@ class TranslatorJapanese : public Translator
* friends of a class * friends of a class
*/ */
virtual QCString trFriends() virtual QCString trFriends()
{ return decode("フレンド"); } { return decode("Friend関数"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990405 // new since 0.49-990405
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used in the class documentation as a header before the list of all /*! used in the class documentation as a header before the list of all
* related classes * related classes
*/ */
virtual QCString trRelatedFunctionDocumentation() virtual QCString trRelatedFunctionDocumentation()
{ return decode("フレンドと関連する関数の解説"); } { return decode("関連する関数の解説"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990425 // new since 0.49-990425
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -590,7 +612,8 @@ class TranslatorJapanese : public Translator ...@@ -590,7 +612,8 @@ class TranslatorJapanese : public Translator
case ClassDef::Struct: result+=decode("構造体 "); break; case ClassDef::Struct: result+=decode("構造体 "); break;
case ClassDef::Union: result+=decode("共用体 "); break; case ClassDef::Union: result+=decode("共用体 "); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース"); break;
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外"); break;
//TODO:fixme
} }
if (isTemplate) result+=decode(" テンプレート"); if (isTemplate) result+=decode(" テンプレート");
result+=(QCString)clName+decode(" の解説"); result+=(QCString)clName+decode(" の解説");
...@@ -600,39 +623,40 @@ class TranslatorJapanese : public Translator ...@@ -600,39 +623,40 @@ class TranslatorJapanese : public Translator
/*! used as the title of the HTML page of a file */ /*! used as the title of the HTML page of a file */
virtual QCString trFileReference(const char *fileName) virtual QCString trFileReference(const char *fileName)
{ {
QCString result=decode("")+(QCString)fileName+decode(" の解説"); QCString result=decode("")+(QCString)fileName+decode(" の解説");
return result; return result;
} }
/*! used as the title of the HTML page of a namespace */ /*! used as the title of the HTML page of a namespace */
virtual QCString trNamespaceReference(const char *namespaceName) virtual QCString trNamespaceReference(const char *namespaceName)
{ {
QCString result=decode("名前空間 ")+(QCString)namespaceName+decode(" の解説"); QCString result=decode("名前空間 ")+(QCString)namespaceName+decode("
の解説");
return result; return result;
} }
/* these are for the member sections of a class, struct or union */ /* these are for the member sections of a class, struct or union */
virtual QCString trPublicMembers() virtual QCString trPublicMembers()
{ return decode("公開メンバ"); } { return decode("Public メソッド"); }
virtual QCString trPublicSlots() virtual QCString trPublicSlots()
{ return decode("公開スロット"); } { return decode("Public スロット"); }
virtual QCString trSignals() virtual QCString trSignals()
{ return decode("シグナル"); } { return decode("シグナル"); }
virtual QCString trStaticPublicMembers() virtual QCString trStaticPublicMembers()
{ return decode("静的公開メンバ"); } { return decode("Static Public メソッド"); }
virtual QCString trProtectedMembers() virtual QCString trProtectedMembers()
{ return decode("保護メンバ"); } { return decode("Protected メソッド"); }
virtual QCString trProtectedSlots() virtual QCString trProtectedSlots()
{ return decode("保護スロット"); } { return decode("Protected スロット"); }
virtual QCString trStaticProtectedMembers() virtual QCString trStaticProtectedMembers()
{ return decode("静的保護メンバ"); } { return decode("Static Protected メソッド"); }
virtual QCString trPrivateMembers() virtual QCString trPrivateMembers()
{ return decode("非公開メンバ"); } { return decode("Private メソッド"); }
virtual QCString trPrivateSlots() virtual QCString trPrivateSlots()
{ return decode("非公開スロット"); } { return decode("Private スロット"); }
virtual QCString trStaticPrivateMembers() virtual QCString trStaticPrivateMembers()
{ return decode("静的非公開メンバ"); } { return decode("Static Private メソッド"); }
/*! this function is used to produce a comma-separated list of items. /*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put. * use generateMarker(i) to indicate where item i should be put.
*/ */
...@@ -641,23 +665,23 @@ class TranslatorJapanese : public Translator ...@@ -641,23 +665,23 @@ class TranslatorJapanese : public Translator
QCString result; QCString result;
int i; int i;
// the inherits list contain `numEntries' classes // the inherits list contain `numEntries' classes
for (i=0;i<numEntries;i++) for (i=0;i<numEntries;i++)
{ {
// use generateMarker to generate placeholders for the class links! // use generateMarker to generate placeholders for the class links!
result+=generateMarker(i); // generate marker for entry i in the list result+=generateMarker(i); // generate marker for entry i in the list
// (order is left to right) // (order is left to right)
if (i!=numEntries-1) // not the last entry, so we need a separator if (i!=numEntries-1) // not the last entry, so we need a separator
{ {
if (i<numEntries-2) // not the fore last entry if (i<numEntries-2) // not the fore last entry
result+=decode(", "); result+=decode(", ");
else // the fore last entry else // the fore last entry
result+=decode(", と "); result+=decode(", と ");
} }
} }
return result; return result;
} }
/*! used in class documentation to produce a list of base classes, /*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled. * if class diagrams are disabled.
*/ */
...@@ -674,7 +698,7 @@ class TranslatorJapanese : public Translator ...@@ -674,7 +698,7 @@ class TranslatorJapanese : public Translator
return trWriteList(numEntries)+decode("に継承されています。"); return trWriteList(numEntries)+decode("に継承されています。");
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
* members that are hidden by this one. * members that are hidden by this one.
*/ */
virtual QCString trReimplementedFromList(int numEntries) virtual QCString trReimplementedFromList(int numEntries)
...@@ -690,23 +714,24 @@ class TranslatorJapanese : public Translator ...@@ -690,23 +714,24 @@ class TranslatorJapanese : public Translator
return trWriteList(numEntries)+decode("で再定義されています。"); return trWriteList(numEntries)+decode("で再定義されています。");
} }
/*! This is put above each page as a link to all members of namespaces. */ /*! This is put above each page as a link to all members of namespaces.
*/
virtual QCString trNamespaceMembers() virtual QCString trNamespaceMembers()
{ return decode("名前空間メンバ"); } { return decode("名前空間メンバ"); }
/*! This is an introduction to the page with all namespace members */ /*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll) virtual QCString trNamespaceMemberDescription(bool extractAll)
{ {
QCString result=decode("これは"); QCString result=decode("これは");
result+=decode("名前空間の一覧です。それぞれ"); result+=decode("名前空間の一覧です。それぞれ");
if (extractAll) if (extractAll)
result+=decode("の名前空間の解説"); result+=decode("の名前空間の解説");
else else
result+=decode("が属している名前空間"); result+=decode("が属している名前空間");
result+=decode("へリンクしています。"); result+=decode("へリンクしています。");
return result; return result;
} }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces. * index of all namespaces.
*/ */
virtual QCString trNamespaceIndex() virtual QCString trNamespaceIndex()
...@@ -746,7 +771,8 @@ class TranslatorJapanese : public Translator ...@@ -746,7 +771,8 @@ class TranslatorJapanese : public Translator
case ClassDef::Struct: result+=decode("構造体"); break; case ClassDef::Struct: result+=decode("構造体"); break;
case ClassDef::Union: result+=decode("共用体"); break; case ClassDef::Union: result+=decode("共用体"); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース"); break;
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外"); break;
//TODO:fixme
} }
result+=decode("の解説は次のファイルから生成されました:"); result+=decode("の解説は次のファイルから生成されました:");
return result; return result;
...@@ -756,7 +782,7 @@ class TranslatorJapanese : public Translator ...@@ -756,7 +782,7 @@ class TranslatorJapanese : public Translator
* list. * list.
*/ */
virtual QCString trAlphabeticalList() virtual QCString trAlphabeticalList()
{ return decode("アルファベット順一覧"); } { return decode("一覧 [アルファベット順]"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990901 // new since 0.49-990901
...@@ -771,7 +797,7 @@ class TranslatorJapanese : public Translator ...@@ -771,7 +797,7 @@ class TranslatorJapanese : public Translator
virtual QCString trMainPage() virtual QCString trMainPage()
{ return decode("メインページ"); } { return decode("メインページ"); }
/*! This is used in references to page that are put in the LaTeX /*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page. * documentation. It should be an abbreviation of the word page.
*/ */
virtual QCString trPageAbbreviation() virtual QCString trPageAbbreviation()
...@@ -815,19 +841,21 @@ class TranslatorJapanese : public Translator ...@@ -815,19 +841,21 @@ class TranslatorJapanese : public Translator
/*! this text is put before an include dependency graph */ /*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName) virtual QCString trInclDepGraph(const char *fName)
{ {
return (QCString)fName+decode("のインクルード依存関係図"); return (QCString)fName+decode("のインクルード依存関係図");
} }
/*! header that is put before the list of constructor/destructors. */ /*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation() virtual QCString trConstructorDocumentation()
{ {
return decode("コンストラクタとデストラクタの解説"); return decode("コンストラクタとデストラクタの解説");
} }
/*! Used in the file documentation to point to the corresponding sources. */ /*! Used in the file documentation to point to the corresponding
sources. */
virtual QCString trGotoSourceCode() virtual QCString trGotoSourceCode()
{ {
return decode("ソースコードを見る。"); return decode("ソースコードを見る。");
} }
/*! Used in the file sources to point to the corresponding documentation. */ /*! Used in the file sources to point to the corresponding
documentation. */
virtual QCString trGotoDocumentation() virtual QCString trGotoDocumentation()
{ {
return decode("解説を見る。"); return decode("解説を見る。");
...@@ -855,7 +883,7 @@ class TranslatorJapanese : public Translator ...@@ -855,7 +883,7 @@ class TranslatorJapanese : public Translator
/*! Text used the source code in the file index */ /*! Text used the source code in the file index */
virtual QCString trCode() virtual QCString trCode()
{ {
return decode("コード"); return decode("ソースコード");
} }
virtual QCString trGraphicalHierarchy() virtual QCString trGraphicalHierarchy()
{ {
...@@ -877,53 +905,53 @@ class TranslatorJapanese : public Translator ...@@ -877,53 +905,53 @@ class TranslatorJapanese : public Translator
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.1.0 // new since 1.1.0
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
virtual QCString trNote() virtual QCString trNote()
{ {
return decode("覚え書き"); return decode("覚え書き");
} }
virtual QCString trPublicTypes() virtual QCString trPublicTypes()
{ {
return decode("公開型"); return decode("Public 型");
} }
virtual QCString trPublicAttribs() virtual QCString trPublicAttribs()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データフィールド"); return decode("データフィールド");
} }
else else
{ {
return decode("公開属性"); return decode("Public 属性");
} }
} }
virtual QCString trStaticPublicAttribs() virtual QCString trStaticPublicAttribs()
{ {
return decode("静的公開属性"); return decode("Static Public 属性");
} }
virtual QCString trProtectedTypes() virtual QCString trProtectedTypes()
{ {
return decode("保護型"); return decode("Protected 型");
} }
virtual QCString trProtectedAttribs() virtual QCString trProtectedAttribs()
{ {
return decode("保護属性"); return decode("Protected 属性");
} }
virtual QCString trStaticProtectedAttribs() virtual QCString trStaticProtectedAttribs()
{ {
return decode("静的保護属性"); return decode("Static Protected 属性");
} }
virtual QCString trPrivateTypes() virtual QCString trPrivateTypes()
{ {
return decode("非公開型"); return decode("Private 型");
} }
virtual QCString trPrivateAttribs() virtual QCString trPrivateAttribs()
{ {
return decode("非公開属性"); return decode("Private 属性");
} }
virtual QCString trStaticPrivateAttribs() virtual QCString trStaticPrivateAttribs()
{ {
return decode("静的非公開属性"); return decode("Static Private 属性");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -933,12 +961,12 @@ class TranslatorJapanese : public Translator ...@@ -933,12 +961,12 @@ class TranslatorJapanese : public Translator
/*! Used as a marker that is put before a todo item */ /*! Used as a marker that is put before a todo item */
virtual QCString trTodo() virtual QCString trTodo()
{ {
return decode("TODO"); return decode("Todo");
} }
/*! Used as the header of the todo list */ /*! Used as the header of the todo list */
virtual QCString trTodoList() virtual QCString trTodoList()
{ {
return decode("TODO一覧"); return decode("Todo一覧");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -959,14 +987,14 @@ class TranslatorJapanese : public Translator ...@@ -959,14 +987,14 @@ class TranslatorJapanese : public Translator
} }
virtual QCString trInclByDepGraph() virtual QCString trInclByDepGraph()
{ {
return decode("このグラフは、どのファイルから直接、間接的に" return decode("このグラフは、どのファイルから直接/間接的に"
"インクルードされているかを示しています。"); "インクルードされているかを示しています。");
} }
virtual QCString trSince() virtual QCString trSince()
{ {
return decode("から"); return decode("から");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.1.5 // new since 1.1.5
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -979,8 +1007,9 @@ class TranslatorJapanese : public Translator ...@@ -979,8 +1007,9 @@ class TranslatorJapanese : public Translator
/*! page explaining how the dot graph's should be interpreted */ /*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs() virtual QCString trLegendDocs()
{ {
return return
decode("このページでは、doxygen で生成されたグラフをどのようにみたらよいかを" decode("このページでは、doxygen
で生成されたグラフをどのようにみたらよいかを"
"説明します。<p>\n" "説明します。<p>\n"
"次の例を考えてみます。\n" "次の例を考えてみます。\n"
"\\code\n" "\\code\n"
...@@ -1008,19 +1037,23 @@ class TranslatorJapanese : public Translator ...@@ -1008,19 +1037,23 @@ class TranslatorJapanese : public Translator
" Used *m_usedClass;\n" " Used *m_usedClass;\n"
"};\n" "};\n"
"\\endcode\n" "\\endcode\n"
"設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200 にセットされた" "設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200
にセットされた"
"場合、次のようなグラフとなります。" "場合、次のようなグラフとなります。"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p><center><img
src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"上のグラフ内のボックスには次のような意味があります。\n" "上のグラフ内のボックスには次のような意味があります。\n"
"<ul>\n" "<ul>\n"
"<li>黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを"
"<li>黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを"
"表します。\n" "表します。\n"
"<li>黒枠のボックスはドキュメントがある構造体やクラスを表します。\n" "<li>黒枠のボックスはドキュメントがある構造体やクラスを表します。\n"
"<li>灰色の枠のボックスはドキュメントがない構造体やクラスを表します。\n"
"<li>灰色の枠のボックスはドキュメントがない構造体やクラスを表します。\n"
"<li>赤枠のボックスはドキュメントがある構造体やクラスを表しますが、" "<li>赤枠のボックスはドキュメントがある構造体やクラスを表しますが、"
"指定されたサイズに収まらないために継承・包含関係をすべて図示する" "指定されたサイズに収まらないために継承・包含関係をすべて図示する"
"ことができなかったことを示します。" "ことができなかったことを示します。"
"</ul>\n" "</ul>\n"
"矢印には次のような意味があります。\n" "矢印には次のような意味があります。\n"
"<ul>\n" "<ul>\n"
...@@ -1028,8 +1061,8 @@ class TranslatorJapanese : public Translator ...@@ -1028,8 +1061,8 @@ class TranslatorJapanese : public Translator
"<li>緑の矢印は protected 継承関係を示します。\n" "<li>緑の矢印は protected 継承関係を示します。\n"
"<li>赤の矢印は private 継承関係を示します。\n" "<li>赤の矢印は private 継承関係を示します。\n"
"<li>紫の破線矢印は、そのクラスが他のクラスに含まれていたり、" "<li>紫の破線矢印は、そのクラスが他のクラスに含まれていたり、"
"利用されていることを示します。また、矢印が指しているクラスや構造体を" "利用されていることを示します。また、矢印が指しているクラスや構造体を"
"どの変数でアクセスできるかを矢印のラベルとして示しています。\n" "どの変数でアクセスできるかを矢印のラベルとして示しています。\n"
"</ul>\n"); "</ul>\n");
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
...@@ -1037,11 +1070,11 @@ class TranslatorJapanese : public Translator ...@@ -1037,11 +1070,11 @@ class TranslatorJapanese : public Translator
{ {
return decode("凡例"); return decode("凡例");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.0 // new since 1.2.0
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */ /*! Used as a marker that is put before a test item */
virtual QCString trTest() virtual QCString trTest()
{ {
...@@ -1060,7 +1093,7 @@ class TranslatorJapanese : public Translator ...@@ -1060,7 +1093,7 @@ class TranslatorJapanese : public Translator
/*! Used as a section header for KDE-2 IDL methods */ /*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods() virtual QCString trDCOPMethods()
{ {
return decode("DCOPメソッド"); return decode("DCOP メソッド");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1086,19 +1119,19 @@ class TranslatorJapanese : public Translator ...@@ -1086,19 +1119,19 @@ class TranslatorJapanese : public Translator
/*! Used for Java interfaces in the summary section of Java packages */ /*! Used for Java interfaces in the summary section of Java packages */
virtual QCString trInterfaces() virtual QCString trInterfaces()
{ {
return decode("インタフェース"); return decode("インタフェース");
} }
/*! Used for Java classes in the summary section of Java packages */ /*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses() virtual QCString trClasses()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("データ構造"); return decode("データ構造");
} }
else else
{ {
return decode("クラス"); return decode("クラス");
} }
} }
/*! Used as the title of a Java package */ /*! Used as the title of a Java package */
virtual QCString trPackage(const char *name) virtual QCString trPackage(const char *name)
...@@ -1135,7 +1168,7 @@ class TranslatorJapanese : public Translator ...@@ -1135,7 +1168,7 @@ class TranslatorJapanese : public Translator
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.5 // new since 1.2.5
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \\bug item */ /*! Used as a marker that is put before a \\bug item */
virtual QCString trBug() virtual QCString trBug()
{ {
...@@ -1151,9 +1184,10 @@ class TranslatorJapanese : public Translator ...@@ -1151,9 +1184,10 @@ class TranslatorJapanese : public Translator
// new since 1.2.6 // new since 1.2.6
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! Used as ansicpg for RTF file /*! Used as ansicpg for RTF file
* *
* The following table shows the correlation of Charset name, Charset Value and * The following table shows the correlation of Charset name, Charset
Value and
* <pre> * <pre>
* Codepage number: * Codepage number:
* Charset Name Charset Value(hex) Codepage number * Charset Name Charset Value(hex) Codepage number
...@@ -1174,15 +1208,15 @@ class TranslatorJapanese : public Translator ...@@ -1174,15 +1208,15 @@ class TranslatorJapanese : public Translator
* GB2313_CHARSET 134 (x86) 936 * GB2313_CHARSET 134 (x86) 936
* CHINESEBIG5_CHARSET 136 (x88) 950 * CHINESEBIG5_CHARSET 136 (x88) 950
* </pre> * </pre>
* *
*/ */
virtual QCString trRTFansicp() virtual QCString trRTFansicp()
{ {
return "932"; return "932";
} }
/*! Used as ansicpg for RTF fcharset
/*! Used as ansicpg for RTF fcharset
* \see trRTFansicp() for a table of possible values. * \see trRTFansicp() for a table of possible values.
*/ */
virtual QCString trRTFCharSet() virtual QCString trRTFCharSet()
...@@ -1195,97 +1229,97 @@ class TranslatorJapanese : public Translator ...@@ -1195,97 +1229,97 @@ class TranslatorJapanese : public Translator
{ {
return decode("索引"); return decode("索引");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trClass(bool first_capital, bool singular) virtual QCString trClass(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("クラス")); QCString result(decode("クラス"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trFile(bool first_capital, bool singular) virtual QCString trFile(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("ファイル")); QCString result(decode("ファイル"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trNamespace(bool first_capital, bool singular) virtual QCString trNamespace(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("名前空間")); QCString result(decode("名前空間"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trGroup(bool first_capital, bool singular) virtual QCString trGroup(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("グループ")); QCString result(decode("グループ"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trPage(bool first_capital, bool singular) virtual QCString trPage(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("ページ")); QCString result(decode("ページ"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trMember(bool first_capital, bool singular) virtual QCString trMember(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("メンバ")); QCString result(decode("メンバ"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trField(bool first_capital, bool singular) virtual QCString trField(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("フィールド")); QCString result(decode("フィールド"));
return result; return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trGlobal(bool first_capital, bool singular) virtual QCString trGlobal(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("グローバル")); QCString result(decode("グローバル"));
...@@ -1299,11 +1333,11 @@ class TranslatorJapanese : public Translator ...@@ -1299,11 +1333,11 @@ class TranslatorJapanese : public Translator
/*! This text is generated when the \\author command is used and /*! This text is generated when the \\author command is used and
* for the author section in man pages. */ * for the author section in man pages. */
virtual QCString trAuthor(bool first_capital, bool singular) virtual QCString trAuthor(bool first_capital, bool singular)
{ {
first_capital = first_capital; first_capital = first_capital;
singular = singular; singular = singular;
QCString result(decode("作者")); QCString result(decode("作者"));
return result; return result;
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1321,7 +1355,7 @@ class TranslatorJapanese : public Translator ...@@ -1321,7 +1355,7 @@ class TranslatorJapanese : public Translator
// new since 1.2.13 // new since 1.2.13
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
* members that are implemented by this one. * members that are implemented by this one.
*/ */
virtual QCString trImplementedFromList(int numEntries) virtual QCString trImplementedFromList(int numEntries)
...@@ -1334,8 +1368,9 @@ class TranslatorJapanese : public Translator ...@@ -1334,8 +1368,9 @@ class TranslatorJapanese : public Translator
*/ */
virtual QCString trImplementedInList(int numEntries) virtual QCString trImplementedInList(int numEntries)
{ {
return trWriteList(numEntries)+decode("実装されています")+"."; return trWriteList(numEntries)+decode("実装されています")+".";
} }
}; };
#endif #endif
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#define TRANSLATOR_SI_H #define TRANSLATOR_SI_H
class TranslatorSlovene : public TranslatorAdapter_1_2_13 class TranslatorSlovene : public Translator
{ {
public: public:
QCString idLanguage() QCString idLanguage()
...@@ -991,6 +991,26 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13 ...@@ -991,6 +991,26 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13
{ {
return "Reference"; return "Reference";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.13
//////////////////////////////////////////////////////////////////////////
/*! used in member documentation blocks to produce a list of
* members that are implemented by this one.
*/
virtual QCString trImplementedFromList(int numEntries)
{
return "Implementira "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* all members that implement this abstract member.
*/
virtual QCString trImplementedInList(int numEntries)
{
return "Implementirano v "+trWriteList(numEntries)+".";
}
}; };
#endif #endif
......
...@@ -343,12 +343,23 @@ class XMLGenerator : public OutputDocInterface ...@@ -343,12 +343,23 @@ class XMLGenerator : public OutputDocInterface
{ {
XML_DB(("(startPreFragment)\n")); XML_DB(("(startPreFragment)\n"));
startParMode(); startParMode();
m_t << "<programlisting>"; m_t << "<preformatted>";
} }
void endPreFragment() void endPreFragment()
{ {
XML_DB(("(endPreFragment)\n")); XML_DB(("(endPreFragment)\n"));
m_t << "</programlisting>"; m_t << "</preformatted>";
}
void startVerbatimFragment()
{
XML_DB(("(startVerbatimFragment)\n"));
startParMode();
m_t << "<preformatted>";
}
void endVerbatimFragment()
{
XML_DB(("(endVerbatimFragment)\n"));
m_t << "</preformatted>";
} }
void writeRuler() void writeRuler()
{ {
...@@ -616,20 +627,21 @@ class XMLGenerator : public OutputDocInterface ...@@ -616,20 +627,21 @@ class XMLGenerator : public OutputDocInterface
startParMode(); startParMode();
m_t << "<table cols=\"" << cols << "\">\n"; m_t << "<table cols=\"" << cols << "\">\n";
} }
void endTable(bool) void endTable(bool hasCaption)
{ {
XML_DB(("endTable\n")); XML_DB(("endTable\n"));
m_t << "</row>\n</table>"; if (!hasCaption) m_t << "</row>\n";
m_t << "</table>";
} }
void startCaption() void startCaption()
{ {
XML_DB(("startCaption")); XML_DB(("startCaption"));
m_t << "<caption>"; m_t << "</row><caption>";
} }
void endCaption() void endCaption()
{ {
XML_DB(("encCaption")); XML_DB(("encCaption"));
m_t << "</caption"; m_t << "</caption>";
} }
void nextTableRow() void nextTableRow()
{ {
...@@ -639,7 +651,7 @@ class XMLGenerator : public OutputDocInterface ...@@ -639,7 +651,7 @@ class XMLGenerator : public OutputDocInterface
// we need manually add a para here because cells are // we need manually add a para here because cells are
// parsed before the table is generated, and thus // parsed before the table is generated, and thus
// are already parsed as if they are inside a paragraph. // are already parsed as if they are inside a paragraph.
m_t << "<para>"; //m_t << "<para>";
} }
void endTableRow() void endTableRow()
{ {
......
...@@ -8,7 +8,7 @@ TEMPLATE = app ...@@ -8,7 +8,7 @@ TEMPLATE = app
CONFIG = qt warn_on release CONFIG = qt warn_on release
TMAKE_CC = cxx TMAKE_CC = cxx
TMAKE_CFLAGS = -x cxx -w -D_POSIX_SOURCE -D_OSF_SOURCE -D_AES_SOURCE TMAKE_CFLAGS = -x cc -w -D_POSIX_SOURCE -D_OSF_SOURCE -D_AES_SOURCE
TMAKE_CFLAGS_WARN_ON = TMAKE_CFLAGS_WARN_ON =
TMAKE_CFLAGS_WARN_OFF = TMAKE_CFLAGS_WARN_OFF =
TMAKE_CFLAGS_RELEASE = -O2 TMAKE_CFLAGS_RELEASE = -O2
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment