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

Release-1.2.17

parent 457ca5c2
DOXYGEN Version 1.2.16-20020707 DOXYGEN Version 1.2.17
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (07 July 2002) Dimitri van Heesch (15 July 2002)
DOXYGEN Version 1.2.16_20020707 DOXYGEN Version 1.2.17
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 July 2002) Dimitri van Heesch (dimitri@stack.nl) (15 July 2002)
1.2.16-20020707 1.2.17
...@@ -23,7 +23,7 @@ all: language FORCE ...@@ -23,7 +23,7 @@ all: language FORCE
@cp Makefile.latex ../latex/Makefile @cp Makefile.latex ../latex/Makefile
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >../latex/doxygen_manual.tex @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >../latex/doxygen_manual.tex
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >../latex/doxygen.sty @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >../latex/doxygen.sty
@epstopdf doxygen_logo.eps -o=../latex/doxygen_logo.pdf @epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf
clean: clean:
rm -rf ../html ../latex *.bak translator_report.txt rm -rf ../html ../latex *.bak translator_report.txt
......
...@@ -22,7 +22,7 @@ all: language FORCE ...@@ -22,7 +22,7 @@ all: language FORCE
@copy Makefile.latex ..\latex\Makefile @copy Makefile.latex ..\latex\Makefile
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty
@epstopdf doxygen_logo.eps -o=..\latex\doxygen_logo.pdf @epstopdf doxygen_logo.eps --outfile=..\latex\doxygen_logo.pdf
clean: clean:
del /s /q ..\html ..\latex del /s /q ..\html ..\latex
......
...@@ -22,7 +22,7 @@ all: language FORCE ...@@ -22,7 +22,7 @@ all: language FORCE
@copy Makefile.latex ..\latex\Makefile @copy Makefile.latex ..\latex\Makefile
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty
@epstopdf doxygen_logo.eps -o=..\latex\doxygen_logo.pdf @epstopdf doxygen_logo.eps --outfile=..\latex\doxygen_logo.pdf
clean: clean:
del /s /q ..\html ..\latex del /s /q ..\html ..\latex
......
...@@ -1106,10 +1106,6 @@ ALIASES = "english=\if english" \ ...@@ -1106,10 +1106,6 @@ ALIASES = "english=\if english" \
\warning This command only works inside related page documentation and \warning This command only works inside related page documentation and
\e not in other documentation blocks! \e not in other documentation blocks!
\sa
Section \ref cmdpage "\\page" for an example of the
\ref cmdsection "\\section" command.
<hr> <hr>
\subsection cmdsubsection \subsection <subsection-name> (subsection title) \subsection cmdsubsection \subsection <subsection-name> (subsection title)
......
...@@ -26,8 +26,8 @@ Version: $(VERSION) ...@@ -26,8 +26,8 @@ Version: $(VERSION)
\endif \endif
<h2>Introduction</h2> <h2>Introduction</h2>
Doxygen is a documentation system for C++, Java, IDL Doxygen is a documentation system for C++, C, Java, IDL
(Corba, Microsoft and KDE-DCOP flavors) and C. (Corba, Microsoft, and KDE-DCOP flavors) and to some extend PHP.
It can help you in three ways: It can help you in three ways:
<ol> <ol>
......
...@@ -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.2.14-20020317), 27 languages Currently (version 1.2.16-20020707), 27 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Brazilian Portuguese, Chinese, Chinese Traditional, Croatian, Czech, Brazilian Portuguese, Chinese, Chinese Traditional, Croatian, Czech,
Danish, Dutch, English, Finnish, French, Danish, Dutch, English, Finnish, French,
...@@ -55,7 +55,7 @@ when the translator was updated. ...@@ -55,7 +55,7 @@ when the translator was updated.
<TD>Brazilian Portuguese</TD> <TD>Brazilian Portuguese</TD>
<TD>Fabio "FJTC" Jun Takada Chino</TD> <TD>Fabio "FJTC" Jun Takada Chino</TD>
<TD>chino@NOSPAM.icmc.sc.usp.br</TD> <TD>chino@NOSPAM.icmc.sc.usp.br</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Chinese</TD> <TD>Chinese</TD>
...@@ -73,13 +73,13 @@ when the translator was updated. ...@@ -73,13 +73,13 @@ when the translator was updated.
<TD>Croatian</TD> <TD>Croatian</TD>
<TD>Boris Bralo</TD> <TD>Boris Bralo</TD>
<TD>boris.bralo@NOSPAM.zg.tel.hr</TD> <TD>boris.bralo@NOSPAM.zg.tel.hr</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Czech</TD> <TD>Czech</TD>
<TD>Petr P&#x0159;ikryl</TD> <TD>Petr P&#x0159;ikryl</TD>
<TD>prikrylp@NOSPAM.skil.cz</TD> <TD>prikrylp@NOSPAM.skil.cz</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Danish</TD> <TD>Danish</TD>
...@@ -109,7 +109,7 @@ when the translator was updated. ...@@ -109,7 +109,7 @@ when the translator was updated.
<TD>French</TD> <TD>French</TD>
<TD>Xavier Outhier</TD> <TD>Xavier Outhier</TD>
<TD>xouthier@NOSPAM.yahoo.fr</TD> <TD>xouthier@NOSPAM.yahoo.fr</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>German</TD> <TD>German</TD>
...@@ -133,13 +133,13 @@ when the translator was updated. ...@@ -133,13 +133,13 @@ when the translator was updated.
<TD>Italian</TD> <TD>Italian</TD>
<TD>Alessandro Falappa<br>Ahmed Aldo Faisal</TD> <TD>Alessandro Falappa<br>Ahmed Aldo Faisal</TD>
<TD>alessandro@NOSPAM.falappa.net<br>aaf23@NOSPAM.cam.ac.uk</TD> <TD>alessandro@NOSPAM.falappa.net<br>aaf23@NOSPAM.cam.ac.uk</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Japanese</TD> <TD>Japanese</TD>
<TD>Ryunosuke Sato<br>Kenji Nagamatsu</TD> <TD>Ryunosuke Sato<br>Kenji Nagamatsu</TD>
<TD>puyo@NOSPAM.mint.freemail.ne.jp<br>naga@NOSPAM.joyful.club.ne.jp</TD> <TD>puyo@NOSPAM.mint.freemail.ne.jp<br>naga@NOSPAM.joyful.club.ne.jp</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Korean</TD> <TD>Korean</TD>
...@@ -163,7 +163,7 @@ when the translator was updated. ...@@ -163,7 +163,7 @@ when the translator was updated.
<TD>Portuguese</TD> <TD>Portuguese</TD>
<TD>Rui Godinho Lopes</TD> <TD>Rui Godinho Lopes</TD>
<TD>ruiglopes@NOSPAM.yahoo.com</TD> <TD>ruiglopes@NOSPAM.yahoo.com</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Romanian</TD> <TD>Romanian</TD>
...@@ -175,7 +175,7 @@ when the translator was updated. ...@@ -175,7 +175,7 @@ when the translator was updated.
<TD>Russian</TD> <TD>Russian</TD>
<TD>Alexandr Chelpanov</TD> <TD>Alexandr Chelpanov</TD>
<TD>cav@NOSPAM.cryptopro.ru</TD> <TD>cav@NOSPAM.cryptopro.ru</TD>
<TD>1.2.16</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Serbian</TD> <TD>Serbian</TD>
...@@ -224,16 +224,16 @@ when the translator was updated. ...@@ -224,16 +224,16 @@ when the translator was updated.
{\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\
\hline \hline
\hline \hline
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} & 1.2.16 \\ Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} & up-to-date \\
\hline \hline
Chinese & Wei Liu & {\tt liuwei@asiainfo.com} & 1.2.13 \\ Chinese & Wei Liu & {\tt liuwei@asiainfo.com} & 1.2.13 \\
& Wang Weihan & {\tt wangweihan@capinfo.com.cn} & \\ & Wang Weihan & {\tt wangweihan@capinfo.com.cn} & \\
\hline \hline
Chinese Traditional & Gary Lee & {\tt garylee@ecosine.com.tw} & 1.2.16 \\ Chinese Traditional & Gary Lee & {\tt garylee@ecosine.com.tw} & 1.2.16 \\
\hline \hline
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & 1.2.16 \\ Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & up-to-date \\
\hline \hline
Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & 1.2.16 \\ Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\
\hline \hline
Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\
\hline \hline
...@@ -243,7 +243,7 @@ when the translator was updated. ...@@ -243,7 +243,7 @@ when the translator was updated.
\hline \hline
Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} & obsolete \\ Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} & obsolete \\
\hline \hline
French & Xavier Outhier & {\tt xouthier@yahoo.fr} & 1.2.16 \\ French & Xavier Outhier & {\tt xouthier@yahoo.fr} & up-to-date \\
\hline \hline
German & Jens Seidel & {\tt jensseidel@users.sf.net} & 1.2.16 \\ German & Jens Seidel & {\tt jensseidel@users.sf.net} & 1.2.16 \\
& Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} & \\ & Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} & \\
...@@ -252,10 +252,10 @@ when the translator was updated. ...@@ -252,10 +252,10 @@ when the translator was updated.
\hline \hline
Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt foldvari@diatronltd.com} & 1.2.1 \\ Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt foldvari@diatronltd.com} & 1.2.1 \\
\hline \hline
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} & 1.2.16 \\ Italian & Alessandro Falappa & {\tt alessandro@falappa.net} & up-to-date \\
& Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\ & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\
\hline \hline
Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} & 1.2.16 \\ Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} & up-to-date \\
& Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & \\ & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & \\
\hline \hline
Korean & Richard Kim & {\tt ryk@dspwiz.com} & 1.2.13 \\ Korean & Richard Kim & {\tt ryk@dspwiz.com} & 1.2.13 \\
...@@ -265,11 +265,11 @@ when the translator was updated. ...@@ -265,11 +265,11 @@ when the translator was updated.
Polish & Piotr Kaminski & {\tt Piotr.Kaminski@ctm.gdynia.pl} & 1.2.16 \\ Polish & Piotr Kaminski & {\tt Piotr.Kaminski@ctm.gdynia.pl} & 1.2.16 \\
& Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} & \\ & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} & \\
\hline \hline
Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & 1.2.16 \\ Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & up-to-date \\
\hline \hline
Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.16 \\ Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.16 \\
\hline \hline
Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & 1.2.16 \\ Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\
\hline \hline
Serbian & Dejan Milosavljevic & {\tt dmilos@email.com} & 1.2.16 \\ Serbian & Dejan Milosavljevic & {\tt dmilos@email.com} & 1.2.16 \\
\hline \hline
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.2.16_20020707 Version: 1.2.17
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
......
...@@ -580,9 +580,10 @@ static void writeInheritanceSpecifier(OutputList &ol,BaseClassDef *bcd) ...@@ -580,9 +580,10 @@ static void writeInheritanceSpecifier(OutputList &ol,BaseClassDef *bcd)
} }
} }
void ClassDef::setIncludeFile(FileDef *fd,const char *includeName,bool local) void ClassDef::setIncludeFile(FileDef *fd,
const char *includeName,bool local, bool force)
{ {
//printf("ClassDef::setInclude(%p,%s,%d)\n",fd,includeName,local); //printf("ClassDef::setIncludeFile(%p,%s,%d,%d)\n",fd,includeName,local,force);
if (!m_incInfo) m_incInfo=new IncludeInfo; if (!m_incInfo) m_incInfo=new IncludeInfo;
if ((includeName && m_incInfo->includeName.isEmpty()) || if ((includeName && m_incInfo->includeName.isEmpty()) ||
(fd!=0 && m_incInfo->fileDef==0) (fd!=0 && m_incInfo->fileDef==0)
...@@ -593,6 +594,7 @@ void ClassDef::setIncludeFile(FileDef *fd,const char *includeName,bool local) ...@@ -593,6 +594,7 @@ void ClassDef::setIncludeFile(FileDef *fd,const char *includeName,bool local)
m_incInfo->includeName = includeName; m_incInfo->includeName = includeName;
m_incInfo->local = local; m_incInfo->local = local;
} }
if (force && includeName) m_incInfo->includeName = includeName;
} }
// TODO: fix this: a nested template class can have multiple outer templates // TODO: fix this: a nested template class can have multiple outer templates
......
...@@ -247,7 +247,7 @@ class ClassDef : public Definition ...@@ -247,7 +247,7 @@ class ClassDef : public Definition
*/ */
void insertBaseClass(ClassDef *,const char *name,Protection p,Specifier s,const char *t=0); void insertBaseClass(ClassDef *,const char *name,Protection p,Specifier s,const char *t=0);
void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0); void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0);
void setIncludeFile(FileDef *fd,const char *incName,bool local); void setIncludeFile(FileDef *fd,const char *incName,bool local,bool force);
void insertMember(MemberDef *); void insertMember(MemberDef *);
void insertUsedFile(const char *); void insertUsedFile(const char *);
void computeAnchors(); void computeAnchors();
......
...@@ -2254,17 +2254,21 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? ...@@ -2254,17 +2254,21 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
<DocScan>{CMD}"skipline"{BN}+ { BEGIN( DocSkiplineKey ); firstLine=TRUE; } <DocScan>{CMD}"skipline"{BN}+ { BEGIN( DocSkiplineKey ); firstLine=TRUE; }
<DocScan>{CMD}"line"{BN}+ { BEGIN( DocLineKey ); firstLine=TRUE; } <DocScan>{CMD}"line"{BN}+ { BEGIN( DocLineKey ); firstLine=TRUE; }
<DocScan>{CMD}"until"{BN}+ { BEGIN( DocUntilKey ); firstLine=TRUE; } <DocScan>{CMD}"until"{BN}+ { BEGIN( DocUntilKey ); firstLine=TRUE; }
<DocSkipKey>[^ \t\r\n]+ { <DocSkipKey>[^\r\n]+ {
if (includeFileLength>0) if (includeFileLength>0)
skipUntil(yytext); {
QCString pattern=yytext;
skipUntil(pattern.stripWhiteSpace());
}
BEGIN( DocScan ); BEGIN( DocScan );
} }
<DocLineKey>[^ \t\r\n]+ { <DocLineKey>[^\r\n]+ {
if (includeFileLength>0) if (includeFileLength>0)
{ {
QCString pattern=yytext;
if (firstLine) outDoc->startCodeFragment(); if (firstLine) outDoc->startCodeFragment();
firstLine=FALSE; firstLine=FALSE;
showLine(*outDoc,yytext); showLine(*outDoc,pattern.stripWhiteSpace());
BEGIN( DocKeyEnd ); BEGIN( DocKeyEnd );
} }
else else
...@@ -2272,12 +2276,13 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? ...@@ -2272,12 +2276,13 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
BEGIN( DocScan ); BEGIN( DocScan );
} }
} }
<DocSkiplineKey>[^ \t\r\n]+ { <DocSkiplineKey>[^\r\n]+ {
if (includeFileLength>0) if (includeFileLength>0)
{ {
QCString pattern=yytext;
if (firstLine) outDoc->startCodeFragment(); if (firstLine) outDoc->startCodeFragment();
firstLine=FALSE; firstLine=FALSE;
skipLine(*outDoc,yytext); skipLine(*outDoc,pattern.stripWhiteSpace());
BEGIN( DocKeyEnd ); BEGIN( DocKeyEnd );
} }
else else
...@@ -2285,12 +2290,13 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? ...@@ -2285,12 +2290,13 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
BEGIN( DocScan ); BEGIN( DocScan );
} }
} }
<DocUntilKey>[^ \t\r\n]+ { <DocUntilKey>[^\r\n]+ {
if (includeFileLength>0) if (includeFileLength>0)
{ {
QCString pattern=yytext;
if (firstLine) outDoc->startCodeFragment(); if (firstLine) outDoc->startCodeFragment();
firstLine=FALSE; firstLine=FALSE;
showUntil(*outDoc,yytext); showUntil(*outDoc,pattern.stripWhiteSpace());
BEGIN( DocKeyEnd ); BEGIN( DocKeyEnd );
} }
else else
......
...@@ -1745,9 +1745,32 @@ void generateGraphLegend(const char *path) ...@@ -1745,9 +1745,32 @@ void generateGraphLegend(const char *path)
} }
void writeDotGraphFromFile(const char *inFile,const char *outFile, void writeDotGraphFromFile(const char *inFile,const char *outDir,
GraphOutputFormat format) const char *outFile,GraphOutputFormat format)
{ {
QCString absOutFile = outDir;
#ifdef _WIN32
absOutFile+='\\';
#else
absOutFile+='/';
#endif
absOutFile+=outFile;
// chdir to the output dir, so dot can find the font file.
QCString oldDir = convertToQCString(QDir::currentDirPath());
// go to the html output directory (i.e. path)
QDir::setCurrent(outDir);
//{ // copy input file to output dir.
// QFile inf(inFile,IO_ReadOnly);
// QFileInfo infinfo(inf);
// uint s = infinfo.size();
// QByteArray a(s);
// inf.readBlock(a.data(),s);
// QFile outf(outDir,IO_WriteOnly);
// outf.writeBlock(a.data(),s);
//}
QCString dotArgs(4096); QCString dotArgs(4096);
QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString imgName = (QCString)outFile+"."+imgExt; QCString imgName = (QCString)outFile+"."+imgExt;
...@@ -1779,5 +1802,7 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile, ...@@ -1779,5 +1802,7 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile,
} }
if (format==BITMAP) checkDotResult(imgName); if (format==BITMAP) checkDotResult(imgName);
QDir::setCurrent(oldDir);
} }
...@@ -168,6 +168,6 @@ class DotInclDepGraph ...@@ -168,6 +168,6 @@ class DotInclDepGraph
}; };
void generateGraphLegend(const char *path); void generateGraphLegend(const char *path);
void writeDotGraphFromFile(const char *inFile,const char *outFile, void writeDotGraphFromFile(const char *inFile,const char *outDir,
GraphOutputFormat format); const char *outFile,GraphOutputFormat format);
...@@ -424,11 +424,11 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) ...@@ -424,11 +424,11 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
} }
if (fd->generateSourceFile()) // generate code for header if (fd->generateSourceFile()) // generate code for header
{ {
cd->setIncludeFile(fd,iName,local); cd->setIncludeFile(fd,iName,local,!root->includeName.isEmpty());
} }
else // put #include in the class documentation without link else // put #include in the class documentation without link
{ {
cd->setIncludeFile(0,iName,local); cd->setIncludeFile(0,iName,local,FALSE);
} }
} }
} }
...@@ -6408,7 +6408,7 @@ static void readFiles(BufStr &output) ...@@ -6408,7 +6408,7 @@ static void readFiles(BufStr &output)
bool multiLineIsBrief = Config_getBool("MULTILINE_CPP_IS_BRIEF"); bool multiLineIsBrief = Config_getBool("MULTILINE_CPP_IS_BRIEF");
BufStr tempBuf(10000); BufStr tempBuf(10000);
BufStr *bufPtr = multiLineIsBrief ? &tempBuf : &output; BufStr *bufPtr = multiLineIsBrief ? &output : &tempBuf;
// add begin filename marker // add begin filename marker
bufPtr->addChar(0x06); bufPtr->addChar(0x06);
...@@ -6431,7 +6431,7 @@ static void readFiles(BufStr &output) ...@@ -6431,7 +6431,7 @@ static void readFiles(BufStr &output)
bufPtr->addChar('\n'); /* to prevent problems under Windows ? */ bufPtr->addChar('\n'); /* to prevent problems under Windows ? */
if (multiLineIsBrief) if (!multiLineIsBrief)
{ {
convertCppComments(&tempBuf,&output); convertCppComments(&tempBuf,&output);
} }
......
...@@ -919,14 +919,8 @@ void HtmlGenerator::startDotFile(const char *name,bool hasCaption) ...@@ -919,14 +919,8 @@ void HtmlGenerator::startDotFile(const char *name,bool hasCaption)
{ {
baseName=baseName.right(baseName.length()-i-1); baseName=baseName.right(baseName.length()-i-1);
} }
QCString outName = Config_getString("HTML_OUTPUT")+ QCString outDir = Config_getString("HTML_OUTPUT");
#ifdef _WIN32 writeDotGraphFromFile(name,outDir,baseName,BITMAP);
"\\"
#else
"/"
#endif
+baseName;
writeDotGraphFromFile(name,outName,BITMAP);
t << "<div align=\"center\">" << endl; t << "<div align=\"center\">" << endl;
t << "<img src=\"" << baseName << "." t << "<img src=\"" << baseName << "."
<< Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\"" << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\""
......
...@@ -1795,14 +1795,8 @@ void LatexGenerator::startDotFile(const char *name,bool hasCaption) ...@@ -1795,14 +1795,8 @@ void LatexGenerator::startDotFile(const char *name,bool hasCaption)
{ {
baseName=baseName.right(baseName.length()-i-1); baseName=baseName.right(baseName.length()-i-1);
} }
QCString outName = Config_getString("LATEX_OUTPUT")+ QCString outDir = Config_getString("LATEX_OUTPUT");
#ifdef _WIN32 writeDotGraphFromFile(name,outDir,baseName,EPS);
"\\"
#else
"/"
#endif
+baseName;
writeDotGraphFromFile(name,outName,EPS);
if (hasCaption) if (hasCaption)
{ {
t << "\\begin{figure}[H]" << endl; t << "\\begin{figure}[H]" << endl;
......
...@@ -118,6 +118,7 @@ static QCString buildFileName(const char *name) ...@@ -118,6 +118,7 @@ static QCString buildFileName(const char *name)
case '~': case '~':
case '%': case '%':
case '+': case '+':
case '/':
fileName+="_"; fileName+="_";
break; break;
default: default:
......
...@@ -60,37 +60,42 @@ static QCString documentType; ...@@ -60,37 +60,42 @@ static QCString documentType;
static QCString documentId; static QCString documentId;
static QCString keywords; static QCString keywords;
// it is undocumented as far as I know, but static QCString g_nextTag( "AAAAAAAAAA" );
// "."'s in a bookmarkname are converted to "_"'s static QDict<QCString> g_tagDict( 5003 );
// when an RTF file is read in...
static QCString formatBmkStr(const char *name) static QCString formatBmkStr(const char *name)
{ {
QCString result=name; // To overcome the 40-character tag limitation, we
if (!result.isEmpty()) // substitute a short arbitrary string for the name
{ // supplied, and keep track of the correspondence
char c; // between names and strings.
char *p=result.data(); QCString key( name );
while ((c=*p)) QCString* tag = g_tagDict.find( key );
{ if ( !tag )
switch(c) {
{ // This particular name has not yet been added
case '.': // to the list. Add it, associating it with the
// fall through // next tag value, and increment the next tag.
case ':': tag = new QCString( g_nextTag.copy() ); // Make sure to use a deep copy!
*p='_'; g_tagDict.insert( key, tag );
break;
default: // This is the increment part
break; char* nxtTag = g_nextTag.data() + g_nextTag.length() - 1;
} for ( unsigned int i = 0; i < g_nextTag.length(); ++i, --nxtTag )
p++; {
} if ( ( ++(*nxtTag) ) > 'Z' )
// Word doesn't like bookmarks that do not start with a alphabetical char {
if (!isalpha(result.at(0))) (*nxtTag) = 'A';
{ }
result.prepend("BM"); else
} {
} // Since there was no carry, we can stop now
return result; break;
}
}
}
return *tag;
} }
static QCString dateToRTFDateString() static QCString dateToRTFDateString()
...@@ -723,6 +728,8 @@ void RTFGenerator::init() ...@@ -723,6 +728,8 @@ void RTFGenerator::init()
} }
Rtf_Style.setAutoDelete(TRUE); Rtf_Style.setAutoDelete(TRUE);
g_tagDict.setAutoDelete(TRUE);
// first duplicate strings of Rtf_Style_Default // first duplicate strings of Rtf_Style_Default
const struct Rtf_Style_Default* def = Rtf_Style_Default; const struct Rtf_Style_Default* def = Rtf_Style_Default;
while(def->reference != 0) while(def->reference != 0)
...@@ -1413,6 +1420,7 @@ void RTFGenerator::startIndexList() ...@@ -1413,6 +1420,7 @@ void RTFGenerator::startIndexList()
incrementIndentLevel(); incrementIndentLevel();
t << Rtf_Style_Reset << Rtf_LCList_DepthStyle() << endl; t << Rtf_Style_Reset << Rtf_LCList_DepthStyle() << endl;
newParagraph(); newParagraph();
m_omitParagraph = TRUE;
} }
void RTFGenerator::endIndexList() void RTFGenerator::endIndexList()
...@@ -1421,6 +1429,7 @@ void RTFGenerator::endIndexList() ...@@ -1421,6 +1429,7 @@ void RTFGenerator::endIndexList()
newParagraph(); newParagraph();
t << "}"; t << "}";
decrementIndentLevel(); decrementIndentLevel();
m_omitParagraph = TRUE;
} }
/*! start bullet list */ /*! start bullet list */
...@@ -1439,6 +1448,7 @@ void RTFGenerator::endItemList() ...@@ -1439,6 +1448,7 @@ void RTFGenerator::endItemList()
DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl) DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl)
t << "}"; t << "}";
decrementIndentLevel(); decrementIndentLevel();
m_omitParagraph = TRUE;
} }
/*! start enumeration list */ /*! start enumeration list */
...@@ -1458,6 +1468,7 @@ void RTFGenerator::endEnumList() ...@@ -1458,6 +1468,7 @@ void RTFGenerator::endEnumList()
DBG_RTF(t << "{\\comment (endEnumList)}" << endl) DBG_RTF(t << "{\\comment (endEnumList)}" << endl)
t << "}"; t << "}";
decrementIndentLevel(); decrementIndentLevel();
m_omitParagraph = TRUE;
} }
/*! write bullet or enum item */ /*! write bullet or enum item */
...@@ -1476,6 +1487,7 @@ void RTFGenerator::writeListItem() ...@@ -1476,6 +1487,7 @@ void RTFGenerator::writeListItem()
{ {
t << Rtf_BList_DepthStyle() << endl; t << Rtf_BList_DepthStyle() << endl;
} }
m_omitParagraph = TRUE;
} }
void RTFGenerator::writeIndexItem(const char *ref,const char *fn, void RTFGenerator::writeIndexItem(const char *ref,const char *fn,
...@@ -1495,6 +1507,7 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn, ...@@ -1495,6 +1507,7 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn,
t << endl; t << endl;
} }
newParagraph(); newParagraph();
m_omitParagraph = TRUE;
} }
//void RTFGenerator::writeIndexFileItem(const char *,const char *text) //void RTFGenerator::writeIndexFileItem(const char *,const char *text)
...@@ -2052,6 +2065,7 @@ void RTFGenerator::endDescList() ...@@ -2052,6 +2065,7 @@ void RTFGenerator::endDescList()
DBG_RTF(t << "{\\comment (endDescList)}" << endl) DBG_RTF(t << "{\\comment (endDescList)}" << endl)
newParagraph(); newParagraph();
decrementIndentLevel(); decrementIndentLevel();
m_omitParagraph = TRUE;
t << "}"; t << "}";
} }
...@@ -2271,13 +2285,23 @@ void RTFGenerator::endMemberItem(bool) ...@@ -2271,13 +2285,23 @@ void RTFGenerator::endMemberItem(bool)
void RTFGenerator::writeAnchor(const char *fileName,const char *name) void RTFGenerator::writeAnchor(const char *fileName,const char *name)
{ {
DBG_RTF(t <<"{\\comment writeAncheor }" << endl) QCString anchor;
t << "{\\bkmkstart "; if (fileName)
if (fileName) t << formatBmkStr(fileName); {
if (fileName && name) t << "_"; anchor+=fileName;
if (name) t << formatBmkStr(name); }
t << "}" << endl; if (fileName && name)
t << "{\\bkmkend " << formatBmkStr(name) << "}" << endl; {
anchor+='_';
}
if (name)
{
anchor+=name;
}
DBG_RTF(t <<"{\\comment writeAncheor (" << anchor << ")}" << endl)
t << "{\\bkmkstart " << formatBmkStr(anchor) << "}" << endl;
t << "{\\bkmkend " << formatBmkStr(anchor) << "}" << endl;
} }
void RTFGenerator::WriteRTFReference(const char *label) void RTFGenerator::WriteRTFReference(const char *label)
...@@ -2303,6 +2327,7 @@ void RTFGenerator::endCodeFragment() ...@@ -2303,6 +2327,7 @@ void RTFGenerator::endCodeFragment()
//t << Rtf_Style_Reset << styleStack.top() << endl; //t << Rtf_Style_Reset << styleStack.top() << endl;
DBG_RTF(t << "{\\comment (endCodeFragment) }" << endl) DBG_RTF(t << "{\\comment (endCodeFragment) }" << endl)
t << "}" << endl; t << "}" << endl;
m_omitParagraph = TRUE;
} }
void RTFGenerator::writeNonBreakableSpace(int) void RTFGenerator::writeNonBreakableSpace(int)
...@@ -2356,19 +2381,13 @@ void RTFGenerator::startDotFile(const char *name,bool) ...@@ -2356,19 +2381,13 @@ void RTFGenerator::startDotFile(const char *name,bool)
{ {
baseName=baseName.right(baseName.length()-i-1); baseName=baseName.right(baseName.length()-i-1);
} }
QCString outName = Config_getString("RTF_OUTPUT")+ QCString outDir = Config_getString("RTF_OUTPUT");
#ifdef _WIN32 writeDotGraphFromFile(name,outDir,baseName,BITMAP);
"\\"
#else
"/"
#endif
+baseName;
writeDotGraphFromFile(name,outName,BITMAP);
newParagraph(); newParagraph();
t << "{" << endl; t << "{" << endl;
t << Rtf_Style_Reset << endl; t << Rtf_Style_Reset << endl;
t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE "; t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
t << outName; t << outDir << "\\" << baseName;
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl; t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl; t << "}" << endl;
} }
...@@ -2413,13 +2432,14 @@ void RTFGenerator::endDescTableTitle() ...@@ -2413,13 +2432,14 @@ void RTFGenerator::endDescTableTitle()
void RTFGenerator::startDescTableData() void RTFGenerator::startDescTableData()
{ {
DBG_RTF(t << "{\\comment (startDescTableData) }" << endl) DBG_RTF(t << "{\\comment (startDescTableData) }" << endl)
m_omitParagraph=FALSE; m_omitParagraph = FALSE;
} }
void RTFGenerator::endDescTableData() void RTFGenerator::endDescTableData()
{ {
DBG_RTF(t << "{\\comment (endDescTableData) }" << endl) DBG_RTF(t << "{\\comment (endDescTableData) }" << endl)
newParagraph(); newParagraph();
m_omitParagraph = TRUE;
} }
// a style for list formatted as a "bulleted list" // a style for list formatted as a "bulleted list"
...@@ -2504,14 +2524,14 @@ void RTFGenerator::endTextBlock() ...@@ -2504,14 +2524,14 @@ void RTFGenerator::endTextBlock()
newParagraph(); newParagraph();
DBG_RTF(t << "{\\comment endTextBlock}" << endl) DBG_RTF(t << "{\\comment endTextBlock}" << endl)
t << "}" << endl; t << "}" << endl;
m_omitParagraph = TRUE;
} }
void RTFGenerator::newParagraph() void RTFGenerator::newParagraph()
{ {
DBG_RTF(t << "{\\comment (newParagraph)}" << endl) DBG_RTF(t << "{\\comment (newParagraph)}" << endl)
if (!m_omitParagraph) t << "\\par" << endl; if (!m_omitParagraph) t << "\\par" << endl;
// Suppress multiple paragraphs in a row m_omitParagraph = FALSE;
m_omitParagraph = TRUE;
} }
void RTFGenerator::startMemberSubtitle() void RTFGenerator::startMemberSubtitle()
...@@ -2938,6 +2958,7 @@ void RTFGenerator::endParamList() ...@@ -2938,6 +2958,7 @@ void RTFGenerator::endParamList()
DBG_RTF(t << "{\\comment (endParamList)}" << endl) DBG_RTF(t << "{\\comment (endParamList)}" << endl)
newParagraph(); newParagraph();
decrementIndentLevel(); decrementIndentLevel();
m_omitParagraph = TRUE;
t << "}"; t << "}";
} }
...@@ -13,9 +13,11 @@ ...@@ -13,9 +13,11 @@
* Brazilian Portuguese version by * Brazilian Portuguese version by
* Fabio "FJTC" Jun Takada Chino <chino@icmc.sc.usp.br> * Fabio "FJTC" Jun Takada Chino <chino@icmc.sc.usp.br>
* http://www.icmc.sc.usp.br/~chino * http://www.icmc.sc.usp.br/~chino
* Version: 1.2.13.2 (2002/05/10) * Version: 1.2.17 (2002/07/10)
* *
* History: * History:
* 1.2.17 (2002/07/10):
* - Updated to Doxygen 1.2.17.
* 1.2.13.2 (2002/05/10): * 1.2.13.2 (2002/05/10):
* - Latex Babel package language name fixed. * - Latex Babel package language name fixed.
* - "Estrura" bug identified and fixed (Thanks to Jorge Ramos). * - "Estrura" bug identified and fixed (Thanks to Jorge Ramos).
...@@ -23,7 +25,7 @@ ...@@ -23,7 +25,7 @@
#ifndef TRANSLATOR_BR_H #ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H #define TRANSLATOR_BR_H
class TranslatorBrazilian: public TranslatorAdapter_1_2_16 class TranslatorBrazilian: public Translator
{ {
public: public:
...@@ -1334,5 +1336,17 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_16 ...@@ -1334,5 +1336,17 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_16
return "Implementado em "+trWriteList(numEntries)+"."; return "Implementado em "+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Conteúdo";
}
}; };
#endif #endif
...@@ -138,6 +138,9 @@ ...@@ -138,6 +138,9 @@
// 2002/03/05 // 2002/03/05
// - ... forgot to replace TranslatorAdapter... base class by Translator. // - ... forgot to replace TranslatorAdapter... base class by Translator.
// //
// 2002/07/08 (my birthday! ;)
// - The new trRTFTableOfContents() implemented.
//
// Todo // Todo
// ---- // ----
// - The trReimplementedFromList() should pass the kind of the // - The trReimplementedFromList() should pass the kind of the
...@@ -157,7 +160,7 @@ ...@@ -157,7 +160,7 @@
// probably slightly faster. // probably slightly faster.
class TranslatorCzech : public TranslatorAdapter_1_2_16 class TranslatorCzech : public Translator
{ {
private: private:
/*! The decode() inline assumes the source written in the /*! The decode() inline assumes the source written in the
...@@ -1502,7 +1505,19 @@ class TranslatorCzech : public TranslatorAdapter_1_2_16 ...@@ -1502,7 +1505,19 @@ class TranslatorCzech : public TranslatorAdapter_1_2_16
*/ */
virtual QCString trImplementedInList(int numEntries) virtual QCString trImplementedInList(int numEntries)
{ {
return "Implementováno v "+trWriteList(numEntries)+"."; return decode("Implementováno v "+trWriteList(numEntries)+".");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Obsah";
} }
}; };
......
...@@ -58,10 +58,13 @@ ...@@ -58,10 +58,13 @@
// - trCompoundReference(), trLegendDocs() updated // - trCompoundReference(), trLegendDocs() updated
// - Removed some TODO's // - Removed some TODO's
// //
// 2002/02/13 Oliver Brandt (o.brandt@tu-bs.de) // 2001/02/13 Oliver Brandt (o.brandt@tu-bs.de)
// - Updated for "new since 1.2.13" version // - Updated for "new since 1.2.13" version
// - Removed some TODO's // - Removed some TODO's
// //
// 2002-07-08 Oliver Brandt (o.brandt@tu-bs.de)
// - Updated for "new since 1.2.16" version
//
// Todo: // Todo:
// - see FIXME // - see FIXME
...@@ -1392,6 +1395,17 @@ class TranslatorGerman : public TranslatorAdapter_1_2_16 ...@@ -1392,6 +1395,17 @@ class TranslatorGerman : public TranslatorAdapter_1_2_16
return "Implementiert in " + trWriteList(numEntries) + "."; return "Implementiert in " + trWriteList(numEntries) + ".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/* used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Inhaltsverzeichnis";
}
}; };
#endif #endif
......
...@@ -35,11 +35,13 @@ ...@@ -35,11 +35,13 @@
* -------------+------------------------------------------------------------ * -------------+------------------------------------------------------------
* 2002-01-23 | Update for new since 1.2.13 * 2002-01-23 | Update for new since 1.2.13
* -------------+------------------------------------------------------------ * -------------+------------------------------------------------------------
* 2002-07-11 | Update for new since 1.2.16
* -------------+------------------------------------------------------------
*/ */
#ifndef TRANSLATOR_FR_H #ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H #define TRANSLATOR_FR_H
class TranslatorFrench : public TranslatorAdapter_1_2_16 class TranslatorFrench : public Translator
{ {
public: public:
QCString idLanguage() QCString idLanguage()
...@@ -1254,5 +1256,19 @@ class TranslatorFrench : public TranslatorAdapter_1_2_16 ...@@ -1254,5 +1256,19 @@ class TranslatorFrench : public TranslatorAdapter_1_2_16
return "Implémenté dans "+trWriteList(numEntries)+"."; return "Implémenté dans "+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Table des matières";
}
}; };
#endif #endif
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
#ifndef TRANSLATOR_HR_H #ifndef TRANSLATOR_HR_H
#define TRANSLATOR_HR_H #define TRANSLATOR_HR_H
class TranslatorCroatian : public TranslatorAdapter_1_2_16 class TranslatorCroatian : public Translator
{ {
private: private:
/*! to avoid macro redefinition from translator_cz.h */ /*! to avoid macro redefinition from translator_cz.h */
...@@ -1040,6 +1040,18 @@ class TranslatorCroatian : public TranslatorAdapter_1_2_16 ...@@ -1040,6 +1040,18 @@ class TranslatorCroatian : public TranslatorAdapter_1_2_16
{ {
return "Implementirano u "+trWriteList(numEntries)+"."; return "Implementirano u "+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return decode("Sadraj");
}
}; };
#endif #endif
...@@ -19,7 +19,8 @@ ...@@ -19,7 +19,8 @@
* *
* Revision history * Revision history
* *
* 2002/07: modified trRelatedPagesDescription() method * 2002/07: translated new items used since version 1.2.16
* 2002/06: modified trRelatedPagesDescription() method
* correct typo in trInclByDepGraph() method * correct typo in trInclByDepGraph() method
* 2002/01: translated new items used since version 1.2.13 * 2002/01: translated new items used since version 1.2.13
* updated e-mail address * updated e-mail address
...@@ -64,7 +65,7 @@ ...@@ -64,7 +65,7 @@
#ifndef TRANSLATOR_IT_H #ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H #define TRANSLATOR_IT_H
class TranslatorItalian : public TranslatorAdapter_1_2_16 class TranslatorItalian : public Translator
{ {
public: public:
...@@ -1344,6 +1345,19 @@ class TranslatorItalian : public TranslatorAdapter_1_2_16 ...@@ -1344,6 +1345,19 @@ class TranslatorItalian : public TranslatorAdapter_1_2_16
{ {
return "Implementato in "+trWriteList(numEntries)+"."; return "Implementato in "+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Sommario";
}
}; };
#endif #endif
...@@ -61,7 +61,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish ...@@ -61,7 +61,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
} }
}; };
class TranslatorJapanese : public TranslatorAdapter_1_2_16 class TranslatorJapanese : public Translator
{ {
private: private:
/*! The decode() can change euc into sjis */ /*! The decode() can change euc into sjis */
...@@ -1364,7 +1364,17 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_16 ...@@ -1364,7 +1364,17 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_16
{ {
return trWriteList(numEntries)+decode("を実装しています")+"."; return trWriteList(numEntries)+decode("を実装しています")+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return decode("目次");
}
}; };
#endif #endif
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
* *
* VERSION HISTORY * VERSION HISTORY
* --------------- * ---------------
* 005 10 july 2002
* ! Updated for doxygen v1.2.16
* 004 03 march 2002 * 004 03 march 2002
* ! Updated for doxygen v1.2.14 * ! Updated for doxygen v1.2.14
* 003 23 november 2001 * 003 23 november 2001
...@@ -34,7 +36,7 @@ ...@@ -34,7 +36,7 @@
#ifndef TRANSLATOR_PT_H #ifndef TRANSLATOR_PT_H
#define TRANSLATOR_PT_H #define TRANSLATOR_PT_H
class TranslatorPortuguese : public TranslatorAdapter_1_2_16 class TranslatorPortuguese : public Translator
{ {
public: public:
...@@ -1368,6 +1370,18 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_16 ...@@ -1368,6 +1370,18 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_16
return "Implementado em "+trWriteList(numEntries)+"."; return "Implementado em "+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Índice";
}
}; };
#endif #endif
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
#ifndef TRANSLATOR_RU_H #ifndef TRANSLATOR_RU_H
#define TRANSLATOR_RU_H #define TRANSLATOR_RU_H
class TranslatorRussian : public TranslatorAdapter_1_2_16 class TranslatorRussian : public Translator
{ {
private: private:
/*! The Decode() inline assumes the source written in the /*! The Decode() inline assumes the source written in the
...@@ -1394,6 +1394,18 @@ class TranslatorRussian : public TranslatorAdapter_1_2_16 ...@@ -1394,6 +1394,18 @@ class TranslatorRussian : public TranslatorAdapter_1_2_16
return decode(" ")+trWriteList(numEntries)+"."; return decode(" ")+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return decode("");
}
}; };
#endif #endif
...@@ -363,7 +363,7 @@ int guessSection(const char *name) ...@@ -363,7 +363,7 @@ int guessSection(const char *name)
QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
Definition **typedefContext) Definition **typedefContext)
{ {
//printf("resolveTypeDef(%s,%s)\n", //printf("<<resolveTypeDef(%s,%s)\n",
// context ? context->name().data() : "<none>",qualifiedName.data()); // context ? context->name().data() : "<none>",qualifiedName.data());
QCString result; QCString result;
if (qualifiedName.isEmpty()) return result; if (qualifiedName.isEmpty()) return result;
...@@ -399,7 +399,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, ...@@ -399,7 +399,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
while ((is=getScopeFragment(resScopeName,ps,&l))!=-1) while ((is=getScopeFragment(resScopeName,ps,&l))!=-1)
{ {
QCString qualScopePart = resScopeName.mid(is,l); QCString qualScopePart = resScopeName.mid(is,l);
QCString tmp = resolveTypeDef(context,qualScopePart); QCString tmp = resolveTypeDef(mContext,qualScopePart);
if (!tmp.isEmpty()) qualScopePart=tmp; if (!tmp.isEmpty()) qualScopePart=tmp;
resScope = resScope->findInnerCompound(qualScopePart); resScope = resScope->findInnerCompound(qualScopePart);
//printf("qualScopePart=`%s' resScope=%p\n",qualScopePart.data(),resScope); //printf("qualScopePart=`%s' resScope=%p\n",qualScopePart.data(),resScope);
...@@ -444,7 +444,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, ...@@ -444,7 +444,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
// step 3: get the member's type // step 3: get the member's type
if (md) if (md)
{ {
//printf("Found typedef name `%s' in scope `%s' value=`%s'\n", //printf(">>resolveTypeDef: Found typedef name `%s' in scope `%s' value=`%s'\n",
// qualifiedName.data(),context->name().data(),md->typeString() // qualifiedName.data(),context->name().data(),md->typeString()
// ); // );
result=md->typeString(); result=md->typeString();
...@@ -452,13 +452,14 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, ...@@ -452,13 +452,14 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
} }
else else
{ {
//printf("Typedef `%s' not found in scope `%s'!\n", //printf(">>resolveTypeDef: Typedef `%s' not found in scope `%s'!\n",
// qualifiedName.data(),context ? context->name().data() : "<global>"); // qualifiedName.data(),context ? context->name().data() : "<global>");
} }
return result; return result;
} }
/*! Get a class definition given its name. /*! Get a class definition given its name.
* Returns 0 if the class is not found. * Returns 0 if the class is not found.
*/ */
...@@ -517,6 +518,7 @@ ClassDef *getResolvedClass( ...@@ -517,6 +518,7 @@ ClassDef *getResolvedClass(
{ {
//printf(" typedef value=%s typedefScope=%s\n",subst.data(), //printf(" typedef value=%s typedefScope=%s\n",subst.data(),
// typedefScope?typedefScope->qualifiedName().data():0); // typedefScope?typedefScope->qualifiedName().data():0);
// strip * and & from n // strip * and & from n
int ip=subst.length()-1; int ip=subst.length()-1;
while (ip>=0 && (subst.at(ip)=='*' || subst.at(ip)=='&' || subst.at(ip)==' ')) ip--; while (ip>=0 && (subst.at(ip)=='*' || subst.at(ip)=='&' || subst.at(ip)==' ')) ip--;
...@@ -533,11 +535,12 @@ ClassDef *getResolvedClass( ...@@ -533,11 +535,12 @@ ClassDef *getResolvedClass(
int count=0; // recursion detection guard int count=0; // recursion detection guard
QCString newSubst; QCString newSubst;
QCString typeName = subst; QCString typeName = subst;
//printf( "---> subst=%s\n",subst.data());
//if (index!=-1) typeName.prepend(name.left(index)+"::");
while (!(newSubst=resolveTypeDef(typedefScope,typeName)).isEmpty() while (!(newSubst=resolveTypeDef(typedefScope,typeName)).isEmpty()
&& count<10) && count<10)
{ {
//printf( "---> newSubst=%s\n",newSubst.data());
if (typeName==newSubst) if (typeName==newSubst)
{ {
cd = Doxygen::classSDict.find(subst); // for breaking typedef struct A A; cd = Doxygen::classSDict.find(subst); // for breaking typedef struct A A;
...@@ -649,7 +652,10 @@ QCString removeRedundantWhiteSpace(const QCString &s) ...@@ -649,7 +652,10 @@ QCString removeRedundantWhiteSpace(const QCString &s)
{ {
result+=", "; result+=", ";
} }
else if (i>0 && isId(s.at(i)) && s.at(i-1)==')') else if (i>0 &&
(isId(s.at(i)) && s.at(i-1)==')') ||
(s.at(i)=='\'' && s.at(i-1)==' ')
)
{ {
result+=' '; result+=' ';
result+=s.at(i); result+=s.at(i);
...@@ -1105,6 +1111,14 @@ QCString dateToString(bool includeTime) ...@@ -1105,6 +1111,14 @@ QCString dateToString(bool includeTime)
//return dtString; //return dtString;
} }
QCString yearToString()
{
const QDate &d=QDate::currentDate();
QCString result;
result.sprintf("%d", d.year());
return result;
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// recursive function that returns the number of branches in the // recursive function that returns the number of branches in the
...@@ -2719,6 +2733,7 @@ QCString substituteKeywords(const QCString &s,const char *title) ...@@ -2719,6 +2733,7 @@ QCString substituteKeywords(const QCString &s,const char *title)
if (title) result = substitute(result,"$title",title); if (title) result = substitute(result,"$title",title);
result = substitute(result,"$datetime",dateToString(TRUE)); result = substitute(result,"$datetime",dateToString(TRUE));
result = substitute(result,"$date",dateToString(FALSE)); result = substitute(result,"$date",dateToString(FALSE));
result = substitute(result,"$year",yearToString());
result = substitute(result,"$doxygenversion",versionString); result = substitute(result,"$doxygenversion",versionString);
result = substitute(result,"$projectname",Config_getString("PROJECT_NAME")); result = substitute(result,"$projectname",Config_getString("PROJECT_NAME"));
result = substitute(result,"$projectnumber",Config_getString("PROJECT_NUMBER")); result = substitute(result,"$projectnumber",Config_getString("PROJECT_NUMBER"));
......
...@@ -32,7 +32,7 @@ TMAKE_LIBDIR_X11 = /usr/lib/X11R6 ...@@ -32,7 +32,7 @@ TMAKE_LIBDIR_X11 = /usr/lib/X11R6
TMAKE_INCDIR_QT = $(QTDIR)/include TMAKE_INCDIR_QT = $(QTDIR)/include
TMAKE_LIBDIR_QT = $(QTDIR)/lib TMAKE_LIBDIR_QT = $(QTDIR)/lib
TMAKE_INCDIR_OPENGL = TMAKE_INCDIR_OPENGL =
TMAKE_LIBDIR_OPENGL = TMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib
TMAKE_LINK = aCC TMAKE_LINK = aCC
TMAKE_LINK_SHLIB = aCC TMAKE_LINK_SHLIB = aCC
...@@ -44,9 +44,9 @@ TMAKE_LFLAGS_SONAME = ...@@ -44,9 +44,9 @@ TMAKE_LFLAGS_SONAME =
TMAKE_HPUX_SHLIB = 1 TMAKE_HPUX_SHLIB = 1
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm -lICE -lSM
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl -lGL
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
TMAKE_LIBS_YACC = -ly TMAKE_LIBS_YACC = -ly
......
...@@ -45,7 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,7 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl -lGL
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
TMAKE_MOC = moc TMAKE_MOC = moc
......
...@@ -44,9 +44,9 @@ TMAKE_LFLAGS_SHLIB = -G -h $(TARGET1) ...@@ -44,9 +44,9 @@ TMAKE_LFLAGS_SHLIB = -G -h $(TARGET1)
TMAKE_LFLAGS_SONAME = TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm -lICE -lSM
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl -lGL
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
TMAKE_MOC = moc TMAKE_MOC = moc
......
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