Commit 3cd2917e authored by dimitri's avatar dimitri

Release-1.3

parent 535ddc3b
DOXYGEN Version 1.3-rc3-20030330
DOXYGEN Version 1.3
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (30 March 2003)
Dimitri van Heesch (10 April 2003)
DOXYGEN Version 1.3_rc3_20030330
DOXYGEN Version 1.3
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) (30 March 2003)
Dimitri van Heesch (dimitri@stack.nl) (10 April 2003)
1.3-rc3-20030330
1.3
......@@ -39,7 +39,7 @@ It can help you in three ways:
The documentation is extracted directly from the sources, which
makes it much easier to keep the documentation consistent with the
source code.
<li> You can configure doxygen to extract the code structure
<li> You can \ref extract_all "configure" doxygen to extract the code structure
from undocumented source files. This is very useful to quickly
find your way in large source distributions.
You can also visualize the relations between the various elements
......
......@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
Currently (version 1.3-rc3-20030327), 28 languages
Currently (version 1.2.14-20020317), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
......
......@@ -102,6 +102,7 @@ written in Java. Files ending with <code>.cs</code> are treated as C# files.
Finally, files with the extensions <code>.php</code>, <code>.php4</code>,
<code>.inc</code> or <code>.phtml</code> are treated as PHP sources.
\anchor extract_all
If you start using doxygen for an existing project (thus without any
documentation that doxygen is aware of), you can still get an idea of
what the documented result would be. To do so, you must set
......
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3_rc3_20030330
Version: 1.3
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
......@@ -672,6 +672,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
}
else
{
//printf("typeOnly=%d\n",typeOnly);
if (cd==0 && !typeOnly) // not a class, see if it is a global enum/variable/typedef.
{
MemberDef *md = setCallContextForVar(clName);
......@@ -1556,7 +1557,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
<MemberCall2,FuncCall>[a-z_A-Z][:a-z_A-Z0-9]*({B}*"<"[^\n\<\>]*">")? {
addParmType();
g_parmName=yytext;
generateClassOrGlobalLink(*g_code,yytext,TRUE);
generateClassOrGlobalLink(*g_code,yytext,!g_insideBody);
}
<MemberCall2,FuncCall>, {
g_code->codify(yytext);
......@@ -1798,6 +1799,11 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
codifyLines(yytext);
endFontClass();
}
if (YY_START==SkipCxxComment)
{
endFontClass();
BEGIN( g_lastCContext ) ;
}
}
<*>\n{B}*"//@"[{}].*\n { // remove one-line group marker
if (Config_getBool("STRIP_CODE_COMMENTS"))
......@@ -1815,6 +1821,11 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
codifyLines(yytext);
endFontClass();
}
if (YY_START==SkipCxxComment)
{
endFontClass();
BEGIN( g_lastCContext ) ;
}
}
<*>\n{B}*"/*@"[{}] { // remove one-line group marker
if (Config_getBool("STRIP_CODE_COMMENTS"))
......
......@@ -2371,8 +2371,21 @@ void Config::create()
//-----------------------------------------------------------------------------------------------
cl = addList(
"TAGFILES",
"The TAGFILES tag can be used to specify one or more tagfiles. \n"
);
"The TAGFILES option can be used to specify one or more tagfiles. \n"
"Optionally an initial location of the external documentation \n"
"can be added for each tagfile. The format of a tag file without \n"
"this location is as follows: \n"
" TAGFILES = file1 file2 ... \n"
"Adding location for the tag files is done as follows: \n"
" TAGFILES = file1=loc1 \"file2 = loc2\" ... \n"
"where \"loc1\" and \"loc2\" can be relative or absolute paths or \n"
"URLs. If a location is present for each tag, the installdox tool \n"
"does not have to be run to correct the links.\n"
"Note that each tag file must have a unique name\n"
"(where the name does NOT include the path)\n"
"If a tag file is not located in the directory in which doxygen \n"
"is run, you must also specify the path to the tagfile here. \n"
);
cl->setWidgetType(ConfigList::File);
cs = addString(
"GENERATE_TAGFILE",
......
......@@ -1175,6 +1175,7 @@ DocAnchor::DocAnchor(DocNode *parent,const QString &id,bool newAnchor)
void DocInclude::parse()
{
DBG(("DocInclude::parse(file=%s,text=%s)\n",m_file.data(),m_text.data()));
switch(m_type)
{
case Include:
......@@ -1184,6 +1185,7 @@ void DocInclude::parse()
g_includeFileText = m_text;
g_includeFileOffset = 0;
g_includeFileLength = m_text.length();
//printf("g_includeFile=<<%s>>\n",g_includeFileText.data());
break;
case VerbInclude:
// fall through
......@@ -1200,7 +1202,7 @@ void DocIncOperator::parse()
const char *p = g_includeFileText;
uint l = g_includeFileLength;
uint o = g_includeFileOffset;
//printf("DocIncOperator::parse() text=%s off=%d len=%d\n",p,o,l);
DBG(("DocIncOperator::parse() text=%s off=%d len=%d\n",p,o,l));
uint so = o,bo;
bool nonEmpty = FALSE;
switch(type())
......@@ -1223,6 +1225,7 @@ void DocIncOperator::parse()
if (g_includeFileText.mid(so,o-so).find(m_pattern)!=-1)
{
m_text = g_includeFileText.mid(so,o-so);
DBG(("DocIncOperator::parse() Line: %s\n",m_text.data()));
}
g_includeFileOffset = QMIN(l,o+1); // set pointer to start of new line
break;
......@@ -1247,6 +1250,7 @@ void DocIncOperator::parse()
if (g_includeFileText.mid(so,o-so).find(m_pattern)!=-1)
{
m_text = g_includeFileText.mid(so,o-so);
DBG(("DocIncOperator::parse() SkipLine: %s\n",m_text.data()));
break;
}
o++; // skip new line
......@@ -1301,6 +1305,7 @@ void DocIncOperator::parse()
if (g_includeFileText.mid(so,o-so).find(m_pattern)!=-1)
{
m_text = g_includeFileText.mid(bo,o-bo);
DBG(("DocIncOperator::parse() Until: %s\n",m_text.data()));
break;
}
o++; // skip new line
......@@ -3129,6 +3134,7 @@ int DocPara::handleXRefItem(DocXRefItem::Type t)
void DocPara::handleIncludeOperator(const QString &cmdName,DocIncOperator::Type t)
{
DBG(("handleIncludeOperator(%s)\n",cmdName.data()));
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
{
......@@ -3349,6 +3355,7 @@ endlang:
void DocPara::handleInclude(const QString &cmdName,DocInclude::Type t)
{
DBG(("handleInclude(%s)\n",cmdName.data()));
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
{
......
This diff is collapsed.
......@@ -964,25 +964,6 @@ DotGfxHierarchyTable::~DotGfxHierarchyTable()
{
//printf("DotGfxHierarchyTable::~DotGfxHierarchyTable\n");
#if 0 // TODO: delete this
SDict<DotNode> skipNodes(1009);
skipNodes.setAutoDelete(TRUE);
DotNode *n = m_rootNodes->first();
while (n)
{
//printf("adding %s %p\n",n->label().data(),n);
skipNodes.append((char*)n,n);
n=m_rootNodes->next();
}
n = m_rootNodes->first();
while (n)
{
//printf("Deleting root node %s\n",n->label().data());
deleteNodes(n,&skipNodes);
n=m_rootNodes->next();
}
#endif
//QDictIterator<DotNode> di(*m_usedNodes);
//DotNode *n;
//for (;(n=di.current());++di)
......
......@@ -152,7 +152,7 @@ class DotClassGraph
class DotInclDepGraph
{
public:
DotInclDepGraph(FileDef *fd,int maxRecusionDepth,bool inverse=FALSE);
DotInclDepGraph(FileDef *fd,int maxRecusionDepth,bool inverse);
~DotInclDepGraph();
QCString writeGraph(QTextStream &t, GraphOutputFormat f,const char *path,
bool writeImageMap=TRUE);
......
......@@ -799,20 +799,20 @@ static void addClassToContext(Entry *root)
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);
}
//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);
//}
}
}
......@@ -850,6 +850,46 @@ static void buildClassDocList(Entry *root)
buildClassDocList(e);
}
}
static void resolveClassNestingRelations()
{
int nestingLevel=0;
bool done=FALSE;
while (!done)
{
// iterate over all classes searching for a class with right nesting
// level (starting with 0 and going up until no more classes are found)
done=TRUE;
ClassSDict::Iterator cli(Doxygen::classSDict);
ClassDef *cd=0;
for (cli.toFirst();(cd=cli.current());++cli)
{
if (cd->name().contains("::")==nestingLevel)
{
//printf("Level=%d processing=%s\n",nestingLevel,cd->name().data());
done=FALSE;
// also add class to the correct structural context
Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,cd->name());
if (d==0)
{
warn(cd->getDefFileName(),cd->getDefLine(),
"Warning: Internal inconsistency: scope for class %s not "
"found!\n",cd->name().data()
);
}
else
{
//printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data());
d->addInnerCompound(cd);
cd->setOuterScope(d);
}
}
}
nestingLevel++;
}
}
//----------------------------------------------------------------------
// build a list of all namespaces mentioned in the documentation
// and all namespaces that have a documentation block before their definition.
......@@ -1710,7 +1750,7 @@ done:
// Searches the Entry tree for Variable documentation sections.
// If found they are stored in their class or in the global list.
void buildVarList(Entry *root)
static void buildVarList(Entry *root)
{
if (!root->name.isEmpty() &&
(root->type.isEmpty() || compoundKeywordDict.find(root->type)==0) &&
......@@ -1914,7 +1954,7 @@ nextMember:
// Searches the Entry tree for Function sections.
// If found they are stored in their class or in the global list.
void addMethodToClass(Entry *root,ClassDef *cd,
static void addMethodToClass(Entry *root,ClassDef *cd,
const QCString &rname,/*const QCString &scope,*/bool isFriend)
{
int l,i;
......@@ -2790,7 +2830,7 @@ static QDict<int> *getTemplateArgumentsInName(ArgumentList *templateArguments,co
* This function differs from getResolvedClass in that it also takes
* using declarations and definition into account.
*/
ClassDef *findClassWithinClassContext(ClassDef *cd,const QCString &name)
static ClassDef *findClassWithinClassContext(ClassDef *cd,const QCString &name)
{
ClassDef *result=0;
......@@ -7861,6 +7901,7 @@ void parseInput()
msg("Building class list...\n");
buildClassList(root);
buildClassDocList(root);
resolveClassNestingRelations();
findUsingDeclarations(root);
msg("Building example list...\n");
......
......@@ -310,7 +310,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if (Config_getBool("HAVE_DOT") && Config_getBool("INCLUDE_GRAPH"))
{
//printf("Graph for file %s\n",name().data());
DotInclDepGraph incDepGraph(this,FALSE);
DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),FALSE);
if (!incDepGraph.isTrivial())
{
ol.disable(OutputGenerator::Man);
......@@ -326,7 +326,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if (Config_getBool("HAVE_DOT") && Config_getBool("INCLUDED_BY_GRAPH"))
{
//printf("Graph for file %s\n",name().data());
DotInclDepGraph incDepGraph(this,TRUE);
DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),TRUE);
if (!incDepGraph.isTrivial())
{
ol.disable(OutputGenerator::Man);
......
......@@ -244,7 +244,10 @@ void HtmlDocVisitor::visit(DocIncOperator *op)
}
if (op->type()!=DocIncOperator::Skip)
{
popEnabled();
if (!m_hide) parseCode(m_ci,op->context(),op->text().latin1(),op->isExample(),op->exampleFile());
pushEnabled();
m_hide=TRUE;
}
if (op->isLast())
{
......
......@@ -737,6 +737,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::Latex);
ol.docify("\n");
ol.popGeneratorState();
}
......
......@@ -1176,27 +1176,27 @@ class TranslatorPolish : public Translator
/*! Title of the package index page */
virtual QCString trPackageList()
{
return "Lista Pakietów";
return decode("Lista Pakietów");
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
return "Oto lista pakietów wraz z krótkim opisem (o ile jest dostêpny):";
return decode("Oto lista pakietów wraz z krótkim opisem (o ile jest dostêpny):");
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
return "Pakiety";
return decode("Pakiety");
}
/*! Used as a chapter title for Latex & RTF output */
virtual QCString trPackageDocumentation()
{
return "Dokumentacja Pakietu";
return decode("Dokumentacja Pakietu");
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
return "Warto¶æ:";
return decode("Warto¶æ:");
}
//////////////////////////////////////////////////////////////////////////
......@@ -1206,12 +1206,12 @@ class TranslatorPolish : public Translator
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
return "B³±d";
return decode("B³±d");
}
/*! Used as the header of the bug list */
virtual QCString trBugList()
{
return "Lista b³êdów";
return decode("Lista b³êdów");
}
//////////////////////////////////////////////////////////////////////////
......@@ -1233,7 +1233,7 @@ class TranslatorPolish : public Translator
/*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex()
{
return "Indeks";
return decode("Indeks");
}
/*! This is used for translation of the word that will possibly
......@@ -1267,7 +1267,7 @@ class TranslatorPolish : public Translator
QCString result((first_capital ? "Przestrze" : "przestrze"));
result+=(singular ? "ñ" : "nie");
result+=" nazw";
return result;
return decode(result);
}
/*! This is used for translation of the word that will possibly
......@@ -1287,7 +1287,7 @@ class TranslatorPolish : public Translator
*/
virtual QCString trPage(bool first_capital, bool singular)
{
QCString result((first_capital ? "Ston" : "stron"));
QCString result((first_capital ? "Stron" : "stron"));
result+=(singular ? "a" : "y");
return result;
}
......@@ -1300,7 +1300,7 @@ class TranslatorPolish : public Translator
{
QCString result((first_capital ? "Sk³adow" : "sk³adow"));
result+=(singular ? "a" : "e");
return result;
return decode(result);
}
/*! This is used for translation of the word that will possibly
......@@ -1346,7 +1346,7 @@ class TranslatorPolish : public Translator
*/
virtual QCString trReferences()
{
return "Odwo³uje siê do";
return decode("Odwo³uje siê do");
}
......@@ -1374,7 +1374,7 @@ class TranslatorPolish : public Translator
*/
virtual QCString trRTFTableOfContents()
{
return "Spis tre¶ci";
return decode("Spis tre¶ci");
}
//////////////////////////////////////////////////////////////////////////
......@@ -1386,7 +1386,7 @@ class TranslatorPolish : public Translator
*/
virtual QCString trDeprecatedList()
{
return "Lista elementów do wycofania";
return decode("Lista elementów do wycofania");
}
//////////////////////////////////////////////////////////////////////////
......@@ -1403,7 +1403,7 @@ class TranslatorPolish : public Translator
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
return "Dokumentacja zdarzeñ";
return decode("Dokumentacja zdarzeñ");
}
......
......@@ -1932,7 +1932,14 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl)
}
else if (!srcA->name.isEmpty() && !dstA->name.isEmpty())
{
srcA->name = dstA->name.copy();
if (srcA->docs.isEmpty() && !dstA->docs.isEmpty())
{
srcA->name = dstA->name.copy();
}
else if (!srcA->docs.isEmpty() && dstA->docs.isEmpty())
{
dstA->name = srcA->name.copy();
}
}
}
else
......
......@@ -18,12 +18,15 @@
#ifndef UTIL_H
#define UTIL_H
/*! \file util.h
* \brief A bunch of utility functions.
*/
#include "qtbc.h"
#include <qlist.h>
#include <qtextstream.h>
#include <ctype.h>
class ClassDef;
class FileDef;
class MemberList;
......@@ -73,13 +76,12 @@ class TextGeneratorOLImpl : public TextGeneratorIntf
//--------------------------------------------------------------------
extern void linkifyText(const TextGeneratorIntf &ol,const char *clName,const char *name,
void linkifyText(const TextGeneratorIntf &ol,const char *clName,const char *name,
const char *text,bool autoBreak=FALSE,bool external=TRUE);
extern void setAnchors(ClassDef *cd,char id,MemberList *ml,int groupId=-1);
extern QCString fileToString(const char *name,bool filter=FALSE);
extern QCString dateToString(bool);
extern bool getDefs(const QCString &scopeName,
void setAnchors(ClassDef *cd,char id,MemberList *ml,int groupId=-1);
QCString fileToString(const char *name,bool filter=FALSE);
QCString dateToString(bool);
bool getDefs(const QCString &scopeName,
const QCString &memberName,
const char *,
MemberDef *&md,
......@@ -93,14 +95,14 @@ extern bool getDefs(const QCString &scopeName,
);
extern bool resolveRef(/* in */ const char *scName,
bool resolveRef(/* in */ const char *scName,
/* in */ const char *name,
/* in */ bool inSeeBlock,
/* out */ Definition **resContext,
/* out */ MemberDef **resMember
);
extern bool resolveLink(/* in */ const char *scName,
bool resolveLink(/* in */ const char *scName,
/* in */ const char *lr,
/* in */ bool inSeeBlock,
/* out */ Definition **resContext,
......@@ -108,47 +110,39 @@ extern bool resolveLink(/* in */ const char *scName,
/* out */ QCString &resAnchor
);
extern bool generateRef(OutputDocInterface &od,const char *,
bool generateRef(OutputDocInterface &od,const char *,
const char *,bool inSeeBlock,const char * =0);
extern bool generateLink(OutputDocInterface &od,const char *,
bool generateLink(OutputDocInterface &od,const char *,
const char *,bool inSeeBlock,const char *);
extern void generateFileRef(OutputDocInterface &od,const char *,
void generateFileRef(OutputDocInterface &od,const char *,
const char *linkTxt=0);
void writePageRef(OutputDocInterface &od,const char *cn,const char *mn);
extern bool matchArguments(ArgumentList *,ArgumentList *,
bool matchArguments(ArgumentList *,ArgumentList *,
const char *cl=0,const char *ns=0,bool checkCV=TRUE,
NamespaceList *usingNamespaces=0,
ClassList *usingClasses=0);
extern void mergeArguments(ArgumentList *,ArgumentList *);
extern QCString substituteClassNames(const QCString &s);
extern QCString substitute(const char *s,const char *src,const char *dst);
extern QCString resolveDefines(const char *n);
extern ClassDef *getClass(const char *key);
extern ClassDef *getResolvedClass(Definition *scope,
void mergeArguments(ArgumentList *,ArgumentList *);
QCString substituteClassNames(const QCString &s);
QCString substitute(const char *s,const char *src,const char *dst);
QCString resolveDefines(const char *n);
ClassDef *getClass(const char *key);
ClassDef *getResolvedClass(Definition *scope,
const char *key,
bool *pIsTypeDef=0,
QCString *pTemplSpec=0);
extern NamespaceDef *getResolvedNamespace(const char *key);
extern FileDef *findFileDef(const FileNameDict *fnDict,const char *n,
NamespaceDef *getResolvedNamespace(const char *key);
FileDef *findFileDef(const FileNameDict *fnDict,const char *n,
bool &ambig);
extern QCString showFileDefMatches(const FileNameDict *fnDict,const char *n);
extern int guessSection(const char *name);
extern bool isId(char c);
extern QCString removeRedundantWhiteSpace(const QCString &s);
//extern void startTitle(OutputList &ol,const char *fileName);
//extern void endTitle(OutputList &ol,const char *fileName,const char *name);
//void startFile(OutputList &ol,const char *name,
// const char *title,bool external=FALSE);
//void endFile(OutputList &ol,bool external=FALSE);
//void writeQuickLinks(OutputList &ol,bool compact,bool external=FALSE);
QCString showFileDefMatches(const FileNameDict *fnDict,const char *n);
int guessSection(const char *name);
bool isId(char c);
QCString removeRedundantWhiteSpace(const QCString &s);
QCString argListToString(ArgumentList *al);
QCString tempArgListToString(ArgumentList *al);
QCString generateMarker(int id);
void writeExample(OutputList &ol,ExampleSDict *el);
//void setFileNameForSections(QList<QCString> *anchorList,const char *fileName,
// PageInfo *pi=0);
QCString stripAnonymousNamespaceScope(const QCString &s);
QCString stripFromPath(const QCString &path);
bool rightScopeMatch(const QCString &scope, const QCString &name);
......
......@@ -979,7 +979,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
writeXMLDocBlock(t,cd->docFile(),cd->docLine(),cd->name(),0,cd->documentation());
t << " </detaileddescription>" << endl;
DotClassGraph inheritanceGraph(cd,DotClassGraph::Inheritance,
Config_getBool("MAX_DOT_GRAPH_DEPTH"));
Config_getInt("MAX_DOT_GRAPH_DEPTH"));
if (!inheritanceGraph.isTrivial())
{
t << " <inheritancegraph>" << endl;
......@@ -987,7 +987,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
t << " </inheritancegraph>" << endl;
}
DotClassGraph collaborationGraph(cd,DotClassGraph::Implementation,
Config_getBool("MAX_DOT_GRAPH_DEPTH"));
Config_getInt("MAX_DOT_GRAPH_DEPTH"));
if (!collaborationGraph.isTrivial())
{
t << " <collaborationgraph>" << endl;
......@@ -1162,7 +1162,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti)
t << "</includedby>" << endl;
}
DotInclDepGraph incDepGraph(fd,FALSE);
DotInclDepGraph incDepGraph(fd,Config_getInt("MAX_DOT_GRAPH_DEPTH"),FALSE);
if (!incDepGraph.isTrivial())
{
t << " <incdepgraph>" << endl;
......@@ -1170,7 +1170,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti)
t << " </incdepgraph>" << endl;
}
DotInclDepGraph invIncDepGraph(fd,TRUE);
DotInclDepGraph invIncDepGraph(fd,Config_getInt("MAX_DOT_GRAPH_DEPTH"),TRUE);
if (!invIncDepGraph.isTrivial())
{
t << " <invincdepgraph>" << endl;
......
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