Commit 820c9009 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3.7-20040517

parent 64ab3608
DOXYGEN Version 1.3.7 DOXYGEN Version 1.3.7-20040517
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 (07 May 2004) Dimitri van Heesch (17 May 2004)
DOXYGEN Version 1.3.7 DOXYGEN Version 1.3.7_20040517
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (07 May 2004) Dimitri van Heesch (dimitri@stack.nl) (17 May 2004)
1.3.7 1.3.7-20040517
...@@ -479,6 +479,7 @@ void ConfigFile::addDependency(QDict<QObject> *switches, ...@@ -479,6 +479,7 @@ void ConfigFile::addDependency(QDict<QObject> *switches,
{ {
if (!dep.isEmpty()) if (!dep.isEmpty())
{ {
//printf("ConfigFile::addDependency(%s)\n",name.data());
IInput *parent = m_inputWidgets->find(dep); IInput *parent = m_inputWidgets->find(dep);
ASSERT(parent!=0); ASSERT(parent!=0);
IInput *child = m_inputWidgets->find(name); IInput *child = m_inputWidgets->find(name);
......
...@@ -27,7 +27,7 @@ f_prefix=/usr/local ...@@ -27,7 +27,7 @@ f_prefix=/usr/local
f_insttool=NO f_insttool=NO
f_english=NO f_english=NO
f_wizard=NO f_wizard=NO
f_langs=nl,se,cz,fr,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca f_langs=nl,se,cz,fr,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt
while test -n "$1"; do while test -n "$1"; do
case $1 in case $1 in
...@@ -518,7 +518,7 @@ echo -n " Generating src/lang_cfg.h..." ...@@ -518,7 +518,7 @@ echo -n " Generating src/lang_cfg.h..."
echo $f_langs | $f_perl -e '@l=split(/,/,<STDIN>); echo $f_langs | $f_perl -e '@l=split(/,/,<STDIN>);
chomp @l; chomp @l;
@allowed=(NL,SE,CZ,FR,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,BR, @allowed=(NL,SE,CZ,FR,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,BR,
DK,SK,UA,GR,TW,SR,CA); DK,SK,UA,GR,TW,SR,CA,LT);
foreach my $elem (@l){ foreach my $elem (@l){
$elem =~ tr/a-z/A-Z/; $elem =~ tr/a-z/A-Z/;
$r=0; $r=0;
......
...@@ -252,10 +252,10 @@ followed by the descriptions of the tags grouped by category. ...@@ -252,10 +252,10 @@ followed by the descriptions of the tags grouped by category.
documentation generated by doxygen is written. Doxygen will use this documentation generated by doxygen is written. Doxygen will use this
information to generate all constant output in the proper language. information to generate all constant output in the proper language.
The default language is English, other supported languages are: The default language is English, other supported languages are:
Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, Brazilian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, German, Greek, Hungarian, Italian, Japanese, Korean, Lithuanian, Norwegian,
Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
and Ukrainian. Swedish, and Ukrainian.
\anchor cfg_use_windows_encoding \anchor cfg_use_windows_encoding
<dt>\c USE_WINDOWS_ENCODING <dd> <dt>\c USE_WINDOWS_ENCODING <dd>
......
...@@ -23,13 +23,13 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,13 +23,13 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). configuration file (with default name and known as Doxyfile).
Currently (version 1.3.6-20040427), 28 languages Currently (version 1.3.7), 29 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, French, German, Greek, Czech, Danish, Dutch, English, Finnish, French, German, Greek,
Hungarian, Italian, Japanese (+En), Korean (+En), Norwegian, Polish, Hungarian, Italian, Japanese (+En), Korean (+En), Lithuanian,
Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak,
Swedish, and Ukrainian.. Slovene, Spanish, Swedish, and Ukrainian..
The table of information related to the supported languages follows. The table of information related to the supported languages follows.
It is sorted by language alphabetically. The <b>Status</b> column It is sorted by language alphabetically. The <b>Status</b> column
...@@ -164,6 +164,12 @@ when the translator was updated. ...@@ -164,6 +164,12 @@ when the translator was updated.
<td>&nbsp;</td> <td>&nbsp;</td>
<td>English based</td> <td>English based</td>
</tr> </tr>
<tr bgcolor="#ffffff">
<td>Lithuanian</td>
<td>Tomas Simonaitis<br>Mindaugas Radzius<br>Aidas Berukstis</td>
<td>haden@NOSPAM.homelan.lt<br>mindaugasradzius@NOSPAM.takas.lt<br>aidasber@NOSPAM.takas.lt</td>
<td>up-to-date</td>
</tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Norwegian</td> <td>Norwegian</td>
<td>Lars Erik Jordet</td> <td>Lars Erik Jordet</td>
...@@ -288,6 +294,10 @@ when the translator was updated. ...@@ -288,6 +294,10 @@ when the translator was updated.
\hline \hline
KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\ KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\
\hline \hline
Lithuanian & Tomas Simonaitis & {\tt\tiny haden@homelan.lt} & up-to-date \\
~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\
~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\
\hline
Norwegian & Lars Erik Jordet & {\tt\tiny lej@circuitry.no} & 1.2.2 \\ Norwegian & Lars Erik Jordet & {\tt\tiny lej@circuitry.no} & 1.2.2 \\
\hline \hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\ Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\
......
...@@ -65,6 +65,11 @@ Kenji Nagamatsu: naga@joyful.club.ne.jp ...@@ -65,6 +65,11 @@ Kenji Nagamatsu: naga@joyful.club.ne.jp
TranslatorKorean TranslatorKorean
Richard Kim: ryk@dspwiz.com Richard Kim: ryk@dspwiz.com
TranslatorLithuanian
Tomas Simonaitis: haden@homelan.lt
Mindaugas Radzius: mindaugasradzius@takas.lt
Aidas Berukstis: aidasber@takas.lt
TranslatorNorwegian TranslatorNorwegian
Lars Erik Jordet: lej@circuitry.no Lars Erik Jordet: lej@circuitry.no
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3.7 Version: 1.3.7_20040517
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
......
This diff is collapsed.
...@@ -1356,7 +1356,6 @@ void Config::create() ...@@ -1356,7 +1356,6 @@ void Config::create()
"cause performance problems for the file system. \n", "cause performance problems for the file system. \n",
FALSE FALSE
); );
cb->addDependency("GENERATE_HTML");
ce = addEnum( ce = addEnum(
"OUTPUT_LANGUAGE", "OUTPUT_LANGUAGE",
"The OUTPUT_LANGUAGE tag is used to specify the language in which all \n" "The OUTPUT_LANGUAGE tag is used to specify the language in which all \n"
......
...@@ -355,10 +355,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *) ...@@ -355,10 +355,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef); //printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef) if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef)
{ {
ol.disable(OutputGenerator::RTF);
ol.newParagraph();
ol.enableAll();
QCString refText = theTranslator->trDefinedAtLineInSourceFile(); QCString refText = theTranslator->trDefinedAtLineInSourceFile();
int lineMarkerPos = refText.find("@0"); int lineMarkerPos = refText.find("@0");
int fileMarkerPos = refText.find("@1"); int fileMarkerPos = refText.find("@1");
...@@ -462,11 +458,11 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName) ...@@ -462,11 +458,11 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
initParseCodeContext(); initParseCodeContext();
//printf("Read:\n`%s'\n\n",codeFragment.data()); //printf("Read:\n`%s'\n\n",codeFragment.data());
if (definitionType()==TypeMember) setParameterList((MemberDef *)this); if (definitionType()==TypeMember) setParameterList((MemberDef *)this);
ol.newParagraph();
ol.startCodeFragment(); ol.startCodeFragment();
parseCode(ol,scopeName,codeFragment,FALSE,0, parseCode(ol,scopeName,codeFragment,FALSE,0,
m_bodyDef,actualStart,actualEnd,TRUE); m_bodyDef,actualStart,actualEnd,TRUE);
ol.endCodeFragment(); ol.endCodeFragment();
ol.newParagraph();
} }
} }
ol.popGeneratorState(); ol.popGeneratorState();
......
...@@ -4807,7 +4807,8 @@ void DocRoot::parse() ...@@ -4807,7 +4807,8 @@ void DocRoot::parse()
DocNode *validatingParseDoc(const char *fileName,int startLine, DocNode *validatingParseDoc(const char *fileName,int startLine,
Definition *ctx,MemberDef *md, Definition *ctx,MemberDef *md,
const char *input,bool indexWords, const char *input,bool indexWords,
bool isExample, const char *exampleName) bool isExample, const char *exampleName,
bool singleLine)
{ {
//printf("validatingParseDoc(%s,%s)\n",ctx?ctx->name().data():"<none>", //printf("validatingParseDoc(%s,%s)\n",ctx?ctx->name().data():"<none>",
...@@ -4923,7 +4924,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine, ...@@ -4923,7 +4924,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
doctokenizerYYinit(input,g_fileName); doctokenizerYYinit(input,g_fileName);
// build abstract syntax tree // build abstract syntax tree
DocRoot *root = new DocRoot; DocRoot *root = new DocRoot(md!=0,singleLine);
root->parse(); root->parse();
if (Debug::isFlagSet(Debug::PrintTree)) if (Debug::isFlagSet(Debug::PrintTree))
......
...@@ -51,13 +51,16 @@ void initDocParser(); ...@@ -51,13 +51,16 @@ void initDocParser();
* search index. * search index.
* @param isExample TRUE if the documentation belongs to an example. * @param isExample TRUE if the documentation belongs to an example.
* @param exampleName Base name of the example file (0 if isExample is FALSE). * @param exampleName Base name of the example file (0 if isExample is FALSE).
* @param singleLine Output should be presented on a single line, so without
* starting a new paragraph at the end.
* @returns Root node of the abstract syntax tree. Ownership of the * @returns Root node of the abstract syntax tree. Ownership of the
* pointer is handed over to the caller. * pointer is handed over to the caller.
*/ */
DocNode *validatingParseDoc(const char *fileName,int startLine, DocNode *validatingParseDoc(const char *fileName,int startLine,
Definition *context, MemberDef *md, Definition *context, MemberDef *md,
const char *input,bool indexWords, const char *input,bool indexWords,
bool isExample,const char *exampleName=0); bool isExample,const char *exampleName=0,
bool singleLine=FALSE);
/*! Main entry point for parsing simple text fragments. These /*! Main entry point for parsing simple text fragments. These
* fragments are limited to words, whitespace and symbols. * fragments are limited to words, whitespace and symbols.
...@@ -1185,11 +1188,17 @@ class DocText : public CompAccept<DocText>, public DocNode ...@@ -1185,11 +1188,17 @@ class DocText : public CompAccept<DocText>, public DocNode
class DocRoot : public CompAccept<DocRoot>, public DocNode class DocRoot : public CompAccept<DocRoot>, public DocNode
{ {
public: public:
DocRoot() {} DocRoot(bool indent,bool sl) : m_indent(indent), m_singleLine(sl) {}
Kind kind() const { return Kind_Root; } Kind kind() const { return Kind_Root; }
DocNode *parent() const { return 0; } DocNode *parent() const { return 0; }
void accept(DocVisitor *v) { CompAccept<DocRoot>::accept(this,v); } void accept(DocVisitor *v) { CompAccept<DocRoot>::accept(this,v); }
void parse(); void parse();
bool indent() const { return m_indent; }
bool singleLine() const { return m_singleLine; }
private:
bool m_indent;
bool m_singleLine;
}; };
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
//-------------------------------------------------------------------- //--------------------------------------------------------------------
static const int maxCmdLine = 4096; static const int maxCmdLine = 40960;
/*! mapping from protection levels to color names */ /*! mapping from protection levels to color names */
static const char *edgeColorMap[] = static const char *edgeColorMap[] =
...@@ -981,9 +981,10 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) ...@@ -981,9 +981,10 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
f.close(); f.close();
QCString dotArgs(maxCmdLine); QCString dotArgs(maxCmdLine);
dotArgs.sprintf("-T%s \"%s\" -o \"%s\"", dotArgs.sprintf("\"%s\" -T%s -o \"%s\" -Timap -o \"%s\"",
imgExt.data(), dotName.data(),imgName.data()); dotName.data(), imgExt.data(), imgName.data(), mapName.data());
//printf("Running: dot -T%s %s -o %s\n",imgExt.data(),dotName.data(),imgName.data()); //printf("Running: dot %s -T%s -o %s -Timap -o %s\n",
// dotName.data(),imgExt.data(),imgName.data(),mapName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{ {
err("Problems running dot. Check your installation!\n"); err("Problems running dot. Check your installation!\n");
...@@ -991,14 +992,6 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) ...@@ -991,14 +992,6 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
return; return;
} }
checkDotResult(imgName); checkDotResult(imgName);
dotArgs.sprintf("-Timap \"%s\" -o \"%s\"",dotName.data(),mapName.data());
//printf("Running: dot -Timap %s -o %s\n",dotName.data(),mapName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
out << "</table>" << endl;
return;
}
if (Config_getBool("DOT_CLEANUP")) thisDir.remove(dotName); if (Config_getBool("DOT_CLEANUP")) thisDir.remove(dotName);
} }
// write image and map in a table row // write image and map in a table row
...@@ -1673,8 +1666,14 @@ QCString DotClassGraph::writeGraph(QTextStream &out, ...@@ -1673,8 +1666,14 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
{ {
QCString dotArgs(maxCmdLine); QCString dotArgs(maxCmdLine);
QCString imgName = baseName+"."+imgExt; QCString imgName = baseName+"."+imgExt;
dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"", dotArgs.sprintf("\"%s.dot\" -T%s -o \"%s\"",
imgExt.data(),baseName.data(),imgName.data()); baseName.data(),imgExt.data(),imgName.data());
if (generateImageMap)
{
// run dot also to create an image map
dotArgs+=QCString(maxCmdLine).sprintf(" -Timap -o \"%s.map\"",
baseName.data());
}
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{ {
err("Error: Problems running dot. Check your installation!\n"); err("Error: Problems running dot. Check your installation!\n");
...@@ -1682,17 +1681,6 @@ QCString DotClassGraph::writeGraph(QTextStream &out, ...@@ -1682,17 +1681,6 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
return baseName; return baseName;
} }
checkDotResult(imgName); checkDotResult(imgName);
if (generateImageMap)
{
// run dot again to create an image map
dotArgs.sprintf("-Timap \"%s.dot\" -o \"%s.map\"",baseName.data(),baseName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Error: Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return baseName;
}
}
} }
else if (format==EPS) // run dot to create a .eps image else if (format==EPS) // run dot to create a .eps image
{ {
...@@ -1942,8 +1930,14 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -1942,8 +1930,14 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
// run dot to create a bitmap image // run dot to create a bitmap image
QCString dotArgs(maxCmdLine); QCString dotArgs(maxCmdLine);
QCString imgName=baseName+"."+imgExt; QCString imgName=baseName+"."+imgExt;
dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"", dotArgs.sprintf("\"%s.dot\" -T%s -o \"%s\"",
imgExt.data(),baseName.data(),imgName.data()); baseName.data(),imgExt.data(),imgName.data());
if (generateImageMap)
{
// run dot also to create an image map
dotArgs+=QCString(maxCmdLine).sprintf(" -Timap -o \"%s.map\"",
baseName.data());
}
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{ {
err("Problems running dot. Check your installation!\n"); err("Problems running dot. Check your installation!\n");
...@@ -1951,21 +1945,6 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -1951,21 +1945,6 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
return baseName; return baseName;
} }
checkDotResult(imgName); checkDotResult(imgName);
if (generateImageMap)
{
// run dot again to create an image map
dotArgs.sprintf("-Timap \"%s.dot\" -o \"%s.map\"",
baseName.data(),baseName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return baseName;
}
//thisDir.remove(baseName+".map");
}
} }
else if (format==EPS) else if (format==EPS)
{ {
...@@ -2128,8 +2107,14 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format, ...@@ -2128,8 +2107,14 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
// run dot to create a bitmap image // run dot to create a bitmap image
QCString dotArgs(maxCmdLine); QCString dotArgs(maxCmdLine);
QCString imgName=baseName+"."+imgExt; QCString imgName=baseName+"."+imgExt;
dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"", dotArgs.sprintf("\"%s.dot\" -T%s -o \"%s\"",
imgExt.data(),baseName.data(),imgName.data()); baseName.data(),imgExt.data(),imgName.data());
if (generateImageMap)
{
// run dot also to create an image map
dotArgs+=QCString(maxCmdLine).sprintf(" -Timap -o \"%s.map\"",
baseName.data());
}
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{ {
err("Problems running dot. Check your installation!\n"); err("Problems running dot. Check your installation!\n");
...@@ -2137,19 +2122,6 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format, ...@@ -2137,19 +2122,6 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
return baseName; return baseName;
} }
checkDotResult(imgName); checkDotResult(imgName);
if (generateImageMap)
{
// run dot again to create an image map
dotArgs.sprintf("-Timap \"%s.dot\" -o \"%s.map\"",
baseName.data(),baseName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return baseName;
}
}
} }
else if (format==EPS) else if (format==EPS)
{ {
......
...@@ -1608,8 +1608,8 @@ static MemberDef *addVariableToFile( ...@@ -1608,8 +1608,8 @@ static MemberDef *addVariableToFile(
if ( if (
((nd==0 && md->getFileDef() && ((nd==0 && md->getFileDef() &&
root->fileName==md->getFileDef()->absFilePath() root->fileName==md->getFileDef()->absFilePath()
) ) // both variable names in the same file
|| (nd!=0 && md->getNamespaceDef()==nd) || (nd!=0 && md->getNamespaceDef()==nd) // both in same namespace
) )
&& !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables && !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables
) )
...@@ -1658,15 +1658,17 @@ static MemberDef *addVariableToFile( ...@@ -1658,15 +1658,17 @@ static MemberDef *addVariableToFile(
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
md->setFromAnonymousScope(fromAnnScope); md->setFromAnonymousScope(fromAnnScope);
md->setFromAnonymousMember(fromAnnMemb); md->setFromAnonymousMember(fromAnnMemb);
//md->setIndentDepth(indentDepth);
md->setBodySegment(root->bodyLine,root->endBodyLine);
md->setInitializer(root->initializer); md->setInitializer(root->initializer);
md->setMaxInitLines(root->initLines); md->setMaxInitLines(root->initLines);
md->setMemberGroupId(root->mGrpId); md->setMemberGroupId(root->mGrpId);
md->setBodyDef(fd);
md->setDefinition(def); md->setDefinition(def);
md->enableCallGraph(root->callGraph); md->enableCallGraph(root->callGraph);
md->setExplicitExternal(root->explicitExternal); md->setExplicitExternal(root->explicitExternal);
if (!root->explicitExternal)
{
md->setBodySegment(root->bodyLine,root->endBodyLine);
md->setBodyDef(fd);
}
addMemberToGroups(root,md); addMemberToGroups(root,md);
md->setRefItems(root->sli); md->setRefItems(root->sli);
...@@ -1956,7 +1958,7 @@ static void buildVarList(Entry *root) ...@@ -1956,7 +1958,7 @@ static void buildVarList(Entry *root)
int si=scope.find('@'); int si=scope.find('@');
//int anonyScopes = 0; //int anonyScopes = 0;
bool added=FALSE; bool added=FALSE;
if (si!=-1) if (si!=-1) // anonymous scope
{ {
QCString pScope; QCString pScope;
ClassDef *pcd=0; ClassDef *pcd=0;
...@@ -1994,19 +1996,6 @@ static void buildVarList(Entry *root) ...@@ -1994,19 +1996,6 @@ static void buildVarList(Entry *root)
//printf("Inserting member in global scope %s!\n",scope.data()); //printf("Inserting member in global scope %s!\n",scope.data());
addVariableToFile(root,mtype,scope,name,FALSE,/*0,*/0); addVariableToFile(root,mtype,scope,name,FALSE,/*0,*/0);
} }
//if (mtype==MemberDef::Typedef)
//{
// static QRegExp r("[a-z_A-Z][a-z_A-Z0-9]*");
// int i,l;
// if ((i=r.match(type,8,&l))!=-1)
// {
// //printf(">>> inserting typedef `%s'->`%s'\n",type.mid(i,l).data(),name.data());
// if (getClass(type.mid(i,l))!=0)
// {
// typedefDict.insert(name,new QCString(type.mid(i,l)));
// }
// }
//}
} }
nextMember: nextMember:
EntryListIterator eli(*root->sublist); EntryListIterator eli(*root->sublist);
...@@ -3091,11 +3080,18 @@ static void findUsedClassesForClass(Entry *root, ...@@ -3091,11 +3080,18 @@ static void findUsedClassesForClass(Entry *root,
{ {
//printf("Found used class %s\n",usedClassName.data()); //printf("Found used class %s\n",usedClassName.data());
// the name could be a type definition, resolve it // the name could be a type definition, resolve it
// TODO: recursive typedef resolution
QCString typeName = resolveTypeDef(masterCd,usedClassName); QCString typeName = resolveTypeDef(masterCd,usedClassName);
//printf("Found resolved class %s\n",typeName.data()); //printf("*** Found resolved class %s for %s\n",typeName.data(),usedClassName.data());
if (!typeName.isEmpty()) // if we could resolve the typedef, use
// the result as the class name.
{
usedClassName=typeName;
}
int si=usedClassName.findRev("::"); int sp=usedClassName.find('<');
if (sp==-1) sp=0;
int si=usedClassName.findRev("::",sp);
if (si!=-1) if (si!=-1)
{ {
// replace any namespace aliases // replace any namespace aliases
...@@ -8381,8 +8377,9 @@ void generateOutput() ...@@ -8381,8 +8377,9 @@ void generateOutput()
Doxygen::tagFile << "<tagfile>" << endl; Doxygen::tagFile << "<tagfile>" << endl;
} }
if (Config_getBool("GENERATE_HTML")) writeDoxFont(Config_getString("HTML_OUTPUT")); if (Config_getBool("GENERATE_HTML")) writeDoxFont(Config_getString("HTML_OUTPUT"));
if (Config_getBool("GENERATE_RTF")) writeDoxFont(Config_getString("RTF_OUTPUT")); if (Config_getBool("GENERATE_LATEX")) writeDoxFont(Config_getString("LATEX_OUTPUT"));
if (Config_getBool("GENERATE_RTF")) writeDoxFont(Config_getString("RTF_OUTPUT"));
//statistics(); //statistics();
......
...@@ -35,5 +35,6 @@ TARGET = doxygen ...@@ -35,5 +35,6 @@ TARGET = doxygen
unix:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a unix:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a
win32:TARGETDEPS = ..\lib\doxygen.lib ..\lib\doxycfg.lib win32:TARGETDEPS = ..\lib\doxygen.lib ..\lib\doxycfg.lib
win32-g++:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a win32-g++:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a
win32-mingw:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a
OBJECTS_DIR = ../objects OBJECTS_DIR = ../objects
...@@ -235,28 +235,31 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -235,28 +235,31 @@ void FileDef::writeDocumentation(OutputList &ol)
<< "</filename>" << endl; << "</filename>" << endl;
} }
ol.startTextBlock();
if (Config_getBool("DETAILS_AT_TOP")) if (Config_getBool("DETAILS_AT_TOP"))
{ {
ol.startTextBlock();
writeDetailedDocumentation(ol); writeDetailedDocumentation(ol);
ol.newParagraph(); ol.endTextBlock();
} }
else if (briefDescription()) else if (!briefDescription().isEmpty())
{ {
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE);
ol.writeString(" \n"); //ol.writeString(" \n");
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.startTextLink(0,"_details"); ol.startTextLink(0,"_details");
ol.parseText(theTranslator->trMore()); ol.parseText(theTranslator->trMore());
ol.endTextLink(); ol.endTextLink();
ol.enableAll(); ol.enableAll();
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::RTF);
ol.newParagraph(); ol.newParagraph();
ol.enable(OutputGenerator::Man); ol.popGeneratorState();
} }
ol.writeSynopsis(); ol.writeSynopsis();
if (Config_getBool("SHOW_INCLUDE_FILES")) if (Config_getBool("SHOW_INCLUDE_FILES") && includeList->count()>0)
{ {
ol.startTextBlock(TRUE); ol.startTextBlock(TRUE);
QListIterator<IncludeInfo> ili(*includeList); QListIterator<IncludeInfo> ili(*includeList);
...@@ -323,12 +326,7 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -323,12 +326,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if (isIDLorJava) if (isIDLorJava)
ol.docify(";"); ol.docify(";");
ol.endTypewriter(); ol.endTypewriter();
ol.disable(OutputGenerator::RTF);
ol.lineBreak(); ol.lineBreak();
ol.enableAll();
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
ol.enableAll();
} }
ol.endTextBlock(); ol.endTextBlock();
} }
...@@ -339,12 +337,14 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -339,12 +337,14 @@ void FileDef::writeDocumentation(OutputList &ol)
DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),FALSE); DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),FALSE);
if (!incDepGraph.isTrivial()) if (!incDepGraph.isTrivial())
{ {
ol.startTextBlock();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph(); ol.newParagraph();
ol.startInclDepGraph(); ol.startInclDepGraph();
ol.parseText(theTranslator->trInclDepGraph(name())); ol.parseText(theTranslator->trInclDepGraph(name()));
ol.endInclDepGraph(incDepGraph); ol.endInclDepGraph(incDepGraph);
ol.enableAll(); ol.enableAll();
ol.endTextBlock(TRUE);
} }
//incDepGraph.writeGraph(Config_getString("HTML_OUTPUT"),fd->getOutputFileBase()); //incDepGraph.writeGraph(Config_getString("HTML_OUTPUT"),fd->getOutputFileBase());
} }
...@@ -355,12 +355,14 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -355,12 +355,14 @@ void FileDef::writeDocumentation(OutputList &ol)
DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),TRUE); DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),TRUE);
if (!incDepGraph.isTrivial()) if (!incDepGraph.isTrivial())
{ {
ol.startTextBlock();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph(); ol.newParagraph();
ol.startInclDepGraph(); ol.startInclDepGraph();
ol.parseText(theTranslator->trInclByDepGraph()); ol.parseText(theTranslator->trInclByDepGraph());
ol.endInclDepGraph(incDepGraph); ol.endInclDepGraph(incDepGraph);
ol.enableAll(); ol.enableAll();
ol.endTextBlock(TRUE);
} }
//incDepGraph.writeGraph(Config_getString("HTML_OUTPUT"),fd->getOutputFileBase()); //incDepGraph.writeGraph(Config_getString("HTML_OUTPUT"),fd->getOutputFileBase());
} }
...@@ -376,8 +378,6 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -376,8 +378,6 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.enableAll(); ol.enableAll();
} }
ol.endTextBlock();
ol.startMemberSections(); ol.startMemberSections();
if (namespaceSDict->count()>0) if (namespaceSDict->count()>0)
......
...@@ -249,6 +249,7 @@ void HtmlDocVisitor::visit(DocInclude *inc) ...@@ -249,6 +249,7 @@ void HtmlDocVisitor::visit(DocInclude *inc)
m_t << "<pre><div class=\"fragment\">"; m_t << "<pre><div class=\"fragment\">";
parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile()); parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile());
m_t << "</div></pre>"; m_t << "</div></pre>";
break;
case DocInclude::IncWithLines: case DocInclude::IncWithLines:
{ {
m_t << "<pre><div class=\"fragment\">"; m_t << "<pre><div class=\"fragment\">";
...@@ -258,7 +259,6 @@ void HtmlDocVisitor::visit(DocInclude *inc) ...@@ -258,7 +259,6 @@ void HtmlDocVisitor::visit(DocInclude *inc)
m_t << "</div></pre>"; m_t << "</div></pre>";
} }
break; break;
break;
case DocInclude::DontInclude: case DocInclude::DontInclude:
break; break;
case DocInclude::HtmlInclude: case DocInclude::HtmlInclude:
......
...@@ -190,7 +190,7 @@ class HtmlGenerator : public OutputGenerator ...@@ -190,7 +190,7 @@ class HtmlGenerator : public OutputGenerator
void writeGraphicalHierarchy(DotGfxHierarchyTable &g); void writeGraphicalHierarchy(DotGfxHierarchyTable &g);
void startTextBlock(bool) {} void startTextBlock(bool) {}
void endTextBlock() {} void endTextBlock(bool) {}
void lastIndexPage() {} void lastIndexPage() {}
void startMemberDocPrefixItem(); void startMemberDocPrefixItem();
......
...@@ -961,35 +961,6 @@ void writeFileIndex(OutputList &ol) ...@@ -961,35 +961,6 @@ void writeFileIndex(OutputList &ol)
fullName.prepend(path); fullName.prepend(path);
} }
// --------------- LaTeX/RTF only -------------------------
#if 0
if (doc)
{
ol.pushGeneratorState();
ol.disable(OutputGenerator::Html);
ol.writeStartAnnoItem("file",
fd->getOutputFileBase(),
path,
fd->name()
);
if (!fd->briefDescription().isEmpty())
{
ol.docify(" (");
parseDoc(ol,fd->absFilePath(),1,
0,0,
abbreviate(fd->briefDescription(),fd->name()));
ol.docify(")");
}
ol.writeEndAnnoItem(fd->getOutputFileBase());
ol.popGeneratorState();
}
#endif
// --------------------------------------------------------
// ----------------- HTML only ----------------------------
//ol.pushGeneratorState();
//ol.disableAllBut(OutputGenerator::Html);
//ol.writeListItem();
ol.startIndexKey(); ol.startIndexKey();
ol.docify(path); ol.docify(path);
if (doc) if (doc)
...@@ -1041,7 +1012,9 @@ void writeFileIndex(OutputList &ol) ...@@ -1041,7 +1012,9 @@ void writeFileIndex(OutputList &ol)
fd,0, fd,0,
abbreviate(fd->briefDescription(),fd->name()), abbreviate(fd->briefDescription(),fd->name()),
FALSE, // index words FALSE, // index words
FALSE // isExample FALSE, // isExample
0, // example name
TRUE // single line
); );
//ol.docify(")"); //ol.docify(")");
} }
......
...@@ -27,3 +27,4 @@ ...@@ -27,3 +27,4 @@
#define LANG_TW #define LANG_TW
#define LANG_SR #define LANG_SR
#define LANG_CA #define LANG_CA
#define LANG_LT
...@@ -112,6 +112,9 @@ ...@@ -112,6 +112,9 @@
//#ifdef LANG_JS //#ifdef LANG_JS
//#include "translator_js.h" //#include "translator_js.h"
//#endif //#endif
#ifdef LANG_LT
#include "translator_lt.h"
#endif
#endif #endif
#define L_EQUAL(a) !stricmp(langName,a) #define L_EQUAL(a) !stricmp(langName,a)
...@@ -307,6 +310,12 @@ bool setTranslator(const char *langName) ...@@ -307,6 +310,12 @@ bool setTranslator(const char *langName)
theTranslator=new TranslatorCatalan; theTranslator=new TranslatorCatalan;
} }
#endif #endif
#ifdef LANG_LT
else if (L_EQUAL("lithuanian"))
{
theTranslator=new TranslatorLithuanian;
}
#endif
#endif // ENGLISH_ONLY #endif // ENGLISH_ONLY
else // use the default language (i.e. english) else // use the default language (i.e. english)
{ {
......
...@@ -266,7 +266,7 @@ class LatexGenerator : public OutputGenerator ...@@ -266,7 +266,7 @@ class LatexGenerator : public OutputGenerator
void writeGraphicalHierarchy(DotGfxHierarchyTable &) {} void writeGraphicalHierarchy(DotGfxHierarchyTable &) {}
void startTextBlock(bool) {} void startTextBlock(bool) {}
void endTextBlock() {} void endTextBlock(bool) {}
void startMemberDocPrefixItem() {} void startMemberDocPrefixItem() {}
void endMemberDocPrefixItem() {} void endMemberDocPrefixItem() {}
......
...@@ -232,7 +232,7 @@ class ManGenerator : public OutputGenerator ...@@ -232,7 +232,7 @@ class ManGenerator : public OutputGenerator
void writeGraphicalHierarchy(DotGfxHierarchyTable &) {} void writeGraphicalHierarchy(DotGfxHierarchyTable &) {}
void startTextBlock(bool) {} void startTextBlock(bool) {}
void endTextBlock() {} void endTextBlock(bool) {}
void lastIndexPage() {} void lastIndexPage() {}
void startMemberDocPrefixItem() {} void startMemberDocPrefixItem() {}
......
...@@ -1507,17 +1507,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1507,17 +1507,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (!detailed.isEmpty()) if (!detailed.isEmpty())
{ {
ol.parseDoc(docFile(),docLine(),getOuterScope()?getOuterScope():container,this,detailed+"\n",TRUE,FALSE); ol.parseDoc(docFile(),docLine(),getOuterScope()?getOuterScope():container,this,detailed+"\n",TRUE,FALSE);
ol.pushGeneratorState();
if (!m_inbodyDocs.isEmpty()) if (!m_inbodyDocs.isEmpty())
{ {
ol.newParagraph(); ol.newParagraph();
ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,m_inbodyDocs+"\n",TRUE,FALSE); ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,m_inbodyDocs+"\n",TRUE,FALSE);
} }
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
ol.popGeneratorState();
} }
else if(!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") || else if (!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") ||
!Config_getBool("BRIEF_MEMBER_DESC"))) !Config_getBool("BRIEF_MEMBER_DESC")))
{ {
if (!m_inbodyDocs.isEmpty()) if (!m_inbodyDocs.isEmpty())
...@@ -1525,10 +1521,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1525,10 +1521,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.newParagraph(); ol.newParagraph();
ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,m_inbodyDocs+"\n",TRUE,FALSE); ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,m_inbodyDocs+"\n",TRUE,FALSE);
} }
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
ol.popGeneratorState();
} }
...@@ -1678,9 +1670,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1678,9 +1670,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.parseText(reimplFromLine.right( ol.parseText(reimplFromLine.right(
reimplFromLine.length()-markerPos-2)); // text right from marker reimplFromLine.length()-markerPos-2)); // text right from marker
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph(); ol.newParagraph();
ol.enableAll();
} }
else else
{ {
...@@ -1761,9 +1751,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1761,9 +1751,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
index=newIndex+matchLen; index=newIndex+matchLen;
} }
ol.parseText(reimplInLine.right(reimplInLine.length()-index)); ol.parseText(reimplInLine.right(reimplInLine.length()-index));
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph(); ol.newParagraph();
ol.enableAll();
} }
} }
// write the list of examples that use this member // write the list of examples that use this member
...@@ -1781,10 +1769,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1781,10 +1769,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
writeSourceReffedBy(ol,cname); writeSourceReffedBy(ol,cname);
writeInlineCode(ol,cname); writeInlineCode(ol,cname);
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
ol.enableAll();
if ((m_hasCallGraph || Config_getBool("CALL_GRAPH")) if ((m_hasCallGraph || Config_getBool("CALL_GRAPH"))
&& isFunction() && Config_getBool("HAVE_DOT") && isFunction() && Config_getBool("HAVE_DOT")
) )
......
...@@ -342,7 +342,7 @@ class OutputGenerator : public BaseOutputDocInterface ...@@ -342,7 +342,7 @@ class OutputGenerator : public BaseOutputDocInterface
//virtual void endQuickIndexItem() = 0; //virtual void endQuickIndexItem() = 0;
virtual void writeQuickLinks(bool compact,HighlightedItem hli) = 0; virtual void writeQuickLinks(bool compact,HighlightedItem hli) = 0;
virtual void startTextBlock(bool) = 0; virtual void startTextBlock(bool) = 0;
virtual void endTextBlock() = 0; virtual void endTextBlock(bool) = 0;
virtual void lastIndexPage() = 0; virtual void lastIndexPage() = 0;
virtual void startMemberDocPrefixItem() = 0; virtual void startMemberDocPrefixItem() = 0;
virtual void endMemberDocPrefixItem() = 0; virtual void endMemberDocPrefixItem() = 0;
......
...@@ -132,7 +132,8 @@ void OutputList::popGeneratorState() ...@@ -132,7 +132,8 @@ void OutputList::popGeneratorState()
void OutputList::parseDoc(const char *fileName,int startLine, void OutputList::parseDoc(const char *fileName,int startLine,
Definition *ctx,MemberDef * md, Definition *ctx,MemberDef * md,
const QCString &docStr,bool indexWords, const QCString &docStr,bool indexWords,
bool isExample,const char *exampleName) bool isExample,const char *exampleName,
bool singleLine)
{ {
int count=0; int count=0;
if (docStr.isEmpty()) return; if (docStr.isEmpty()) return;
...@@ -149,12 +150,14 @@ void OutputList::parseDoc(const char *fileName,int startLine, ...@@ -149,12 +150,14 @@ void OutputList::parseDoc(const char *fileName,int startLine,
if (docStr.at(docStr.length()-1)=='\n') if (docStr.at(docStr.length()-1)=='\n')
{ {
root = validatingParseDoc(fileName,startLine, root = validatingParseDoc(fileName,startLine,
ctx,md,docStr,indexWords,isExample,exampleName); ctx,md,docStr,indexWords,isExample,exampleName,
singleLine);
} }
else else
{ {
root = validatingParseDoc(fileName,startLine, root = validatingParseDoc(fileName,startLine,
ctx,md,docStr+"\n",indexWords,isExample,exampleName); ctx,md,docStr+"\n",indexWords,isExample,exampleName,
singleLine);
} }
og=outputs->first(); og=outputs->first();
......
...@@ -62,7 +62,8 @@ class OutputList : public OutputDocInterface ...@@ -62,7 +62,8 @@ class OutputList : public OutputDocInterface
void parseDoc(const char *fileName,int startLine, void parseDoc(const char *fileName,int startLine,
Definition *ctx,MemberDef *md,const QCString &docStr, Definition *ctx,MemberDef *md,const QCString &docStr,
bool indexWords,bool isExample,const char *exampleName=0); bool indexWords,bool isExample,const char *exampleName=0,
bool singleLine=FALSE);
void parseText(const QCString &textStr); void parseText(const QCString &textStr);
...@@ -321,8 +322,8 @@ class OutputList : public OutputDocInterface ...@@ -321,8 +322,8 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::writeGraphicalHierarchy,g); } { forall(&OutputGenerator::writeGraphicalHierarchy,g); }
void startTextBlock(bool dense=FALSE) void startTextBlock(bool dense=FALSE)
{ forall(&OutputGenerator::startTextBlock,dense); } { forall(&OutputGenerator::startTextBlock,dense); }
void endTextBlock() void endTextBlock(bool paraBreak=FALSE)
{ forall(&OutputGenerator::endTextBlock); } { forall(&OutputGenerator::endTextBlock,paraBreak); }
void lastIndexPage() void lastIndexPage()
{ forall(&OutputGenerator::lastIndexPage); } { forall(&OutputGenerator::lastIndexPage); }
void startMemberDocPrefixItem() void startMemberDocPrefixItem()
......
This diff is collapsed.
...@@ -154,6 +154,7 @@ class RTFDocVisitor : public DocVisitor ...@@ -154,6 +154,7 @@ class RTFDocVisitor : public DocVisitor
bool m_hide; bool m_hide;
int m_indentLevel; int m_indentLevel;
QStack<bool> m_enabled; QStack<bool> m_enabled;
bool m_lastIsPara;
}; };
#endif #endif
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
#include "rtfdocvisitor.h" #include "rtfdocvisitor.h"
#include "docparser.h" #include "docparser.h"
//#define DBG_RTF(x) x; #define DBG_RTF(x) x;
#define DBG_RTF(x) //#define DBG_RTF(x)
static QCString dateToRTFDateString() static QCString dateToRTFDateString()
{ {
...@@ -1328,7 +1328,7 @@ void RTFGenerator::startTitle() ...@@ -1328,7 +1328,7 @@ void RTFGenerator::startTitle()
void RTFGenerator::startGroupHeader() void RTFGenerator::startGroupHeader()
{ {
DBG_RTF(t <<"{\\comment startGroupHeader}" << endl) DBG_RTF(t <<"{\\comment startGroupHeader}" << endl)
newParagraph(); //newParagraph();
t << rtf_Style_Reset; t << rtf_Style_Reset;
t << rtf_Style["Heading3"]->reference; t << rtf_Style["Heading3"]->reference;
t << endl; t << endl;
...@@ -1426,12 +1426,10 @@ void RTFGenerator::startIndent() ...@@ -1426,12 +1426,10 @@ void RTFGenerator::startIndent()
DBG_RTF(t << "{\\comment (startIndent) }" << endl) DBG_RTF(t << "{\\comment (startIndent) }" << endl)
t << "{" << endl; t << "{" << endl;
t << rtf_Style_Reset << rtf_CList_DepthStyle() << endl; t << rtf_Style_Reset << rtf_CList_DepthStyle() << endl;
//styleStack.push(style);
} }
void RTFGenerator::endIndent() void RTFGenerator::endIndent()
{ {
//const char *style = /* rtf_CList_DepthStyle(); */
t << "}" << endl; t << "}" << endl;
decrementIndentLevel(); decrementIndentLevel();
} }
...@@ -1762,14 +1760,14 @@ void RTFGenerator::startCodeFragment() ...@@ -1762,14 +1760,14 @@ void RTFGenerator::startCodeFragment()
{ {
DBG_RTF(t << "{\\comment (startCodeFragment) }" << endl) DBG_RTF(t << "{\\comment (startCodeFragment) }" << endl)
t << "{" << endl; t << "{" << endl;
newParagraph(); //newParagraph();
t << rtf_Style_Reset << rtf_Code_DepthStyle(); t << rtf_Style_Reset << rtf_Code_DepthStyle();
//styleStack.push(rtf_Style_CodeExample); //styleStack.push(rtf_Style_CodeExample);
} }
void RTFGenerator::endCodeFragment() void RTFGenerator::endCodeFragment()
{ {
newParagraph(); //newParagraph();
//styleStack.pop(); //styleStack.pop();
//printf("RTFGenerator::endCodeFrament() top=%s\n",styleStack.top()); //printf("RTFGenerator::endCodeFrament() top=%s\n",styleStack.top());
//t << rtf_Style_Reset << styleStack.top() << endl; //t << rtf_Style_Reset << styleStack.top() << endl;
...@@ -1967,9 +1965,9 @@ void RTFGenerator::startTextBlock(bool dense) ...@@ -1967,9 +1965,9 @@ void RTFGenerator::startTextBlock(bool dense)
} }
} }
void RTFGenerator::endTextBlock() void RTFGenerator::endTextBlock(bool paraBreak)
{ {
newParagraph(); if (paraBreak) newParagraph();
DBG_RTF(t << "{\\comment endTextBlock}" << endl) DBG_RTF(t << "{\\comment endTextBlock}" << endl)
t << "}" << endl; t << "}" << endl;
//m_omitParagraph = TRUE; //m_omitParagraph = TRUE;
...@@ -2448,3 +2446,27 @@ void RTFGenerator::printDoc(DocNode *n) ...@@ -2448,3 +2446,27 @@ void RTFGenerator::printDoc(DocNode *n)
delete visitor; delete visitor;
} }
void RTFGenerator::rtfwriteRuler_doubleline()
{
DBG_RTF(t << "{\\comment (rtfwriteRuler_doubleline)}" << endl)
t << "{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" << endl;
}
void RTFGenerator::rtfwriteRuler_emboss()
{
DBG_RTF(t << "{\\comment (rtfwriteRuler_emboss)}" << endl)
t << "{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" << endl;
}
void RTFGenerator::rtfwriteRuler_thick()
{
DBG_RTF(t << "{\\comment (rtfwriteRuler_thick)}" << endl)
t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl;
}
void RTFGenerator::rtfwriteRuler_thin()
{
DBG_RTF(t << "{\\comment (rtfwriteRuler_thin)}" << endl)
t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl;
}
...@@ -235,7 +235,7 @@ class RTFGenerator : public OutputGenerator ...@@ -235,7 +235,7 @@ class RTFGenerator : public OutputGenerator
void endMemberGroup(bool); void endMemberGroup(bool);
void startTextBlock(bool dense); void startTextBlock(bool dense);
void endTextBlock(); void endTextBlock(bool);
void lastIndexPage(); void lastIndexPage();
void startMemberDocPrefixItem() {} void startMemberDocPrefixItem() {}
...@@ -287,10 +287,10 @@ class RTFGenerator : public OutputGenerator ...@@ -287,10 +287,10 @@ class RTFGenerator : public OutputGenerator
void beginRTFDocument(); void beginRTFDocument();
void beginRTFChapter(); void beginRTFChapter();
void beginRTFSection(); void beginRTFSection();
void rtfwriteRuler_doubleline() { t << "{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" << endl; }; void rtfwriteRuler_doubleline();
void rtfwriteRuler_emboss() { t << "{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" << endl; }; void rtfwriteRuler_emboss();
void rtfwriteRuler_thick() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; }; void rtfwriteRuler_thick();
void rtfwriteRuler_thin() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; }; void rtfwriteRuler_thin();
void writeRTFReference(const char *label); void writeRTFReference(const char *label);
char *getMultiByte(int c); char *getMultiByte(int c);
}; };
......
...@@ -58,6 +58,10 @@ Rtf_Style_Default rtf_Style_Default[] = ...@@ -58,6 +58,10 @@ Rtf_Style_Default rtf_Style_Default[] =
"\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ", "\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
"\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font" "\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font"
}, },
{ "Heading5",
"\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
"\\sbasedon0 \\snext0 heading 5;}{\\*\\cs10 \\additive Default Paragraph Font"
},
{ "Title", { "Title",
"\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid ", "\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid ",
"\\sbasedon0 \\snext15 Title" "\\sbasedon0 \\snext15 Title"
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
#ifndef TRANSLATOR_CZ_H #ifndef TRANSLATOR_CZ_H
#define TRANSLATOR_CZ_H #define TRANSLATOR_CZ_H
// $Id$
//
// The first translation from English to Czech was started by // The first translation from English to Czech was started by
// Vlastimil Havran (1999--2000). The prototype version of Czech strings // Vlastimil Havran (1999--2000). The prototype version of Czech strings
// with diacritics was implemented by Petr Prikryl (prikrylp@skil.cz), // with diacritics was implemented by Petr Prikryl (prikrylp@skil.cz),
...@@ -125,7 +126,9 @@ ...@@ -125,7 +126,9 @@
// 2002/10/15 - The new trEvents() and trEventDocumentation() implemented. // 2002/10/15 - The new trEvents() and trEventDocumentation() implemented.
// 2003/04/28 - Five new methods "since 1.3" implemented. // 2003/04/28 - Five new methods "since 1.3" implemented.
// 2003/06/10 - Two new methods "since 1.3.1" implemented. // 2003/06/10 - Two new methods "since 1.3.1" implemented.
// 2003/08/13 - Four new "since 1.3.3" implemented. // 2003/08/13 - Four new methods "since 1.3.3" implemented.
// 2004/02/26 - trLegendDocs() updated.
// 2004/02/27 - Text inside the trCallGraph() corrected.
// Todo // Todo
// ---- // ----
...@@ -1184,8 +1187,6 @@ class TranslatorCzech : public Translator ...@@ -1184,8 +1187,6 @@ class TranslatorCzech : public Translator
"/*! Tøída, u které došlo k oøezání grafu. Vztah dìdiènosti " "/*! Tøída, u které došlo k oøezání grafu. Vztah dìdiènosti "
"je skryt. */\n" "je skryt. */\n"
"class Truncated : public Invisible { };\n\n" "class Truncated : public Invisible { };\n\n"
"/* Tøída, která není dokumentována komentáøi programu doxygen. */\n"
"class Undocumented { };\n\n"
"/*! Bázová tøída dìdìná veøejnì (public inheritance). */\n" "/*! Bázová tøída dìdìná veøejnì (public inheritance). */\n"
"class PublicBase : public Truncated { };\n\n" "class PublicBase : public Truncated { };\n\n"
"/*! Bázová tøída, použitá pro chránìné dìdìní " "/*! Bázová tøída, použitá pro chránìné dìdìní "
...@@ -1194,6 +1195,10 @@ class TranslatorCzech : public Translator ...@@ -1194,6 +1195,10 @@ class TranslatorCzech : public Translator
"/*! Bázová tøída, využitá pro privátní dìdìní " "/*! Bázová tøída, využitá pro privátní dìdìní "
"(private inheritance). */\n" "(private inheritance). */\n"
"class PrivateBase { };\n\n" "class PrivateBase { };\n\n"
"/* Tøída, která není dokumentována komentáøi programu doxygen. */\n"
"class Undocumented { };\n\n"
"/*! Šablona tøídy. */\n"
"template<class T> class Templ { };\n\n"
"/*! Tøída, která je využívána tøídou Inherited. */\n" "/*! Tøída, která je využívána tøídou Inherited. */\n"
"class Used { };\n\n" "class Used { };\n\n"
"/*! Odvozená tøída, která rùzným zpùsobem dìdí z více bázových " "/*! Odvozená tøída, která rùzným zpùsobem dìdí z více bázových "
...@@ -1201,7 +1206,8 @@ class TranslatorCzech : public Translator ...@@ -1201,7 +1206,8 @@ class TranslatorCzech : public Translator
"class Inherited : public PublicBase,\n" "class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n" " protected ProtectedBase,\n"
" private PrivateBase,\n" " private PrivateBase,\n"
" public Undocumented\n" " public Undocumented,\n"
" public Templ<int>\n"
"{\n" "{\n"
" private:\n" " private:\n"
" Used *m_usedClass;\n" " Used *m_usedClass;\n"
...@@ -1223,7 +1229,7 @@ class TranslatorCzech : public Translator ...@@ -1223,7 +1229,7 @@ class TranslatorCzech : public Translator
"strukturu nebo tøídu, pro kterou\n" "strukturu nebo tøídu, pro kterou\n"
"nejsou zobrazeny všechny vztahy dìdiènosti nebo obsažení. " "nejsou zobrazeny všechny vztahy dìdiènosti nebo obsažení. "
"Graf je oøezán v pøípadì, kdy jej\n" "Graf je oøezán v pøípadì, kdy jej\n"
"není možné umístit do vymezených hranic.\n" "není možné umístit do vymezeného prostoru.\n"
"</ul>\n" "</ul>\n"
"Šipky (tj. hrany grafu) mají následující význam:\n" "Šipky (tj. hrany grafu) mají následující význam:\n"
"<ul>\n" "<ul>\n"
...@@ -1238,6 +1244,10 @@ class TranslatorCzech : public Translator ...@@ -1238,6 +1244,10 @@ class TranslatorCzech : public Translator
"nebo kdy je používána jinou tøídou. Je oznaèena identifikátorem " "nebo kdy je používána jinou tøídou. Je oznaèena identifikátorem "
"jedné nebo více promìných, pøes které\n" "jedné nebo více promìných, pøes které\n"
"je tøída nebo struktura zpøístupnìna.\n" "je tøída nebo struktura zpøístupnìna.\n"
"<li>Žlutá šipka kreslená èárkovanì vyjadøuje vztah mezi instancí šablony "
"a šablonou tøídy, na základì které byla\n"
"instance šablony vytvoøena. V popisu šipky jsou uvedeny pøíslušné"
" parametry šablony.\n"
"</ul>\n"); "</ul>\n");
return decode(result); return decode(result);
...@@ -1597,7 +1607,7 @@ class TranslatorCzech : public Translator ...@@ -1597,7 +1607,7 @@ class TranslatorCzech : public Translator
/*! Put in front of the call graph for a function. */ /*! Put in front of the call graph for a function. */
virtual QCString trCallGraph() virtual QCString trCallGraph()
{ {
return decode("Graf volání této funkce:"); return decode("Graf volání pro tuto funkci:");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
......
This diff is collapsed.
...@@ -638,7 +638,7 @@ class TranslatorRussian : public Translator ...@@ -638,7 +638,7 @@ class TranslatorRussian : public Translator
* related classes * related classes
*/ */
virtual QCString trRelatedFunctionDocumentation() virtual QCString trRelatedFunctionDocumentation()
{ return decode(" " { return decode(" "
" "); } " "); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
......
...@@ -60,7 +60,16 @@ extern char **environ; ...@@ -60,7 +60,16 @@ extern char **environ;
//------------------------------------------------------------------------ //------------------------------------------------------------------------
static QCache<ClassDef*> g_lookupCache(20000,20000); struct LookupInfo
{
LookupInfo(ClassDef *cd=0,MemberDef *td=0,QCString ts="")
: classDef(cd), typeDef(td), templSpec(ts) {}
ClassDef *classDef;
MemberDef *typeDef;
QCString templSpec;
};
static QCache<LookupInfo> g_lookupCache(20000,20000);
// object that automatically initializes the cache at startup // object that automatically initializes the cache at startup
class CacheInitializer class CacheInitializer
...@@ -448,7 +457,6 @@ int guessSection(const char *name) ...@@ -448,7 +457,6 @@ int guessSection(const char *name)
return 0; return 0;
} }
// TODO: remove this!
QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
Definition **typedefContext) Definition **typedefContext)
{ {
...@@ -639,6 +647,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe ...@@ -639,6 +647,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe
} }
type=type.stripWhiteSpace(); // strip leading and trailing whitespace type=type.stripWhiteSpace(); // strip leading and trailing whitespace
ClassDef *result = getResolvedClassRec(md->getOuterScope(),fileScope,type,0,0); ClassDef *result = getResolvedClassRec(md->getOuterScope(),fileScope,type,0,0);
//printf("type=%s result=%p\n",type.data(),result);
if (result==0) if (result==0)
{ {
// try unspecialized version if type is template // try unspecialized version if type is template
...@@ -1025,16 +1034,21 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1025,16 +1034,21 @@ ClassDef *getResolvedClassRec(Definition *scope,
// scope, the name to search for and the explicit scope prefix. The speedup // scope, the name to search for and the explicit scope prefix. The speedup
// achieved by this simple cache can be enormous. // achieved by this simple cache can be enormous.
QCString key=scope->name()+"+"+name+"+"+explicitScopePart; QCString key=scope->name()+"+"+name+"+"+explicitScopePart;
ClassDef **pval=g_lookupCache.find(key); LookupInfo *pval=g_lookupCache.find(key);
//printf("Searching for %s result=%p\n",key.data(),pval); //printf("Searching for %s result=%p\n",key.data(),pval);
if (pval) if (pval)
{ {
return *pval; if (pTemplSpec) *pTemplSpec=pval->templSpec;
if (pTypeDef) *pTypeDef=pval->typeDef;
//printf("] cachedMatch=%s\n",
// pval->classDef?pval->classDef->name().data():"<none>");
//if (pTemplSpec) printf("templSpec=%s\n",pTemplSpec->data());
return pval->classDef;
} }
else // not found yet; we already add a 0 to avoid the possibility of else // not found yet; we already add a 0 to avoid the possibility of
// endless recursion. // endless recursion.
{ {
g_lookupCache.insert(key,new ClassDef*(0)); g_lookupCache.insert(key,new LookupInfo);
} }
ClassDef *bestMatch=0; ClassDef *bestMatch=0;
...@@ -1114,14 +1128,17 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1114,14 +1128,17 @@ ClassDef *getResolvedClassRec(Definition *scope,
pval=g_lookupCache.find(key); pval=g_lookupCache.find(key);
if (pval) if (pval)
{ {
*pval=bestMatch; pval->classDef = bestMatch;
pval->typeDef = bestTypedef;
pval->templSpec = bestTemplSpec;
} }
else else
{ {
g_lookupCache.insert(key,new ClassDef*(bestMatch)); g_lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec));
} }
//printf("] bestMatch=%s distance=%d\n", //printf("] bestMatch=%s distance=%d\n",
// bestMatch?bestMatch->name().data():"<none>",minDistance); // bestMatch?bestMatch->name().data():"<none>",minDistance);
//if (pTemplSpec) printf("templSpec=%s\n",pTemplSpec->data());
return bestMatch; return bestMatch;
} }
......
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