Commit 79959c79 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.2.12-20011125

parent b89fdced
DOXYGEN Version 1.2.12
DOXYGEN Version 1.2.12-20011125
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (18 November 2001)
Dimitri van Heesch (25 November 2001)
DOXYGEN Version 1.2.12
DOXYGEN Version 1.2.12_20011125
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (18 November 2001)
Dimitri van Heesch (dimitri@stack.nl) (25 November 2001)
1.2.12
1.2.12-20011125
......@@ -4,6 +4,8 @@
#include <qlist.h>
#include <qstring.h>
class IMember;
class IParam
{
public:
......@@ -15,6 +17,14 @@ class IParam
virtual QString defaultValue() const = 0;
};
class IMemberReference
{
public:
virtual IMember *getMember() const = 0;
virtual QString getMemberName() const = 0;
virtual int getLineNumber() const = 0;
};
class IMember
{
public:
......
......@@ -67,6 +67,20 @@ void MainHandler::initialize()
m_compoundNameDict.insert(compHandler->name(),compHandler);
m_compoundDict.insert(compHandler->id(),compHandler);
}
// for each member
QDictIterator< QList<IMember> > mndi(m_memberNameDict);
QList<IMember> *ml;
for (;(ml=mndi.current());++mndi)
{
QListIterator<IMember> mli(*ml);
IMember *mem;
for (;(mem=mli.current());++mli)
{
((MemberHandler*)mem)->initialize(this);
}
}
}
class ErrorHandler : public QXmlErrorHandler
......
......@@ -16,6 +16,7 @@
#include "memberhandler.h"
#include "sectionhandler.h"
#include "dochandler.h"
#include "mainhandler.h"
MemberHandler::MemberHandler(IBaseHandler *parent)
: m_parent(parent), m_brief(0), m_detailed(0)
......@@ -90,6 +91,7 @@ void MemberHandler::startReferences(const QXmlAttributes& attrib)
{
MemberReference *mr = new MemberReference;
mr->m_memId = attrib.value("id");
mr->m_line = attrib.value("line").toInt();
m_references.append(mr);
m_curString="";
}
......@@ -103,6 +105,7 @@ void MemberHandler::startReferencedBy(const QXmlAttributes& attrib)
{
MemberReference *mr = new MemberReference;
mr->m_memId = attrib.value("id");
mr->m_line = attrib.value("line").toInt();
m_referencedBy.append(mr);
m_curString="";
}
......@@ -136,4 +139,22 @@ void MemberHandler::startParam(const QXmlAttributes& attrib)
m_params.append(paramHandler);
}
void MemberHandler::initialize(MainHandler *mh)
{
QListIterator<MemberReference> mli(m_references);
MemberReference *mr;
for (;(mr=mli.current());++mli)
{
mr->initialize(mh);
}
}
void MemberHandler::MemberReference::initialize(MainHandler *mh)
{
m_mainHandler = mh;
}
IMember *MemberHandler::MemberReference::getMember() const
{
return m_mainHandler->getMemberById(m_memId);
}
......@@ -25,6 +25,7 @@
#include "doxmlintf.h"
class DocHandler;
class MainHandler;
class MemberHandler : public IMember, public BaseHandler<MemberHandler>
{
......@@ -54,12 +55,21 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
virtual QString name() const { return m_name; }
virtual QListIterator<IParam> getParamIterator() const { return m_params; }
void initialize(MainHandler *m);
private:
struct MemberReference
struct MemberReference : public IMemberReference
{
QString m_memId;
QString m_name;
int line;
virtual ~MemberReference() {}
virtual IMember *getMember() const;
virtual QString getMemberName() const { return m_name; }
virtual int getLineNumber() const { return m_line; }
void initialize(MainHandler *m);
QString m_memId;
QString m_name;
int m_line;
MainHandler *m_mainHandler;
};
IBaseHandler *m_parent;
......
......@@ -2,7 +2,7 @@
% xml entities like &auml; are used for special characters
Brazilian
Fabio "FJTC" Jun Takada Chino: chino@grad.icmc.sc.usp.br
Fabio "FJTC" Jun Takada Chino: chino@icmc.sc.usp.br
Chinese
Wei Liu: liuwei@asiainfo.com
......
Name: doxygen
Version: 1.2.12
Version: 1.2.12_20011125
Summary: documentation system for C, C++ and IDL
Release: 4
Source: doxygen-%{version}.src.tar.gz
......
......@@ -84,9 +84,8 @@ ClassDef::ClassDef(
m_fileDef=0;
m_usesImplClassDict=0;
m_usesIntfClassDict=0;
m_memberGroupList = new MemberGroupList;
m_memberGroupList->setAutoDelete(TRUE);
m_memberGroupDict = new MemberGroupDict(17);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
m_innerClasses = new ClassSDict(17);
//int i=name().findRev("::"); // TODO: broken if A<N::C> is the class name
//if (i==-1)
......@@ -117,8 +116,7 @@ ClassDef::~ClassDef()
delete m_usesImplClassDict;
delete m_usesIntfClassDict;
delete m_incInfo;
delete m_memberGroupList;
delete m_memberGroupDict;
delete memberGroupSDict;
delete m_innerClasses;
delete m_templateInstances;
delete m_templBaseClassNames;
......@@ -157,29 +155,29 @@ void ClassDef::insertSubClass(ClassDef *cd,Protection p,
void ClassDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&pubTypes,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubSlots,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&signals,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&dcopMethods,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubStaticMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubStaticAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proTypes,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proSlots,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proStaticMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proStaticAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priTypes,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priSlots,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priStaticMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priStaticAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&friends,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&related,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&properties,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubTypes,memberGroupSDict);
::addMembersToMemberGroup(&pubMembers,memberGroupSDict);
::addMembersToMemberGroup(&pubAttribs,memberGroupSDict);
::addMembersToMemberGroup(&pubSlots,memberGroupSDict);
::addMembersToMemberGroup(&signals,memberGroupSDict);
::addMembersToMemberGroup(&dcopMethods,memberGroupSDict);
::addMembersToMemberGroup(&pubStaticMembers,memberGroupSDict);
::addMembersToMemberGroup(&pubStaticAttribs,memberGroupSDict);
::addMembersToMemberGroup(&proTypes,memberGroupSDict);
::addMembersToMemberGroup(&proMembers,memberGroupSDict);
::addMembersToMemberGroup(&proAttribs,memberGroupSDict);
::addMembersToMemberGroup(&proSlots,memberGroupSDict);
::addMembersToMemberGroup(&proStaticMembers,memberGroupSDict);
::addMembersToMemberGroup(&proStaticAttribs,memberGroupSDict);
::addMembersToMemberGroup(&priTypes,memberGroupSDict);
::addMembersToMemberGroup(&priMembers,memberGroupSDict);
::addMembersToMemberGroup(&priAttribs,memberGroupSDict);
::addMembersToMemberGroup(&priSlots,memberGroupSDict);
::addMembersToMemberGroup(&priStaticMembers,memberGroupSDict);
::addMembersToMemberGroup(&priStaticAttribs,memberGroupSDict);
::addMembersToMemberGroup(&friends,memberGroupSDict);
::addMembersToMemberGroup(&related,memberGroupSDict);
::addMembersToMemberGroup(&properties,memberGroupSDict);
}
// adds new member definition to the class
......@@ -527,7 +525,7 @@ void ClassDef::computeAnchors()
void ClassDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -737,8 +735,17 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (!nm.isEmpty())
{
ol.startTypewriter();
ol.docify("#include ");
if (m_incInfo->local)
bool isIDLorJava = nm.right(4)==".idl" ||
nm.right(5)==".java";
if (isIDLorJava)
{
ol.docify("import ");
}
else
{
ol.docify("#include ");
}
if (m_incInfo->local || isIDLorJava)
ol.docify("\"");
else
ol.docify("<");
......@@ -756,10 +763,12 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.docify(nm);
}
ol.popGeneratorState();
if (m_incInfo->local)
if (m_incInfo->local || isIDLorJava)
ol.docify("\"");
else
ol.docify(">");
if (isIDLorJava)
ol.docify(";");
ol.endTypewriter();
ol.newParagraph();
}
......@@ -973,7 +982,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.startMemberSections();
// write user defined member groups
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -1485,7 +1494,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
ol.endMemberItem(FALSE);
// write user defined member groups
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -2361,7 +2370,7 @@ void ClassDef::addListReferences()
theTranslator->trClass(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -39,8 +39,7 @@ class MemberDef;
class ExampleSDict;
class MemberNameInfoSDict;
class UsesClassDict;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class QTextStream;
class PackageDef;
class GroupDef;
......@@ -235,6 +234,9 @@ class ClassDef : public Definition
MemberList variableMembers;
MemberList propertyMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
/*! \} Public API */
/*! \name Doxygen internal API
......@@ -377,9 +379,6 @@ class ClassDef : public Definition
*/
ClassSDict *m_innerClasses;
/* user defined member groups */
MemberGroupList *m_memberGroupList;
MemberGroupDict *m_memberGroupDict;
/* classes for the collaboration diagram */
UsesClassDict *m_usesImplClassDict;
......
......@@ -1967,9 +1967,9 @@ void parseCode(OutputDocInterface &od,const char *className,const QCString &s,
codeYYrestart( codeYYin );
BEGIN( Body );
codeYYlex();
endFontClass();
if (g_inputLines==1)
{
endFontClass();
g_code->endCodeLine();
}
od.append(g_code);
......
......@@ -85,7 +85,9 @@ static int yyread(char *buf,int max_size)
[1-9][0-9]*[uUlL]* { g_strToken=yytext;
return TOK_DECIMALINT;
}
(0x|0X)[0-9a-fA-F]+[uUlL]* { g_strToken=yytext; return TOK_HEXADECIMALINT; }
(0x|0X)[0-9a-fA-F]+[uUlL]* { g_strToken=yytext+2;
return TOK_HEXADECIMALINT;
}
(([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+))([eE]([\-\+])?[0-9]+)?([fFlL])? {
g_strToken=yytext; return TOK_FLOAT;
}
......@@ -106,7 +108,7 @@ bool parseCppExpression(const char *fileName,int lineNr,const QCString &s)
g_inputPosition = 0;
cppExpYYrestart( cppExpYYin );
cppExpYYparse();
//printf("Result: %ld\n",(long)resultValue);
//printf("Result: %ld\n",(long)g_resultValue);
return (long)g_resultValue!=0;
}
......
......@@ -50,6 +50,7 @@ CPPValue parseHexadecimal()
else if (*p >= 'a' && *p <= 'f') val = val * 16 + *p - 'a' + 10;
else if (*p >= 'A' && *p <= 'F') val = val * 16 + *p - 'A' + 10;
}
//printf("parseHexadecimal %s->%x\n",g_strToken.data(),val);
return CPPValue(val);
}
......
......@@ -377,13 +377,17 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
{
name.prepend(scope+"::");
}
Definition *d = md->getOuterScope();
if (d==Doxygen::globalScope) d=md->getBodyDef();
if (md->getStartBodyLine()!=-1 && md->getBodyDef())
{
//printf("md->getBodyDef()=%p global=%p\n",md->getBodyDef(),Doxygen::globalScope);
// for HTML write a real link
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
QCString lineStr,anchorStr;
anchorStr.sprintf("l%05d",md->getStartBodyLine());
//printf("Write object link to %s\n",md->getBodyDef()->getSourceFileBase().data());
ol.writeObjectLink(0,md->getBodyDef()->getSourceFileBase(),anchorStr,name);
ol.popGeneratorState();
......@@ -393,9 +397,8 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
ol.docify(name);
ol.popGeneratorState();
}
else if (md->isLinkable() && md->getOuterScope())
else if (md->isLinkable() && d && d->isLinkable())
{
Definition *d = md->getOuterScope();
// for HTML write a real link
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
......
......@@ -913,7 +913,7 @@ TT [tT][tT]
UL [uU][lL]
VAR [vV][aA][rR]
BLOCKQUOTE [bB][lL][oO][cC][kK][qQ][uU][oO][tT][eE]
DOCPARAM ("#")?([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
DOCPARAM ("#")?([a-z_A-Z0-9:\!\<\~\>\^\&\=\.\-]+)|("\"".*"\"")
OPNEW {B}+"new"({B}*"[]")?
OPDEL {B}+"delete"({B}*"[]")?
OPARG "("[a-z_A-Z0-9,\<\> \t\*\&]*")"
......
......@@ -1520,6 +1520,16 @@ bool DotInclDepGraph::isTrivial() const
return m_startNode->m_children==0;
}
void DotInclDepGraph::writeXML(QTextStream &t)
{
QDictIterator<DotNode> dni(*m_usedNodes);
DotNode *node;
for (;(node=dni.current());++dni)
{
node->writeXML(t);
}
}
//-------------------------------------------------------------
void generateGraphLegend(const char *path)
......
......@@ -151,6 +151,7 @@ class DotInclDepGraph
bool writeImageMap=TRUE);
bool isTrivial() const;
QCString diskName() const;
void writeXML(QTextStream &t);
private:
void buildGraph(DotNode *n,FileDef *fd,int distance);
......
......@@ -7102,6 +7102,7 @@ void generateOutput()
exit(1);
}
Doxygen::tagFile.setDevice(tag);
Doxygen::tagFile << "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>" << endl;
Doxygen::tagFile << "<tagfile>" << endl;
}
......
......@@ -17,6 +17,11 @@
// includes
#ifdef _WIN32
#include <windows.h> // for AllocConsole
#endif
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
......@@ -805,7 +810,11 @@ void getConfig(const char *s)
int l;
char configFile[MAXSTRLEN];
strcpy(configFile,s);
#if defined(_WIN32)
strcat(configFile,"\\search.cfg");
#else
strcat(configFile,"/search.cfg");
#endif
FILE *f;
if ((f=fopen(configFile,"r"))==NULL)
......@@ -860,6 +869,10 @@ void strlowercpy(char *d,const char *s)
int main(int argc,char **argv)
{
#ifdef _WIN32
AllocConsole();
#endif
#ifdef PROFILING
struct timeval tv_start,tv_end;
gettimeofday(&tv_start,0);
......
......@@ -64,9 +64,8 @@ FileDef::FileDef(const char *p,const char *nm,const char *lref)
{
docname.prepend(stripFromPath(path.copy()));
}
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
}
/*! destroy the file definition */
......@@ -81,8 +80,7 @@ FileDef::~FileDef()
delete srcMemberDict;
delete usingDirList;
delete usingDeclList;
delete memberGroupList;
delete memberGroupDict;
delete memberGroupSDict;
}
/*! Compute the HTML anchor names for all members in the class */
......@@ -93,7 +91,7 @@ void FileDef::computeAnchors()
void FileDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -161,9 +159,22 @@ void FileDef::writeDocumentation(OutputList &ol)
for (;(ii=ili.current());++ili)
{
FileDef *fd=ii->fileDef;
bool isIDLorJava = FALSE;
if (fd)
{
isIDLorJava = fd->name().right(4)==".idl" ||
fd->name().right(5)==".java";
}
ol.startTypewriter();
ol.docify("#include ");
if (ii->local)
if (isIDLorJava)
{
ol.docify("import ");
}
else
{
ol.docify("#include ");
}
if (ii->local || isIDLorJava)
ol.docify("\"");
else
ol.docify("<");
......@@ -185,10 +196,12 @@ void FileDef::writeDocumentation(OutputList &ol)
}
ol.enableAll();
if (ii->local)
if (ii->local || isIDLorJava)
ol.docify("\"");
else
ol.docify(">");
if (isIDLorJava)
ol.docify(";");
ol.endTypewriter();
ol.disable(OutputGenerator::RTF);
ol.lineBreak();
......@@ -301,7 +314,7 @@ void FileDef::writeDocumentation(OutputList &ol)
classSDict->writeDeclaration(ol);
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -425,13 +438,10 @@ void FileDef::writeSource(OutputList &ol)
initParseCodeContext();
ol.startCodeFragment();
//if (name().left(9)=="memory.c")
//{
parseCode(ol,0,
fileToString(absFilePath(),Config_getBool("FILTER_SOURCE_FILES")),
FALSE,0,this
);
//}
ol.endCodeFragment();
endFile(ol);
ol.enableAll();
......@@ -440,12 +450,12 @@ void FileDef::writeSource(OutputList &ol)
void FileDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decDefineMembers,memberGroupSDict);
::addMembersToMemberGroup(&decProtoMembers,memberGroupSDict);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumMembers,memberGroupSDict);
::addMembersToMemberGroup(&decFuncMembers,memberGroupSDict);
::addMembersToMemberGroup(&decVarMembers,memberGroupSDict);
}
/*! Adds member definition \a md to the list of all members of this file */
......@@ -631,7 +641,7 @@ void FileDef::addListReferences()
theTranslator->trFile(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -37,8 +37,7 @@ class OutputList;
class NamespaceDef;
class NamespaceList;
class NamespaceDict;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class PackageDef;
struct IncludeInfo
......@@ -169,6 +168,9 @@ class FileDef : public Definition
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
private:
ClassSDict *classSDict;
......@@ -191,9 +193,6 @@ class FileDef : public Definition
QIntDict<MemberDef> *srcMemberDict;
bool isSource;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
PackageDef *package;
};
......
......@@ -46,9 +46,8 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t) :
allMemberNameInfoSDict = new MemberNameInfoSDict(17);
fileName = (QCString)"group_"+na;
setGroupTitle( t );
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
decDefineMembers.setInGroup(TRUE);
decProtoMembers.setInGroup(TRUE);
......@@ -79,8 +78,7 @@ GroupDef::~GroupDef()
delete exampleDict;
delete allMemberList;
delete allMemberNameInfoSDict;
delete memberGroupList;
delete memberGroupDict;
delete memberGroupSDict;
}
void GroupDef::setGroupTitle( const char *t )
......@@ -101,7 +99,7 @@ void GroupDef::setGroupTitle( const char *t )
void GroupDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -147,16 +145,16 @@ void GroupDef::addExample(const PageInfo *def)
void GroupDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumValMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decDefineMembers,memberGroupSDict);
::addMembersToMemberGroup(&decProtoMembers,memberGroupSDict);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumValMembers,memberGroupSDict);
::addMembersToMemberGroup(&decFuncMembers,memberGroupSDict);
::addMembersToMemberGroup(&decVarMembers,memberGroupSDict);
//printf("GroupDef::addMembersToMemberGroup() memberGroupList=%d\n",memberGroupList->count());
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -476,7 +474,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
if (allMemberList->count()>0)
{
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -740,7 +738,7 @@ void GroupDef::addListReferences()
theTranslator->trGroup(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -33,8 +33,7 @@ class NamespaceDef;
class GroupList;
class OutputList;
class NamespaceList;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class MemberNameInfoSDict;
class PageSDict;
class PageInfo;
......@@ -82,6 +81,26 @@ class GroupDef : public Definition
friend void writeGroupTreeNode(OutputList&, GroupDef*,bool);
// make accessible for writing tree view of group in index.cpp - KPW
// members in the declaration part of the documentation
MemberList decDefineMembers;
MemberList decProtoMembers;
MemberList decTypedefMembers;
MemberList decEnumMembers;
MemberList decEnumValMembers;
MemberList decFuncMembers;
MemberList decVarMembers;
// members in the documentation part of the documentation
MemberList docDefineMembers;
MemberList docProtoMembers;
MemberList docTypedefMembers;
MemberList docEnumMembers;
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
protected:
void addMemberListToGroup(MemberList *,bool (MemberDef::*)() const);
......@@ -100,26 +119,7 @@ class GroupDef : public Definition
MemberList *allMemberList;
MemberNameInfoSDict *allMemberNameInfoSDict;
// members in the declaration part of the documentation
MemberList decDefineMembers;
MemberList decProtoMembers;
MemberList decTypedefMembers;
MemberList decEnumMembers;
MemberList decEnumValMembers;
MemberList decFuncMembers;
MemberList decVarMembers;
// members in the documentation part of the documentation
MemberList docDefineMembers;
MemberList docProtoMembers;
MemberList docTypedefMembers;
MemberList docEnumMembers;
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupList *memberGroupList; // list of member groups in this group
MemberGroupDict *memberGroupDict;
};
class GroupSDict : public SDict<GroupDef>
......
......@@ -427,14 +427,14 @@ QCString MemberDef::getOutputFileBase() const
{
return classDef->getOutputFileBase();
}
else if (fileDef)
{
return fileDef->getOutputFileBase();
}
else if (nspace)
{
return nspace->getOutputFileBase();
}
else if (fileDef)
{
return fileDef->getOutputFileBase();
}
warn(m_defFileName,m_defLine,
"Warning: Internal inconsistency: member %s does not belong to any"
" container!",name().data()
......
......@@ -20,7 +20,7 @@
#include "qtbc.h"
#include <qlist.h>
#include <qintdict.h>
#include "sortdict.h"
#define NOGROUP -1
......@@ -33,7 +33,7 @@ class GroupDef;
class OutputList;
class Definition;
class MemberGroup /* : public Definition */
class MemberGroup
{
public:
MemberGroup(int id,const char *header,const char *docs);
......@@ -66,6 +66,7 @@ class MemberGroup /* : public Definition */
int numDocMembers() const;
void setInGroup(bool b);
void addListReferences(Definition *d);
MemberList *members() const { return memberList; }
private:
MemberList *memberList; // list of all members in the group
......@@ -97,6 +98,13 @@ class MemberGroupDict : public QIntDict<MemberGroup>
~MemberGroupDict() {}
};
class MemberGroupSDict : public SIntDict<MemberGroup>
{
public:
MemberGroupSDict(int size=17) : SIntDict<MemberGroup>(size) {}
~MemberGroupSDict() {}
};
class MemberGroupDictIterator : public QIntDictIterator<MemberGroup>
{
public:
......
......@@ -38,9 +38,8 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
usingDirList = 0;
usingDeclList = 0;
setReference(lref);
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
}
NamespaceDef::~NamespaceDef()
......@@ -50,13 +49,12 @@ NamespaceDef::~NamespaceDef()
delete m_innerCompounds;
delete usingDirList;
delete usingDeclList;
delete memberGroupList;
delete memberGroupDict;
delete memberGroupSDict;
}
void NamespaceDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -96,44 +94,15 @@ void NamespaceDef::insertNamespace(NamespaceDef *nd)
}
}
#if 0
void NamespaceDef::addMemberListToGroup(MemberList *ml,
bool (MemberDef::*func)() const)
{
MemberListIterator mli(*ml);
MemberDef *md;
for (;(md=mli.current());++mli)
{
int groupId=md->getMemberGroupId();
if ((md->*func)() && groupId!=-1)
{
QCString *pGrpHeader = Doxygen::memberHeaderDict[groupId];
QCString *pDocs = Doxygen::memberDocDict[groupId];
if (pGrpHeader)
{
MemberGroup *mg = memberGroupDict->find(groupId);
if (mg==0)
{
mg = new MemberGroup(groupId,*pGrpHeader,pDocs ? pDocs->data() : 0);
memberGroupDict->insert(groupId,mg);
memberGroupList->append(mg);
}
mg->insertMember(md);
md->setMemberGroup(mg);
}
}
}
}
#endif
void NamespaceDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decDefineMembers,memberGroupSDict);
::addMembersToMemberGroup(&decProtoMembers,memberGroupSDict);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumMembers,memberGroupSDict);
::addMembersToMemberGroup(&decFuncMembers,memberGroupSDict);
::addMembersToMemberGroup(&decVarMembers,memberGroupSDict);
}
void NamespaceDef::insertMember(MemberDef *md)
......@@ -199,12 +168,6 @@ void NamespaceDef::insertMember(MemberDef *md)
void NamespaceDef::computeAnchors()
{
setAnchors('a',&allMemberList);
//MemberGroupListIterator mgli(*memberGroupList);
//MemberGroup *mg;
//for (;(mg=mgli.current());++mgli)
//{
// mg->setAnchors();
//}
}
void NamespaceDef::writeDocumentation(OutputList &ol)
......@@ -249,7 +212,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
classSDict->writeDeclaration(ol);
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -380,7 +343,7 @@ void NamespaceDef::addListReferences()
theTranslator->trNamespace(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -31,8 +31,7 @@ class OutputList;
class ClassSDict;
class MemberDef;
class NamespaceList;
class MemberGroupDict;
class MemberGroupList;
class MemberGroupSDict;
class NamespaceSDict;
class NamespaceDef : public Definition
......@@ -97,6 +96,9 @@ class NamespaceDef : public Definition
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
/*! Classes inside this namespace */
ClassSDict *classSDict;
/*! Namespaces inside this namespace */
......@@ -114,9 +116,6 @@ class NamespaceDef : public Definition
MemberList allMemberList;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
};
class NamespaceList : public QList<NamespaceDef>
......
......@@ -267,6 +267,7 @@ FORALL1(SectionTypes a1,a1)
FORALL1(bool a1,a1)
FORALL2(bool a1,int a2,a1,a2)
FORALL2(bool a1,bool a2,a1,a2)
FORALL4(const char *a1,const char *a2,const char *a3,bool a4,a1,a2,a3,a4)
#endif
FORALL2(int a1,bool a2,a1,a2)
FORALL1(IndexSections a1,a1)
......@@ -277,7 +278,6 @@ FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3)
FORALL3(uchar a1,uchar a2,uchar a3,a1,a2,a3)
FORALL4(const char *a1,const char *a2,const char *a3,const char *a4,a1,a2,a3,a4)
FORALL4(const char *a1,const char *a2,const char *a3,bool a4,a1,a2,a3,a4)
FORALL4(const char *a1,const char *a2,const char *a3,int a4,a1,a2,a3,a4)
......
......@@ -478,6 +478,7 @@ class OutputList : public OutputDocInterface
FORALLPROTO1(bool);
FORALLPROTO2(bool,int);
FORALLPROTO2(bool,bool);
FORALLPROTO4(const char *,const char *,const char *,int);
#endif
FORALLPROTO2(int,bool);
FORALLPROTO2(const char *,const char *);
......@@ -488,7 +489,6 @@ class OutputList : public OutputDocInterface
FORALLPROTO3(ClassDiagram &,const char *,const char *);
FORALLPROTO4(const char *,const char *,const char *,const char *);
FORALLPROTO4(const char *,const char *,const char *,bool);
FORALLPROTO4(const char *,const char *,const char *,int);
OutputList(const OutputList &ol);
QList<OutputGenerator> *outputs;
......
......@@ -721,7 +721,7 @@ QCString removeIdsAndMarkers(const char *s)
p++;
inNum=TRUE;
}
else if (c=='d') // identifier starting with a `d'
else if (c=='d' && !inNum) // identifier starting with a `d'
{
if (strncmp(p,"defined ",8)==0 || strncmp(p,"defined(",8)==0)
// defined keyword
......@@ -745,7 +745,7 @@ QCString removeIdsAndMarkers(const char *s)
{
result+=c;
char lc=tolower(c);
if (lc!='l' && lc!='u') inNum=FALSE;
if (!isId(lc) && lc!='.' && lc!='-' && lc!='+') inNum=FALSE;
p++;
}
}
......
......@@ -177,7 +177,6 @@ static void initParser()
isTypedef = FALSE;
autoGroupStack.clear();
insideTryBlock = FALSE;
insideIDL = FALSE;
autoGroupStack.setAutoDelete(TRUE);
lastDefGroup.groupname.resize(0);
}
......@@ -379,6 +378,7 @@ static void setContext()
QCString fileName = yyFileName;
insideIDL = fileName.right(4)==".idl";
insideJava = fileName.right(5)==".java";
//printf("setContext(%s) insideIDL=%d\n",yyFileName,insideIDL);
}
static void prependScope()
......
......@@ -22,6 +22,7 @@
#include "qtbc.h"
#include <qlist.h>
#include <qdict.h>
#include <qintdict.h>
#define AUTORESIZE 1
......@@ -63,6 +64,7 @@ const uint SDict_primes[] =
#endif
template<class T> class SDict;
template<class T> class SIntDict;
/*! internal wrapper class that redirects compareItems() to the
* dictionary
......@@ -270,4 +272,210 @@ class SDict
};
/*! internal wrapper class that redirects compareItems() to the
* dictionary
*/
template<class T>
class SIntList : public QList<T>
{
public:
SIntList(SIntDict<T> *owner) : m_owner(owner) {}
~SIntList() {}
int compareItems(GCI item1,GCI item2)
{
return m_owner->compareItems(item1,item2);
}
private:
SIntDict<T> *m_owner;
};
/*! Ordered dictionary of elements of type T.
* Internally uses a QList<T> and a QIntDict<T>.
*/
template<class T>
class SIntDict
{
private:
SIntList<T> *m_list;
QIntDict<T> *m_dict;
int m_sizeIndex;
public:
/*! Create an ordered dictionary.
* \param size The size of the dictionary. Should be a prime number for
* best distribution of elements.
*/
SIntDict(int size) : m_sizeIndex(0)
{
m_list = new SIntList<T>(this);
#if AUTORESIZE
while ((uint)size>SDict_primes[m_sizeIndex]) m_sizeIndex++;
m_dict = new QIntDict<T>(SDict_primes[m_sizeIndex]);
#else
m_dict = new QIntDict<T>(size);
#endif
}
/*! Destroys the dictionary */
virtual ~SIntDict()
{
delete m_list;
delete m_dict;
}
/*! Appends a compound to the dictionary. The element is owned by the
* dictionary.
* \param key The unique key to use to quicky find the item later on.
* \param d The compound to add.
* \sa find()
*/
void append(int key,const T *d)
{
m_list->append(d);
m_dict->insert(key,d);
#if AUTORESIZE
if (m_dict->size()>SDict_primes[m_sizeIndex])
{
m_dict->resize(SDict_primes[++m_sizeIndex]);
}
#endif
}
/*! Remove an item from the dictionary */
bool remove(int key)
{
T *item = m_dict->take(key);
return item ? m_list->remove(item) : FALSE;
}
/*! Sorts the members of the dictionary. First appending a number
* of members and then sorting them is faster (O(NlogN) than using
* inSort() for each member (O(N^2)).
*/
void sort()
{
m_list->sort();
}
/*! Inserts a compound into the dictionary in a sorted way.
* \param key The unique key to use to quicky find the item later on.
* \param d The compound to add.
* \sa find()
*/
void inSort(int key,const T *d)
{
m_list->inSort(d);
m_dict->insert(key,d);
#if AUTORESIZE
if (m_dict->size()>SDict_primes[m_sizeIndex])
{
m_dict->resize(SDict_primes[++m_sizeIndex]);
}
#endif
}
/*! Indicates whether or not the dictionary owns its elements */
void setAutoDelete(bool val)
{
m_list->setAutoDelete(val);
}
/*! Looks up a compound given its key.
* \param key The key to identify this element.
* \return The requested compound or zero if it cannot be found.
* \sa append()
*/
T *find(int key)
{
return m_dict->find(key);
}
/*! Equavalent to find(). */
T *operator[](int key) const
{
return m_dict->find(key);
}
/*! Returns the item at position \a i in the sorted dictionary */
T *at(uint i)
{
return m_list->at(i);
}
/*! Function that is used to compare two items when sorting.
* Overload this to properly sort items.
* \sa inSort()
*/
virtual int compareItems(GCI item1,GCI item2)
{
return item1!=item2;
}
/*! Clears the dictionary. Will delete items if setAutoDelete() was
* set to \c TRUE.
* \sa setAutoDelete
*/
void clear()
{
m_list->clear();
m_dict->clear();
}
/*! Returns the number of items stored in the dictionary
*/
int count()
{
return m_list->count();
}
class Iterator; // first forward declare
friend class Iterator; // then make it a friend
/*! Simple iterator for SDict. It iterates in the order in which the
* elements are stored.
*/
class Iterator
{
public:
/*! Create an iterator given the dictionary. */
Iterator(const SIntDict<T> &dict)
{
m_li = new QListIterator<T>(*dict.m_list);
}
/*! Destroys the dictionary */
virtual ~Iterator()
{
delete m_li;
}
/*! Set the iterator to the first element in the list.
* \return The first compound, or zero if the list was empty.
*/
T *toFirst() const
{
return m_li->toFirst();
}
/*! Set the iterator to the last element in the list.
* \return The first compound, or zero if the list was empty.
*/
T *toLast() const
{
return m_li->toLast();
}
/*! Returns the current compound */
T *current() const
{
return m_li->current();
}
/*! Moves the iterator to the next element.
* \return the new "current" element, or zero if the iterator was
* already pointing at the last element.
*/
T *operator++()
{
return m_li->operator++();
}
/*! Moves the iterator to the previous element.
* \return the new "current" element, or zero if the iterator was
* already pointing at the first element.
*/
T *operator--()
{
return m_li->operator--();
}
private:
QListIterator<T> *m_li;
};
};
#endif
......@@ -11,13 +11,17 @@
* input used in their production; they are not affected by this license.
*
* Brazilian Portuguese version by
* Fabio "FJTC" Jun Takada Chino <chino@grad.icmc.sc.usp.br>
* Version: 1.2.8.2 (2001/07/24)
* Fabio "FJTC" Jun Takada Chino <chino@icmc.sc.usp.br>
* http://www.icmc.sc.usp.br/~chino
* Version: 1.2.11 (2001/11/23)
*
* News:
* - Everything was revised.
*/
#ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H
class TranslatorBrazilian: public TranslatorAdapter_1_2_11
class TranslatorBrazilian: public Translator
{
public:
......@@ -61,7 +65,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
{ return "(Note que estes não são funções membros.)"; }
{ return "(Note que estas não são funções membros.)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
......@@ -102,15 +106,15 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
{ return "Lista de Membros"; }
{ return "Lista dos Membros"; }
/*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers()
{ return "Esta é a lista completa dos membros da "; }
{ return "Esta é a lista de todos os membros da "; }
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
{ return ", incluindo todos os membros herdados."; }
{ return ", incluindo os membros herdados."; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
......@@ -118,7 +122,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="Gerado automaticamente por Doxygen";
if (s) result+=(QCString)" para "+s;
result+=" a partir do código-fonte.";
result+=" a partir de seu código-fonte.";
return result;
}
......@@ -207,7 +211,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
{ return "Esta lista de hierarquia é parcialmente ordenada em ordem alfabética:"; }
{ return "Esta lista de hierarquia está parcialmente ordenada em ordem alfabética:"; }
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
......@@ -235,7 +239,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="Aqui está a lista de todos os membros de classes ";
QCString result="Esta é lista de todos os membros das classes ";
if (!extractAll) result+="documentados ";
result+="com links para ";
if (extractAll)
......@@ -248,7 +252,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the page with all file members. */
virtual QCString trFileMembersDescription(bool extractAll)
{
QCString result="Aqui esta a lista de ";
QCString result="Esta é a lista de ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="tadas as funções, variáveis, definições, enumerações e definições de tipos ";
......@@ -271,25 +275,25 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the page with the list of all header files. */
virtual QCString trHeaderFilesDescription()
{ return "Aqui estão os arquivos de cabeçalho que compõe a API:"; }
{ return "Estes são os arquivos de cabeçalho que compõe a API:"; }
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return "Aqui está a lista de todos os exemplos:"; }
{ return "Esta é a lista de todos os exemplos:"; }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
{ return "Aqui está a lista de toda a documentação relacionadas:"; }
{ return "Esta é a lista de toda a documentação relacionadas:"; }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
{ return "Aqui está a lista de todos os médulos:"; }
{ return "Esta é a lista de todos os médulos:"; }
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
virtual QCString trNoDescriptionAvailable()
{ return "Sem descriçãodisponível"; }
{ return "Sem descrição disponível"; }
// index titles (the project name is prepended for these)
......@@ -302,7 +306,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* index of all groups.
*/
virtual QCString trModuleIndex()
{ return "Índice de Módulos"; }
{ return "Índice dos Módulos"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
......@@ -363,7 +367,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return "Manual de Referência"; }
{ return "Guia de Referência"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
......@@ -417,13 +421,13 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return "Protótipos de funções"; }
{ return "Protótipos das funções"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return "Definições de tipos"; }
{ return "Definições dos tipos"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
......@@ -552,7 +556,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* friends of a class
*/
virtual QCString trFriends()
{ return "Amigos"; }
{ return "Amigas"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
......@@ -562,7 +566,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return "Amigos e Funções Relacionadas"; }
{ return "Amigas e Funções Relacionadas"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
......@@ -777,7 +781,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
virtual QCString trSources()
{
return "Fontes";
return "Códigos-Fonte";
}
virtual QCString trDefinedAtLineInSourceFile()
{
......@@ -794,8 +798,9 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
virtual QCString trDeprecated()
{
/* This note is for brazilians.
Esta é uma boa tradução para "deprecated"?
/*
* This note is for brazilians only.
* Esta é uma boa tradução para "deprecated"?
*/
return "Descontinuada";
}
......@@ -935,7 +940,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Lista de tarefas futuras";
return "Lista de Tarefas Futuras";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1049,7 +1054,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Lista de Teste";
return "Lista de Testes";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1150,8 +1155,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! 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>
* Codepage number:
* Charset Name Charset Value(hex) Codepage number
......@@ -1298,5 +1302,16 @@ and
if (!singular) result+="es";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Referências";
}
};
#endif
......@@ -20,10 +20,24 @@
* d2set@d2set.org).
*/
/******************************************************************************
* History of content
*
* Date | Description
* ============+=============================================================
* 2001-11-22 | Removed obsolet methods:
* | QCString latexBabelPackage()
* | QCString trAuthor()
* | QCString trAuthors()
* | QCString trFiles()
* | QCString trIncludeFile()
* | QCString trVerbatimText(const char *f)
* -------------+------------------------------------------------------------
*/
#ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H
class TranslatorFrench : public TranslatorAdapter_1_2_11
class TranslatorFrench : public Translator
{
public:
QCString idLanguage()
......@@ -46,9 +60,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
{
return "\\usepackage[french]{babel}\n";
}
/*! returns the name of the package that is included by LaTeX */
QCString latexBabelPackage()
{ return "french"; }
/*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset()
......@@ -126,14 +137,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trDefinedIn()
{ return "défini dans"; }
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
QCString trIncludeFile()
{ return "Fichier inclu"; }
QCString trVerbatimText(const char *f)
{ return (QCString)"Ce texte provient du fichier inclu "+f+"."; }
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
......@@ -351,10 +354,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trEnumerationValues()
{ return "Éléments énumérés"; }
/*! This is used in man pages as the author section. */
QCString trAuthor()
{ return "Auteur"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
......@@ -403,12 +402,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trCompounds()
{ return "Composants"; }
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
QCString trFiles()
{ return "Fichiers"; }
/*! This is used in the standard footer of each page and indicates when
* the page was generated
*/
......@@ -458,10 +451,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trDate()
{ return "Date"; }
/*! this text is generated when the \\author command is used. */
QCString trAuthors()
{ return "Auteur(s)"; }
/*! this text is generated when the \\return command is used. */
QCString trReturns()
{ return "Renvoie"; }
......@@ -1233,5 +1222,15 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Références";
}
};
#endif
......@@ -22,6 +22,8 @@
* Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (since June 1999)
* Updates:
* 2001/11: corrected the translation fixing the issues reported by the translator.pl script
* translated new items used since version 1.2.11
* 2001/08: corrected the translation fixing the issues reported by the translator.pl script
* translated new items used since version 1.2.7
* 2001/05: adopted new translation mechanism (trough adapters),
......@@ -53,13 +55,13 @@
* tecnica (ad es "lista dei file" e non "lista dei files")
*
* Se avete suggerimenti sulla traduzione di alcuni termini o volete segnalare
* eventuali sviste potete scrivermi all'indirizzo: a.falappa@flashnet.it
* eventuali sviste potete scrivermi all'indirizzo: afalappa@interfree.it
*/
#ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H
class TranslatorItalian : public TranslatorAdapter_1_2_11
class TranslatorItalian : public Translator
{
public:
......@@ -1308,6 +1310,17 @@ class TranslatorItalian : public TranslatorAdapter_1_2_11
result+=(singular ? "e" : "i");
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Riferimenti";
}
};
#endif
This diff is collapsed.
......@@ -18,7 +18,7 @@
#ifndef TRANSLATOR_NL_H
#define TRANSLATOR_NL_H
class TranslatorDutch : public TranslatorAdapter_1_2_11
class TranslatorDutch : public Translator
{
public:
QCString idLanguage()
......@@ -964,6 +964,17 @@ class TranslatorDutch : public TranslatorAdapter_1_2_11
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Gebruikt";
}
};
#endif
......@@ -18,16 +18,18 @@
*
* VERSION HISTORY
* ---------------
* 002 19 november 2001
* ! Updated for doxygen v1.2.12
* 001 20 july 2001
* - Updated for doxygen v1.2.8.1
* ! Updated for doxygen v1.2.8.1
* 000 ?
* - Initial translation for doxygen v1.1.5
* + Initial translation for doxygen v1.1.5
*/
#ifndef TRANSLATOR_PT_H
#define TRANSLATOR_PT_H
class TranslatorPortuguese : public TranslatorAdapter_1_2_11
class TranslatorPortuguese : public Translator
{
public:
......@@ -1348,5 +1350,17 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_11
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Referências";
}
};
#endif
......@@ -21,7 +21,7 @@
#define TRANSLATOR_SI_H
class TranslatorSlovene : public TranslatorAdapter_1_2_11
class TranslatorSlovene : public Translator
{
public:
QCString idLanguage()
......@@ -981,7 +981,16 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_11
if (!singular) result+="ji";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Reference";
}
};
#endif
......
......@@ -1275,6 +1275,8 @@ void stripIrrelevantConstVolatile(QCString &s)
int i;
if (s=="const") { s.resize(0); return; }
if (s=="volatile") { s.resize(0); return; }
// strip occurrences of const
i = s.find("const ");
if (i!=-1)
{
......@@ -1284,6 +1286,8 @@ void stripIrrelevantConstVolatile(QCString &s)
s=s.left(i)+s.right(s.length()-i-6);
}
}
// strip occurrences of volatile
i = s.find("volatile ");
if (i!=-1)
{
......@@ -1295,22 +1299,6 @@ void stripIrrelevantConstVolatile(QCString &s)
}
}
#if 0 // should be done differently
static QCString resolveTypeDefs(const QCString &s)
{
QCString result;
static QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*");
int p=0,l,i;
while ((i=re.match(s,p,&l))!=-1)
{
result += s.mid(p,i-p);
result += resolveTypeDef(s.mid(i,l));
p=i+l;
}
result+=s.right(s.length()-p);
return result;
}
#endif
// a bit of debug support for matchArguments
#define MATCH
......@@ -1485,6 +1473,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
// otherwise we assume that a name starts at the current position.
while (srcPos<srcAType.length() && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstAType.length() && isId(dstAType.at(dstPos))) dstPos++;
// if nothing more follows for both types then we assume we have
// found a match. Note that now `signed int' and `signed' match, but
// seeing that int is not a name can only be done by looking at the
......@@ -3108,8 +3097,7 @@ const char *getOverloadDocs()
"function only in what argument(s) it accepts.";
}
void addMembersToMemberGroup(MemberList *ml,MemberGroupDict *memberGroupDict,
MemberGroupList *memberGroupList)
void addMembersToMemberGroup(MemberList *ml,MemberGroupSDict *memberGroupSDict)
{
MemberListIterator mli(*ml);
MemberDef *md;
......@@ -3123,12 +3111,11 @@ void addMembersToMemberGroup(MemberList *ml,MemberGroupDict *memberGroupDict,
QCString *pDocs = Doxygen::memberDocDict[groupId];
if (pGrpHeader)
{
MemberGroup *mg = memberGroupDict->find(groupId);
MemberGroup *mg = memberGroupSDict->find(groupId);
if (mg==0)
{
mg = new MemberGroup(groupId,*pGrpHeader,pDocs ? pDocs->data() : 0);
memberGroupDict->insert(groupId,mg);
memberGroupList->append(mg);
memberGroupSDict->append(groupId,mg);
}
md = ml->take(index);
mg->insertMember(md);
......
......@@ -39,8 +39,7 @@ class BaseClassList;
class GroupDef;
class NamespaceList;
class ClassList;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class Definition;
struct TagInfo;
......@@ -149,8 +148,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile=FALSE);
QCString convertToHtml(const char *s);
QCString convertToXML(const char *s);
const char * getOverloadDocs();
void addMembersToMemberGroup(MemberList *ml,MemberGroupDict *memberGroupDict,
MemberGroupList *memberGroupList);
void addMembersToMemberGroup(MemberList *ml,MemberGroupSDict *memberGroupSDict);
bool extractClassNameFromType(const QCString &type,int &pos,
QCString &name,QCString &templSpec);
QCString substituteTemplateArgumentsInString(
......
This diff is collapsed.
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