summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2002-07-15 20:10:02 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2002-07-15 20:10:02 (GMT)
commitb860a5cc743f3297002876b58d4db5e504f4294d (patch)
treeb9a5247ad8e1b7ecda53346aa9e29e3e10167e5b
parentbcbf69496a8e7e703ecf4fb6e5de264f86ebea84 (diff)
downloadDoxygen-b860a5cc743f3297002876b58d4db5e504f4294d.zip
Doxygen-b860a5cc743f3297002876b58d4db5e504f4294d.tar.gz
Doxygen-b860a5cc743f3297002876b58d4db5e504f4294d.tar.bz2
Release-1.2.17
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--doc/Makefile.in2
-rw-r--r--doc/Makefile.win_make.in2
-rw-r--r--doc/Makefile.win_nmake.in2
-rw-r--r--doc/commands.doc4
-rw-r--r--doc/index.doc4
-rw-r--r--doc/language.doc34
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/classdef.cpp6
-rw-r--r--src/classdef.h2
-rw-r--r--src/doc.l22
-rw-r--r--src/dot.cpp29
-rw-r--r--src/dot.h4
-rw-r--r--src/doxygen.cpp8
-rw-r--r--src/htmlgen.cpp10
-rw-r--r--src/latexgen.cpp10
-rw-r--r--src/mangen.cpp1
-rw-r--r--src/rtfgen.cpp117
-rw-r--r--src/translator_br.h18
-rw-r--r--src/translator_cz.h19
-rw-r--r--src/translator_de.h16
-rw-r--r--src/translator_fr.h18
-rw-r--r--src/translator_hr.h14
-rw-r--r--src/translator_it.h18
-rw-r--r--src/translator_jp.h12
-rw-r--r--src/translator_pt.h16
-rw-r--r--src/translator_ru.h14
-rw-r--r--src/util.cpp27
-rwxr-xr-xtmake/lib/hpux-acc/tmake.conf6
-rwxr-xr-xtmake/lib/irix-n32/tmake.conf2
-rwxr-xr-xtmake/lib/solaris-cc/tmake.conf4
33 files changed, 314 insertions, 139 deletions
diff --git a/INSTALL b/INSTALL
index 82c2538..dbe9824 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
-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)
diff --git a/README b/README
index 7a7b2c2..1144ab2 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-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)
diff --git a/VERSION b/VERSION
index 436b3b9..b66183a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.16-20020707
+1.2.17
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 0c8711b..ae932f7 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -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
diff --git a/doc/Makefile.win_make.in b/doc/Makefile.win_make.in
index bcf28e4..bc1b772 100644
--- a/doc/Makefile.win_make.in
+++ b/doc/Makefile.win_make.in
@@ -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
diff --git a/doc/Makefile.win_nmake.in b/doc/Makefile.win_nmake.in
index d38116a..9775095 100644
--- a/doc/Makefile.win_nmake.in
+++ b/doc/Makefile.win_nmake.in
@@ -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
diff --git a/doc/commands.doc b/doc/commands.doc
index ee52cbe..5ceb1df 100644
--- a/doc/commands.doc
+++ b/doc/commands.doc
@@ -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)
diff --git a/doc/index.doc b/doc/index.doc
index 83c3613..d4b492a 100644
--- a/doc/index.doc
+++ b/doc/index.doc
@@ -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>
diff --git a/doc/language.doc b/doc/language.doc
index 2c15c0f..5433748 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -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
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index fca793c..b23e6d8 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,6 +1,6 @@
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
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 0f7672b..0185d47 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -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
diff --git a/src/classdef.h b/src/classdef.h
index fd7c1b4..1c5ce25 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -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();
diff --git a/src/doc.l b/src/doc.l
index ca6648c..6104962 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -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
diff --git a/src/dot.cpp b/src/dot.cpp
index f3533b5..a5ad72b 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -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);
}
diff --git a/src/dot.h b/src/dot.h
index 220b8e9..78c7e7d 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -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);
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 90b1ab2..36c86c3 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -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);
}
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index b165408..cdacaaa 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -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=\""
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 90b8bc4..fa6a104 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -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;
diff --git a/src/mangen.cpp b/src/mangen.cpp
index 8812387..ec3eff1 100644
--- a/src/mangen.cpp
+++ b/src/mangen.cpp
@@ -118,6 +118,7 @@ static QCString buildFileName(const char *name)
case '~':
case '%':
case '+':
+ case '/':
fileName+="_";
break;
default:
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 04ce7f4..7e813f9 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -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())
- {
- char c;
- char *p=result.data();
- while ((c=*p))
- {
- switch(c)
- {
- case '.':
- // fall through
- case ':':
- *p='_';
- break;
- default:
- break;
- }
- p++;
- }
- // Word doesn't like bookmarks that do not start with a alphabetical char
- if (!isalpha(result.at(0)))
- {
- result.prepend("BM");
- }
- }
- return result;
+ // 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 )
+ {
+ // 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 )
+ {
+ if ( ( ++(*nxtTag) ) > 'Z' )
+ {
+ (*nxtTag) = 'A';
+ }
+ else
+ {
+ // Since there was no carry, we can stop now
+ break;
+ }
+ }
+ }
+
+ 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 << "}";
}
diff --git a/src/translator_br.h b/src/translator_br.h
index eaf4cb2..ad51e49 100644
--- a/src/translator_br.h
+++ b/src/translator_br.h
@@ -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
diff --git a/src/translator_cz.h b/src/translator_cz.h
index 74e2ac2..d5b5f27 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -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";
}
};
diff --git a/src/translator_de.h b/src/translator_de.h
index 11fb085..c818fdd 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -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
diff --git a/src/translator_fr.h b/src/translator_fr.h
index 59119d4..f8ffa45 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -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
diff --git a/src/translator_hr.h b/src/translator_hr.h
index baff5d5..f6081db 100644
--- a/src/translator_hr.h
+++ b/src/translator_hr.h
@@ -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("Sadr¾aj");
+ }
+
};
#endif
diff --git a/src/translator_it.h b/src/translator_it.h
index 35f96d8..a24f381 100644
--- a/src/translator_it.h
+++ b/src/translator_it.h
@@ -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
diff --git a/src/translator_jp.h b/src/translator_jp.h
index 2275ea8..0f81f01 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -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
diff --git a/src/translator_pt.h b/src/translator_pt.h
index 3754517..7ebc4fa 100644
--- a/src/translator_pt.h
+++ b/src/translator_pt.h
@@ -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
diff --git a/src/translator_ru.h b/src/translator_ru.h
index d40f064..dafc470 100644
--- a/src/translator_ru.h
+++ b/src/translator_ru.h
@@ -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
diff --git a/src/util.cpp b/src/util.cpp
index 8af87d8..4ca7d8e 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -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"));
diff --git a/tmake/lib/hpux-acc/tmake.conf b/tmake/lib/hpux-acc/tmake.conf
index 1cd3940..2c49784 100755
--- a/tmake/lib/hpux-acc/tmake.conf
+++ b/tmake/lib/hpux-acc/tmake.conf
@@ -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
diff --git a/tmake/lib/irix-n32/tmake.conf b/tmake/lib/irix-n32/tmake.conf
index cc5e4f4..bc05cd2 100755
--- a/tmake/lib/irix-n32/tmake.conf
+++ b/tmake/lib/irix-n32/tmake.conf
@@ -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
diff --git a/tmake/lib/solaris-cc/tmake.conf b/tmake/lib/solaris-cc/tmake.conf
index 6e857c9..a9054d0 100755
--- a/tmake/lib/solaris-cc/tmake.conf
+++ b/tmake/lib/solaris-cc/tmake.conf
@@ -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