Commit fe35e3ac authored by Dimitri van Heesch's avatar Dimitri van Heesch

Doxygen-1.2.17-20020901

parent 6b47ce0c
DOXYGEN Version 1.2.17-20020825 DOXYGEN Version 1.2.17-20020901
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (25 August 2002) Dimitri van Heesch (01 September 2002)
DOXYGEN Version 1.2.17_20020825 DOXYGEN Version 1.2.17_20020901
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) (25 August 2002) Dimitri van Heesch (dimitri@stack.nl) (01 September 2002)
1.2.17-20020825 1.2.17-20020901
...@@ -1039,7 +1039,11 @@ ALIASES = "english=\if english" \ ...@@ -1039,7 +1039,11 @@ ALIASES = "english=\if english" \
\addindex \\anchor \addindex \\anchor
This command places an invisible, named anchor into the documentation This command places an invisible, named anchor into the documentation
to which you can refer with the \\ref command. to which you can refer with the \\ref command.
\note Anchors can currently only be put into a comment block
that is marked as a page (using \ref cmdpage "\\page") or mainpage
(\ref cmdmainpage "\\mainpage").
\sa section \ref cmdref "\\ref". \sa section \ref cmdref "\\ref".
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.2.17_20020825 Version: 1.2.17_20020901
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
......
...@@ -164,6 +164,9 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -164,6 +164,9 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
g_curArgTypeName+=g_curArgName; g_curArgTypeName+=g_curArgName;
BEGIN( ReadFuncArgType ); BEGIN( ReadFuncArgType );
} }
<ReadFuncArgType>"<="|">="|"->"|">>"|"<<" { // handle operators in defargs
g_curArgTypeName+=yytext;
}
<ReadFuncArgType,ReadFuncArgDef>[({<] { <ReadFuncArgType,ReadFuncArgDef>[({<] {
if (YY_START==ReadFuncArgType) if (YY_START==ReadFuncArgType)
{ {
...@@ -175,10 +178,10 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -175,10 +178,10 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
g_curArgDefValue+=*yytext; g_curArgDefValue+=*yytext;
g_copyArgValue=&g_curArgDefValue; g_copyArgValue=&g_curArgDefValue;
} }
g_readArgContext = YY_START; g_readArgContext = YY_START;
if (*yytext=='(') if (*yytext=='(')
{ {
g_argRoundCount=0; g_argRoundCount=0;
BEGIN( CopyArgRound ); BEGIN( CopyArgRound );
} }
else if (*yytext=='{') else if (*yytext=='{')
...@@ -249,67 +252,74 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -249,67 +252,74 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
BEGIN( ReadDocBlock ); BEGIN( ReadDocBlock );
} }
<ReadFuncArgType,ReadFuncArgDef>[,)>] { <ReadFuncArgType,ReadFuncArgDef>[,)>] {
g_curArgTypeName=removeRedundantWhiteSpace(g_curArgTypeName); if (*yytext==')' && g_curArgTypeName.stripWhiteSpace().isEmpty())
g_curArgDefValue=g_curArgDefValue.stripWhiteSpace(); {
//printf("curArgType=`%s' curArgDefVal=`%s'\n",g_curArgTypeName.data(),g_curArgDefValue.data()); g_curArgTypeName+=*yytext;
int l=g_curArgTypeName.length(); }
if (l>0) else
{ {
int i=l-1; g_curArgTypeName=removeRedundantWhiteSpace(g_curArgTypeName);
while (i>=0 && (isspace(g_curArgTypeName.at(i)) || g_curArgTypeName.at(i)=='.')) i--; g_curArgDefValue=g_curArgDefValue.stripWhiteSpace();
while (i>=0 && isId(g_curArgTypeName.at(i))) i--; //printf("curArgType=`%s' curArgDefVal=`%s'\n",g_curArgTypeName.data(),g_curArgDefValue.data());
//printf("g_curArgTypeName=`%s' i=%d\n",g_curArgTypeName.data(),i); int l=g_curArgTypeName.length();
Argument *a = new Argument; if (l>0)
a->attrib = g_curArgAttrib.copy();
//printf("a->type=%s a->name=%s i=%d l=%d\n",
// a->type.data(),a->name.data(),i,l);
a->array.resize(0);
if (i==l-1 && g_curArgTypeName.at(i)==')') // function argument
{ {
int bi=g_curArgTypeName.find('('); int i=l-1;
int fi=bi-1; while (i>=0 && (isspace(g_curArgTypeName.at(i)) || g_curArgTypeName.at(i)=='.')) i--;
//printf("func arg fi=%d\n",fi); while (i>=0 && isId(g_curArgTypeName.at(i))) i--;
while (fi>=0 && isId(g_curArgTypeName.at(fi))) fi--; //printf("g_curArgTypeName=`%s' i=%d\n",g_curArgTypeName.data(),i);
if (fi>=0) Argument *a = new Argument;
a->attrib = g_curArgAttrib.copy();
//printf("a->type=%s a->name=%s i=%d l=%d\n",
// a->type.data(),a->name.data(),i,l);
a->array.resize(0);
if (i==l-1 && g_curArgTypeName.at(i)==')') // function argument
{ {
a->type = g_curArgTypeName.left(fi+1); int bi=g_curArgTypeName.find('(');
a->name = g_curArgTypeName.mid(fi+1,bi-fi-1); int fi=bi-1;
a->array = g_curArgTypeName.right(l-bi); //printf("func arg fi=%d\n",fi);
while (fi>=0 && isId(g_curArgTypeName.at(fi))) fi--;
if (fi>=0)
{
a->type = g_curArgTypeName.left(fi+1);
a->name = g_curArgTypeName.mid(fi+1,bi-fi-1);
a->array = g_curArgTypeName.right(l-bi);
}
else
{
a->type = g_curArgTypeName;
}
}
else if (i>=0 && g_curArgTypeName.at(i)!=':')
{ // type contains a name
a->type = removeRedundantWhiteSpace(g_curArgTypeName.left(i+1));
a->name = g_curArgTypeName.right(l-i-1);
} }
else else // assume only the type was specified, try to determine name later
{ {
a->type = g_curArgTypeName; a->type = removeRedundantWhiteSpace(g_curArgTypeName);
} }
//printf("a->type=%s a->name=%s a->array=%s\n",a->type.data(),a->name.data());
a->array += removeRedundantWhiteSpace(g_curArgArray);
a->defval = g_curArgDefValue.copy();
a->docs = g_curArgDocs.stripWhiteSpace();
//printf("Argument `%s' `%s' adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data());
g_argList->append(a);
} }
else if (i>=0 && g_curArgTypeName.at(i)!=':') g_curArgAttrib.resize(0);
{ // type contains a name g_curArgTypeName.resize(0);
a->type = removeRedundantWhiteSpace(g_curArgTypeName.left(i+1)); g_curArgDefValue.resize(0);
a->name = g_curArgTypeName.right(l-i-1); g_curArgArray.resize(0);
g_curArgDocs.resize(0);
if (*yytext==')')
{
BEGIN(FuncQual);
//printf(">>> end of argument list\n");
} }
else // assume only the type was specified, try to determine name later else
{ {
a->type = removeRedundantWhiteSpace(g_curArgTypeName); BEGIN( ReadFuncArgType );
} }
//printf("a->type=%s a->name=%s a->array=%s\n",a->type.data(),a->name.data());
a->array += removeRedundantWhiteSpace(g_curArgArray);
a->defval = g_curArgDefValue.copy();
a->docs = g_curArgDocs.stripWhiteSpace();
//printf("Argument `%s' `%s' adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data());
g_argList->append(a);
}
g_curArgAttrib.resize(0);
g_curArgTypeName.resize(0);
g_curArgDefValue.resize(0);
g_curArgArray.resize(0);
g_curArgDocs.resize(0);
if (*yytext==')')
{
BEGIN(FuncQual);
//printf(">>> end of argument list\n");
}
else
{
BEGIN( ReadFuncArgType );
} }
} }
<ReadFuncArgType,ReadFuncArgPtr>{ID} { <ReadFuncArgType,ReadFuncArgPtr>{ID} {
......
...@@ -1130,8 +1130,10 @@ static int yyread(char *buf,int max_size) ...@@ -1130,8 +1130,10 @@ static int yyread(char *buf,int max_size)
return c; return c;
} }
//ATTR ((({BN}+[^\>]+)/">")?) //LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
//ATTR ((({BN}+[^\>]+)/">")?)
%} %}
CMD ("\\"|"@") CMD ("\\"|"@")
BN [ \t\n\r] BN [ \t\n\r]
BL [ \t\r]*"\n" BL [ \t\r]*"\n"
...@@ -1200,7 +1202,7 @@ OPARG "("[a-z_A-Z0-9,\<\> \t\*\&]*")" ...@@ -1200,7 +1202,7 @@ OPARG "("[a-z_A-Z0-9,\<\> \t\*\&]*")"
OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()" OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()"
OPCAST {B}+[^(\r\n.,]+ OPCAST {B}+[^(\r\n.,]+
OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? LINKMASK [^ \t\n\r\\@<&$]+("("[^\n)]*")")?({B}*("const"|"volatile"))?
%option noyywrap %option noyywrap
...@@ -1785,7 +1787,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? ...@@ -1785,7 +1787,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock(); if (inBlock()) endBlock();
inReturnBlock=TRUE; inReturnBlock=TRUE;
currentListIndent.push("P"); currentListIndent.push("P");
outDoc->startSimpleSect(BaseOutputDocInterface::Return,0,0,theTranslator->trReturns()+":"); outDoc->startSimpleSect(BaseOutputDocInterface::Return,0,0,theTranslator->trReturns()+": ");
outDoc->writeDescItem(); outDoc->writeDescItem();
} }
} }
......
...@@ -1392,6 +1392,7 @@ QCString DocLink::parse(bool isJavaLink) ...@@ -1392,6 +1392,7 @@ QCString DocLink::parse(bool isJavaLink)
printf("Error: Unsupported symbol %s found at line %d\n", printf("Error: Unsupported symbol %s found at line %d\n",
g_token->name.data(),doctokenizerYYlineno); g_token->name.data(),doctokenizerYYlineno);
break; break;
case TK_LNKWORD:
case TK_WORD: case TK_WORD:
if (isJavaLink) // special case to detect closing } if (isJavaLink) // special case to detect closing }
{ {
...@@ -3894,7 +3895,7 @@ void DocRoot::parse() ...@@ -3894,7 +3895,7 @@ void DocRoot::parse()
DocNode *validatingParseDoc(const char *fileName,int startLine, DocNode *validatingParseDoc(const char *fileName,int startLine,
const char *context,const char *input) const char *context,const char *input)
{ {
//printf("---------------- input --------------------\n%s\n----------- end input -------------------\n",input); printf("---------------- input --------------------\n%s\n----------- end input -------------------\n",input);
printf("========== validating %s at line %d\n",fileName,startLine); printf("========== validating %s at line %d\n",fileName,startLine);
g_token = new TokenInfo; g_token = new TokenInfo;
......
...@@ -1793,8 +1793,10 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir, ...@@ -1793,8 +1793,10 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir,
QCString imgName = (QCString)outFile+"."+imgExt; QCString imgName = (QCString)outFile+"."+imgExt;
if (format==BITMAP) if (format==BITMAP)
{ {
dotArgs.sprintf("-T%s \"%s\" -o \"%s\"",imgExt.data(), dotArgs.sprintf("-T%s \"%s\" -o \"%s\"",
inFile,imgName.data()); imgExt.data(),
inFile,
imgName.data());
} }
else // format==EPS else // format==EPS
{ {
......
This diff is collapsed.
...@@ -162,7 +162,7 @@ void GroupDef::addMembersToMemberGroup() ...@@ -162,7 +162,7 @@ void GroupDef::addMembersToMemberGroup()
} }
void GroupDef::insertMember(MemberDef *md,bool docOnly) bool GroupDef::insertMember(MemberDef *md,bool docOnly)
{ {
//printf("GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data()); //printf("GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data());
MemberNameInfo *mni=0; MemberNameInfo *mni=0;
...@@ -173,10 +173,17 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly) ...@@ -173,10 +173,17 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly)
for ( ; (srcMi=srcMnii.current()) ; ++srcMnii ) for ( ; (srcMi=srcMnii.current()) ; ++srcMnii )
{ {
MemberDef *srcMd = srcMi->memberDef; MemberDef *srcMd = srcMi->memberDef;
if (matchArguments(srcMd->argumentList(),md->argumentList()) &&
srcMd->getOuterScope()==md->getOuterScope()) bool sameScope = srcMd->getOuterScope()==md->getOuterScope() || // same class or namespace
// both inside a file => definition and declaration do not have to be in the same file
(srcMd->getOuterScope()->definitionType()==Definition::TypeFile &&
md->getOuterScope()->definitionType()==Definition::TypeFile);
if (matchArguments(srcMd->argumentList(),md->argumentList()) &&
sameScope
)
{ {
return; // member already added return FALSE; // member already added
} }
} }
mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE)); mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE));
...@@ -187,6 +194,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly) ...@@ -187,6 +194,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly)
mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE)); mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE));
allMemberNameInfoSDict->append(mni->memberName(),mni); allMemberNameInfoSDict->append(mni->memberName(),mni);
} }
//printf("Added member!\n");
allMemberList->append(md); allMemberList->append(md);
switch(md->memberType()) switch(md->memberType())
{ {
...@@ -241,7 +249,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly) ...@@ -241,7 +249,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly)
md->getClassDef() ? md->getClassDef()->name().data() : "", md->getClassDef() ? md->getClassDef()->name().data() : "",
name().data()); name().data());
} }
//addMemberToGroup(md,groupId); return TRUE;
} }
void GroupDef::removeMember(MemberDef *md) void GroupDef::removeMember(MemberDef *md)
...@@ -723,10 +731,13 @@ void addMemberToGroups(Entry *root,MemberDef *md) ...@@ -723,10 +731,13 @@ void addMemberToGroups(Entry *root,MemberDef *md)
if (insertit) if (insertit)
{ {
//printf("insertMember\n"); //printf("insertMember\n");
fgd->insertMember(md); bool success = fgd->insertMember(md);
md->setGroupDef(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0); if (success)
ClassDef *cd = md->getClassDefOfAnonymousType(); {
if (cd) cd->setGroupDefForAllMembers(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0); md->setGroupDef(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0);
ClassDef *cd = md->getClassDefOfAnonymousType();
if (cd) cd->setGroupDefForAllMembers(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0);
}
} }
} }
} }
......
...@@ -55,7 +55,7 @@ class GroupDef : public Definition ...@@ -55,7 +55,7 @@ class GroupDef : public Definition
void addParentGroup(const GroupDef *def); void addParentGroup(const GroupDef *def);
void addPage(PageInfo *def); // pages in this group void addPage(PageInfo *def); // pages in this group
void addExample(const PageInfo *def); // examples in this group void addExample(const PageInfo *def); // examples in this group
void insertMember(MemberDef *def,bool docOnly=FALSE); bool insertMember(MemberDef *def,bool docOnly=FALSE);
void removeMember(MemberDef *md); void removeMember(MemberDef *md);
bool containsGroup(const GroupDef *def); // true if def is already a subgroup bool containsGroup(const GroupDef *def); // true if def is already a subgroup
void writeDetailedDocumentation(OutputList &ol); void writeDetailedDocumentation(OutputList &ol);
......
This diff is collapsed.
This diff is collapsed.
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "dot.h" #include "dot.h"
#include "language.h" #include "language.h"
#include "htmlhelp.h" #include "htmlhelp.h"
#include "docparser.h"
#include "htmldocvisitor.h" #include "htmldocvisitor.h"
// #define GROUP_COLOR "#ff8080" // #define GROUP_COLOR "#ff8080"
......
This diff is collapsed.
This diff is collapsed.
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "version.h" #include "version.h"
#include "dot.h" #include "dot.h"
#include "page.h" #include "page.h"
#include "docparser.h"
#include "latexdocvisitor.h" #include "latexdocvisitor.h"
//static QCString filterTitle(const char *s) //static QCString filterTitle(const char *s)
......
...@@ -71,7 +71,9 @@ HEADERS = bufstr.h \ ...@@ -71,7 +71,9 @@ HEADERS = bufstr.h \
printdocvisitor.h \ printdocvisitor.h \
qtbc.h \ qtbc.h \
reflist.h \ reflist.h \
rtfdocvisitor.h \
rtfgen.h \ rtfgen.h \
rtfstyle.h \
scanner.h \ scanner.h \
searchindex.h \ searchindex.h \
section.h \ section.h \
...@@ -162,7 +164,9 @@ SOURCES = ce_lex.cpp \ ...@@ -162,7 +164,9 @@ SOURCES = ce_lex.cpp \
pngenc.cpp \ pngenc.cpp \
pre.cpp \ pre.cpp \
reflist.cpp \ reflist.cpp \
rtfdocvisitor.cpp \
rtfgen.cpp \ rtfgen.cpp \
rtfstyle.cpp \
scanner.cpp \ scanner.cpp \
searchindex.cpp \ searchindex.cpp \
suffixtree.cpp \ suffixtree.cpp \
......
...@@ -552,7 +552,14 @@ ClassDef *MemberDef::getClassDefOfAnonymousType() ...@@ -552,7 +552,14 @@ ClassDef *MemberDef::getClassDefOfAnonymousType()
*/ */
bool MemberDef::isBriefSectionVisible() const bool MemberDef::isBriefSectionVisible() const
{ {
bool hasDocs = hasDocumentation(); //printf("Member %s grpId=%d docs=%s file=%s args=%s\n",
// name().data(),
// grpId,grpId==-1?"<none>":Doxygen::memberDocDict[grpId]->data(),
// getFileDef()->name().data(),
// argsString());
bool hasDocs = hasDocumentation() ||
// part of a documented member group
(grpId!=-1 && !Doxygen::memberDocDict[grpId]->isEmpty());
// only include static members with file/namespace scope if // only include static members with file/namespace scope if
// explicitly enabled in the config file // explicitly enabled in the config file
...@@ -609,6 +616,12 @@ bool MemberDef::isBriefSectionVisible() const ...@@ -609,6 +616,12 @@ bool MemberDef::isBriefSectionVisible() const
!hasDocs !hasDocs
); );
//printf("visibleIfStatic=%d visibleIfDocumented=%d visibleIfEnabled=%d"
// "visibleIfPrivate=%d visibleIfDocVirtual=%d visibltIfNotDefaultCDTor=%d "
// "visibleIfFriendCompound=%d\n",visibleIfStatic,visibleIfDocumented,
// visibleIfEnabled,visibleIfPrivate,visibleIfDocVirtual,visibleIfNotDefaultCDTor,
// visibleIfFriendCompound);
bool visible = visibleIfStatic && visibleIfDocumented && bool visible = visibleIfStatic && visibleIfDocumented &&
visibleIfEnabled && visibleIfPrivate && visibleIfEnabled && visibleIfPrivate &&
visibleIfDocVirtual && visibleIfNotDefaultCDTor && visibleIfDocVirtual && visibleIfNotDefaultCDTor &&
......
...@@ -245,6 +245,12 @@ class MemberDef : public Definition ...@@ -245,6 +245,12 @@ class MemberDef : public Definition
} }
void setBodyMember(MemberDef *md) { bodyMemb = md; } void setBodyMember(MemberDef *md) { bodyMemb = md; }
void setDocsForDefinition(bool b) { docsForDefinition = b; } void setDocsForDefinition(bool b) { docsForDefinition = b; }
// declaration <-> definition relation
void setMemberDefinition(MemberDef *md) { memDef=md; }
void setMemberDeclaration(MemberDef *md) { memDec=md; }
MemberDef *memberDefinition() const { return memDef; }
MemberDef *memberDeclaration() const { return memDec; }
bool visited; bool visited;
...@@ -270,8 +276,6 @@ class MemberDef : public Definition ...@@ -270,8 +276,6 @@ class MemberDef : public Definition
QCString init; // initializer QCString init; // initializer
int initLines; // number of lines in the initializer int initLines; // number of lines in the initializer
QCString decl; // member declaration in class QCString decl; // member declaration in class
//QCString declFile; // file where the declaration was found
//int declLine; // line where the declaration was found
QCString def; // member definition in code (fully qualified name) QCString def; // member definition in code (fully qualified name)
QCString anc; // HTML anchor name QCString anc; // HTML anchor name
MemberDef *bodyMemb; // Member containing the definition MemberDef *bodyMemb; // Member containing the definition
...@@ -281,7 +285,6 @@ class MemberDef : public Definition ...@@ -281,7 +285,6 @@ class MemberDef : public Definition
bool stat; // is it a static function? bool stat; // is it a static function?
int memSpec; // The specifiers present for this member int memSpec; // The specifiers present for this member
MemberType mtype; // returns the kind of member MemberType mtype; // returns the kind of member
//bool eUsed; // is the enumerate already placed in a list
bool proto; // is it a prototype; bool proto; // is it a prototype;
bool docEnumValues; // is an enum with documented enum values. bool docEnumValues; // is an enum with documented enum values.
bool annScope; // member is part of an annoymous scope bool annScope; // member is part of an annoymous scope
......
...@@ -25,7 +25,8 @@ class PageInfo ...@@ -25,7 +25,8 @@ class PageInfo
public: public:
PageInfo(const char *f, int l,const char *n,const char *d,const char *t) : PageInfo(const char *f, int l,const char *n,const char *d,const char *t) :
defFileName(f), defLine(l), name(n), defFileName(f), defLine(l), name(n),
doc(d), title(t), sectionDict(0),specialListItems(0),m_inGroup(0) {} doc(d), title(t), context(0), sectionDict(0),specialListItems(0),m_inGroup(0)
{}
// where the page definition was found // where the page definition was found
QCString defFileName; QCString defFileName;
...@@ -40,6 +41,9 @@ class PageInfo ...@@ -40,6 +41,9 @@ class PageInfo
QCString reference; QCString reference;
QCString fileName; QCString fileName;
// class, file or namespace in which the page was found
Definition *context;
// functions to get a uniform interface with Definitions // functions to get a uniform interface with Definitions
QCString getOutputFileBase() const { return fileName; } QCString getOutputFileBase() const { return fileName; }
bool isReference() const { return !reference.isEmpty(); } bool isReference() const { return !reference.isEmpty(); }
......
This diff is collapsed.
/******************************************************************************
*
*
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#ifndef _RTFDOCVISITOR_H
#define _RTFDOCVISITOR_H
#include "docvisitor.h"
class QTextStream;
class BaseCodeDocInterface;
class QCString;
/*! @brief Concrete visitor implementation for RTF output. */
class RTFDocVisitor : public DocVisitor
{
public:
RTFDocVisitor(QTextStream &t,BaseCodeDocInterface &ci);
//--------------------------------------
// visitor functions for leaf nodes
//--------------------------------------
void visit(DocWord *);
void visit(DocLinkedWord *);
void visit(DocWhiteSpace *);
void visit(DocSymbol *);
void visit(DocURL *);
void visit(DocLineBreak *);
void visit(DocHorRuler *);
void visit(DocStyleChange *);
void visit(DocVerbatim *);
void visit(DocAnchor *);
void visit(DocInclude *);
void visit(DocIncOperator *);
void visit(DocFormula *);
//--------------------------------------
// visitor functions for compound nodes
//--------------------------------------
void visitPre(DocAutoList *);
void visitPost(DocAutoList *);
void visitPre(DocAutoListItem *);
void visitPost(DocAutoListItem *);
void visitPre(DocPara *);
void visitPost(DocPara *);
void visitPre(DocRoot *);
void visitPost(DocRoot *);
void visitPre(DocSimpleSect *);
void visitPost(DocSimpleSect *);
void visitPre(DocTitle *);
void visitPost(DocTitle *);
void visitPre(DocSimpleList *);
void visitPost(DocSimpleList *);
void visitPre(DocSimpleListItem *);
void visitPost(DocSimpleListItem *);
void visitPre(DocSection *s);
void visitPost(DocSection *);
void visitPre(DocHtmlList *s);
void visitPost(DocHtmlList *s);
void visitPre(DocHtmlListItem *);
void visitPost(DocHtmlListItem *);
void visitPre(DocHtmlPre *);
void visitPost(DocHtmlPre *);
void visitPre(DocHtmlDescList *);
void visitPost(DocHtmlDescList *);
void visitPre(DocHtmlDescTitle *);
void visitPost(DocHtmlDescTitle *);
void visitPre(DocHtmlDescData *);
void visitPost(DocHtmlDescData *);
void visitPre(DocHtmlTable *t);
void visitPost(DocHtmlTable *t);
void visitPre(DocHtmlCaption *);
void visitPost(DocHtmlCaption *);
void visitPre(DocHtmlRow *);
void visitPost(DocHtmlRow *) ;
void visitPre(DocHtmlCell *);
void visitPost(DocHtmlCell *);
void visitPre(DocIndexEntry *);
void visitPost(DocIndexEntry *);
void visitPre(DocInternal *);
void visitPost(DocInternal *);
void visitPre(DocHRef *);
void visitPost(DocHRef *);
void visitPre(DocHtmlHeader *);
void visitPost(DocHtmlHeader *) ;
void visitPre(DocImage *);
void visitPost(DocImage *);
void visitPre(DocDotFile *);
void visitPost(DocDotFile *);
void visitPre(DocLink *lnk);
void visitPost(DocLink *);
void visitPre(DocRef *ref);
void visitPost(DocRef *);
void visitPre(DocSecRefItem *);
void visitPost(DocSecRefItem *);
void visitPre(DocSecRefList *);
void visitPost(DocSecRefList *);
void visitPre(DocLanguage *);
void visitPost(DocLanguage *);
void visitPre(DocParamSect *);
void visitPost(DocParamSect *);
void visitPre(DocParamList *);
void visitPost(DocParamList *);
void visitPre(DocXRefItem *);
void visitPost(DocXRefItem *);
void visitPre(DocInternalRef *);
void visitPost(DocInternalRef *);
void visitPre(DocCopy *);
void visitPost(DocCopy *);
private:
//--------------------------------------
// helper functions
//--------------------------------------
void filter(const char *str);
void startLink(const QCString &ref,const QCString &file,
const QCString &anchor);
void endLink(const QCString &ref);
QCString getStyle(const char *name);
//--------------------------------------
// state variables
//--------------------------------------
QTextStream &m_t;
BaseCodeDocInterface &m_ci;
bool m_insidePre;
bool m_hide;
int m_indentLevel;
};
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -190,7 +190,7 @@ int getScopeFragment(const QCString &s,int p,int *l); ...@@ -190,7 +190,7 @@ int getScopeFragment(const QCString &s,int p,int *l);
int filterCRLF(char *buf,int len); int filterCRLF(char *buf,int len);
void addRefItem(const QList<ListItemInfo> *sli,const char *prefix, void addRefItem(const QList<ListItemInfo> *sli,const char *prefix,
const char *name,const char *title,const char *args=0); const char *name,const char *title,const char *args=0);
void addRelatedPage(const char *name,const QCString &ptitle, PageInfo *addRelatedPage(const char *name,const QCString &ptitle,
const QCString &doc,QList<QCString> *anchors, const QCString &doc,QList<QCString> *anchors,
const char *fileName,int startLine, const char *fileName,int startLine,
const QList<ListItemInfo> *sli, const QList<ListItemInfo> *sli,
...@@ -201,6 +201,7 @@ QCString escapeCharsInString(const char *name,bool allowDots); ...@@ -201,6 +201,7 @@ QCString escapeCharsInString(const char *name,bool allowDots);
void addGroupListToTitle(OutputList &ol,Definition *d); void addGroupListToTitle(OutputList &ol,Definition *d);
void filterLatexString(QTextStream &t,const char *str, void filterLatexString(QTextStream &t,const char *str,
bool insideTabbing=FALSE,bool insidePre=FALSE); bool insideTabbing=FALSE,bool insidePre=FALSE);
QCString rtfFormatBmkStr(const char *name);
#endif #endif
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