Commit 7e0aeda8 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3

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