Commit b860a5cc authored by dimitri's avatar dimitri

Release-1.2.17

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