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

Release-1.2.17-20020811

parent d40e1dfa
DOXYGEN Version 1.2.17-20020804 DOXYGEN Version 1.2.17-20020811
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (04 August 2002) Dimitri van Heesch (11 August 2002)
DOXYGEN Version 1.2.17_20020804 DOXYGEN Version 1.2.17_20020811
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) (04 August 2002) Dimitri van Heesch (dimitri@stack.nl) (11 August 2002)
1.2.17-20020804 1.2.17-20020811
...@@ -58,7 +58,7 @@ of macros. This is to allow macro names to appear in the type of ...@@ -58,7 +58,7 @@ of macros. This is to allow macro names to appear in the type of
function parameters for instance. function parameters for instance.
Another difference is that the preprocessor parses, but not actually includes Another difference is that the preprocessor parses, but not actually includes
code when it encounters a #include (with the exception of #include code when it encounters a \#include (with the exception of \#include
found inside { ... } blocks). The reasons behind this deviation from found inside { ... } blocks). The reasons behind this deviation from
the standard is to prevent feeding multiple definitions of the the standard is to prevent feeding multiple definitions of the
same functions/classes to doxygen's parser. If all source files would same functions/classes to doxygen's parser. If all source files would
...@@ -67,7 +67,7 @@ definitions (and their documentation) would be present in each ...@@ -67,7 +67,7 @@ definitions (and their documentation) would be present in each
translation unit. translation unit.
The preprocessor is written using \c flex and can be found in The preprocessor is written using \c flex and can be found in
\c src/pre.l. For condition blocks (#if) evaluation of constant expressions \c src/pre.l. For condition blocks (\#if) evaluation of constant expressions
is needed. For this a \c yacc based parser is used, which can be found is needed. For this a \c yacc based parser is used, which can be found
in \c src/constexp.y and \c src/constexp.l. in \c src/constexp.y and \c src/constexp.l.
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<li><tt>(\<className\>"::")<sup>n</sup>\<functionName\>"()"</tt> <li><tt>(\<className\>"::")<sup>n</sup>\<functionName\>"()"</tt>
<li><tt>(\<className\>"::")<sup>n</sup>\<functionName\></tt> <li><tt>(\<className\>"::")<sup>n</sup>\<functionName\></tt>
</ol> </ol>
where n>0. where n\>0.
\par Note 1: \par Note 1:
The patterns above should not contain spaces, tabs or newlines. The patterns above should not contain spaces, tabs or newlines.
......
...@@ -90,6 +90,7 @@ documentation: ...@@ -90,6 +90,7 @@ documentation:
\refitem cmdline \\line \refitem cmdline \\line
\refitem cmdlink \\link \refitem cmdlink \\link
\refitem cmdmainpage \\mainpage \refitem cmdmainpage \\mainpage
\refitem cmdn \\n
\refitem cmdname \\name \refitem cmdname \\name
\refitem cmdnamespace \\namespace \refitem cmdnamespace \\namespace
\refitem cmdnosubgrouping \\nosubgrouping \refitem cmdnosubgrouping \\nosubgrouping
...@@ -205,7 +206,7 @@ doxygen. Unrecognized commands are treated as normal text. ...@@ -205,7 +206,7 @@ doxygen. Unrecognized commands are treated as normal text.
\addindex \\def \addindex \\def
Indicates that a comment block contains documentation for a Indicates that a comment block contains documentation for a
\c #define macro. \c \#define macro.
\par Example: \par Example:
\verbinclude define.h \verbinclude define.h
...@@ -1626,6 +1627,13 @@ ALIASES = "english=\if english" \ ...@@ -1626,6 +1627,13 @@ ALIASES = "english=\if english" \
Equivalent to \ref cmdarg "\\arg" Equivalent to \ref cmdarg "\\arg"
<hr>
\section cmdn \n
\addindex \\n
Forces a new line. Equivalent to \<br\> and inspired by
the printf function.
<hr> <hr>
\section cmdp \p <word> \section cmdp \p <word>
......
...@@ -104,7 +104,7 @@ You can document your class like ...@@ -104,7 +104,7 @@ You can document your class like
To make doxygen put <br><br> To make doxygen put <br><br>
<code> <code>
#include \<path/include.h\> \#include \<path/include.h\>
</code> </code>
in the documentation of the class MyClassName regardless of the name of the actual in the documentation of the class MyClassName regardless of the name of the actual
...@@ -192,15 +192,15 @@ remove the % and keep the word unlinked. ...@@ -192,15 +192,15 @@ remove the % and keep the word unlinked.
This error happens when doxygen lexical scanner has a rules that matches This error happens when doxygen lexical scanner has a rules that matches
more than 16K input character in one go. I've seen this happening more than 16K input character in one go. I've seen this happening
on a very large generated file (>16K lines), where the built-in preprocessor on a very large generated file (\>16K lines), where the built-in preprocessor
converted it into an empty file (with >16K of newlines). Another case converted it into an empty file (with \>16K of newlines). Another case
where this might happen is if you have lines in your code with more than where this might happen is if you have lines in your code with more than
16K characters. 16K characters.
If you have ran into such a case and want me to fix it, you If you have ran into such a case and want me to fix it, you
should send me a code fragment that triggers the message. should send me a code fragment that triggers the message.
<li><b>How did doxygen get it's name?</b> <li><b>How did doxygen get its name?</b>
Doxygen got its name from playing with the words Doxygen got its name from playing with the words
documentation and generator. documentation and generator.
......
...@@ -23,73 +23,73 @@ documentation. Note that all attributes of a HTML tag are ignored ...@@ -23,73 +23,73 @@ documentation. Note that all attributes of a HTML tag are ignored
<ul> <ul>
<li><tt>\<A HREF="..."\></tt> Starts a HTML hyper-link (HTML only). <li><tt>\<A HREF="..."\></tt> Starts a HTML hyper-link (HTML only).
<li><tt>\<A NAME="..."\></tt> Starts an named anchor (HTML only). <li><tt>\<A NAME="..."\></tt> Starts an named anchor (HTML only).
<li><tt>\</A></tt> Ends a link or anchor (HTML only). <li><tt>\</A\></tt> Ends a link or anchor (HTML only).
<li><tt>\<B></tt> Starts a piece of text displayed in a bold font. <li><tt>\<B\></tt> Starts a piece of text displayed in a bold font.
<li><tt>\</B></tt> Ends a <tt>\<B\></tt> section. <li><tt>\</B\></tt> Ends a <tt>\<B\></tt> section.
<li><tt>\<BODY></tt> Does not generate any output. <li><tt>\<BODY\></tt> Does not generate any output.
<li><tt>\</BODY></tt> Does not generate any output. <li><tt>\</BODY\></tt> Does not generate any output.
<li><tt>\<BR></tt> Forces a line break. <li><tt>\<BR\></tt> Forces a line break.
<li><tt>\<CENTER></tt> starts a section of centered text. <li><tt>\<CENTER\></tt> starts a section of centered text.
<li><tt>\</CENTER></tt> ends a section of centered text. <li><tt>\</CENTER\></tt> ends a section of centered text.
<li><tt>\<CAPTION></tt> Starts a caption. Use within a table only. <li><tt>\<CAPTION\></tt> Starts a caption. Use within a table only.
<li><tt>\</CAPTION></tt> Ends a caption. Use within a table only. <li><tt>\</CAPTION\></tt> Ends a caption. Use within a table only.
<li><tt>\<CODE></tt> Starts a piece of text displayed in a typewriter font. <li><tt>\<CODE\></tt> Starts a piece of text displayed in a typewriter font.
<li><tt>\</CODE></tt> End a <tt>\<CODE\></tt> section. <li><tt>\</CODE\></tt> End a <tt>\<CODE\></tt> section.
<li><tt>\<DD></tt> Starts an item description. <li><tt>\<DD\></tt> Starts an item description.
<li><tt>\<DFN></tt> Starts a piece of text displayed in a typewriter font. <li><tt>\<DFN\></tt> Starts a piece of text displayed in a typewriter font.
<li><tt>\</DFN></tt> Ends a <tt>\<DFN\></tt> section. <li><tt>\</DFN\></tt> Ends a <tt>\<DFN\></tt> section.
<li><tt>\<DL></tt> Starts a description list. <li><tt>\<DL\></tt> Starts a description list.
<li><tt>\</DL></tt> Ends a description list. <li><tt>\</DL\></tt> Ends a description list.
<li><tt>\<DT></tt> Starts an item title. <li><tt>\<DT\></tt> Starts an item title.
<li><tt>\</DT></tt> Ends an item title. <li><tt>\</DT\></tt> Ends an item title.
<li><tt>\<EM></tt> Starts a piece of text displayed in an italic font. <li><tt>\<EM\></tt> Starts a piece of text displayed in an italic font.
<li><tt>\</EM></tt> Ends a <tt>\<EM\></tt> section. <li><tt>\</EM\></tt> Ends a <tt>\<EM\></tt> section.
<li><tt>\<FORM></tt> Does not generate any output. <li><tt>\<FORM\></tt> Does not generate any output.
<li><tt>\</FORM></tt> Does not generate any output. <li><tt>\</FORM\></tt> Does not generate any output.
<li><tt>\<HR></tt> Writes a horizontal ruler. <li><tt>\<HR\></tt> Writes a horizontal ruler.
<li><tt>\<H1></tt> Starts an unnumbered section. <li><tt>\<H1\></tt> Starts an unnumbered section.
<li><tt>\</H1></tt> Ends an unnumberd section. <li><tt>\</H1\></tt> Ends an unnumberd section.
<li><tt>\<H2></tt> Starts an unnumbered subsection. <li><tt>\<H2\></tt> Starts an unnumbered subsection.
<li><tt>\</H2></tt> Ends an unnumbered subsection. <li><tt>\</H2\></tt> Ends an unnumbered subsection.
<li><tt>\<H3></tt> Starts an unnumbered subsubsection. <li><tt>\<H3\></tt> Starts an unnumbered subsubsection.
<li><tt>\</H3></tt> Ends an unnumbered subsubsection. <li><tt>\</H3\></tt> Ends an unnumbered subsubsection.
<li><tt>\<I></tt> Starts a piece of text displayed in an italic font. <li><tt>\<I\></tt> Starts a piece of text displayed in an italic font.
<li><tt>\<INPUT></tt> Does not generate any output. <li><tt>\<INPUT\></tt> Does not generate any output.
<li><tt>\</I></tt> Ends a <tt>\<I\></tt> section. <li><tt>\</I\></tt> Ends a <tt>\<I\></tt> section.
<li><tt>\<IMG></tt> This command is written with attributes to the HTML output only. <li><tt>\<IMG\></tt> This command is written with attributes to the HTML output only.
<li><tt>\<LI></tt> Starts a new list item. <li><tt>\<LI\></tt> Starts a new list item.
<li><tt>\</LI></tt> Ends a list item. <li><tt>\</LI\></tt> Ends a list item.
<li><tt>\<META></tt> Does not generate any output. <li><tt>\<META\></tt> Does not generate any output.
<li><tt>\<MULTICOL></tt> ignored by doxygen. <li><tt>\<MULTICOL\></tt> ignored by doxygen.
<li><tt>\</MUTLICOL></tt> ignored by doxygen. <li><tt>\</MUTLICOL\></tt> ignored by doxygen.
<li><tt>\<OL></tt> Starts a numbered item list. <li><tt>\<OL\></tt> Starts a numbered item list.
<li><tt>\</OL></tt> Ends a numbered item list. <li><tt>\</OL\></tt> Ends a numbered item list.
<li><tt>\<P></tt> Starts a new paragraph. <li><tt>\<P\></tt> Starts a new paragraph.
<li><tt>\</P></tt> Ends a paragraph. <li><tt>\</P\></tt> Ends a paragraph.
<li><tt>\<PRE></tt> Starts a preformatted fragment. <li><tt>\<PRE\></tt> Starts a preformatted fragment.
<li><tt>\</PRE></tt> Ends a preformatted fragment. <li><tt>\</PRE\></tt> Ends a preformatted fragment.
<li><tt>\<SMALL></tt> Starts a section of text displayed in a smaller font. <li><tt>\<SMALL\></tt> Starts a section of text displayed in a smaller font.
<li><tt>\</SMALL></tt> Ends a <tt>\<SMALL\></tt> section. <li><tt>\</SMALL\></tt> Ends a <tt>\<SMALL\></tt> section.
<li><tt>\<STRONG></tt> Starts a section of bold text. <li><tt>\<STRONG\></tt> Starts a section of bold text.
<li><tt>\</STRONG></tt> Ends a section of bold text. <li><tt>\</STRONG\></tt> Ends a section of bold text.
<li><tt>\<SUB></tt> Starts a piece of text displayed in subscript. <li><tt>\<SUB\></tt> Starts a piece of text displayed in subscript.
<li><tt>\</SUB></tt> Ends a <tt>\<SUB\></tt> section. <li><tt>\</SUB\></tt> Ends a <tt>\<SUB\></tt> section.
<li><tt>\<SUP></tt> Starts a piece of text displayed in superscript. <li><tt>\<SUP\></tt> Starts a piece of text displayed in superscript.
<li><tt>\</SUP></tt> Ends a <tt>\</SUP\></tt> section. <li><tt>\</SUP\></tt> Ends a <tt>\</SUP\></tt> section.
<li><tt>\<TABLE></tt> starts a table. <li><tt>\<TABLE\></tt> starts a table.
<li><tt>\</TABLE></tt> ends a table. <li><tt>\</TABLE\></tt> ends a table.
<li><tt>\<TD></tt> Starts a new table data element. <li><tt>\<TD\></tt> Starts a new table data element.
<li><tt>\</TD></tt> Ends a table data element. <li><tt>\</TD\></tt> Ends a table data element.
<li><tt>\<TR></tt> Starts a new table row. <li><tt>\<TR\></tt> Starts a new table row.
<li><tt>\</TR></tt> Ends a table row. <li><tt>\</TR\></tt> Ends a table row.
<li><tt>\<TT></tt> Starts a piece of text displayed in a typewriter font. <li><tt>\<TT\></tt> Starts a piece of text displayed in a typewriter font.
<li><tt>\</TT></tt> Ends a <tt>\<TT\></tt> section. <li><tt>\</TT\></tt> Ends a <tt>\<TT\></tt> section.
<li><tt>\<KBD></tt> Starts a piece of text displayed in a typewriter font. <li><tt>\<KBD\></tt> Starts a piece of text displayed in a typewriter font.
<li><tt>\</KBD></tt> Ends a <tt>\<KBD\></tt> section. <li><tt>\</KBD\></tt> Ends a <tt>\<KBD\></tt> section.
<li><tt>\<UL></tt> Starts an unnumbered item list. <li><tt>\<UL\></tt> Starts an unnumbered item list.
<li><tt>\</UL></tt> Ends an unnumbered item list. <li><tt>\</UL\></tt> Ends an unnumbered item list.
<li><tt>\<VAR></tt> Starts a piece of text displayed in an italic font. <li><tt>\<VAR\></tt> Starts a piece of text displayed in an italic font.
<li><tt>\</VAR></tt> Ends a <tt>\</VAR\></tt> section. <li><tt>\</VAR\></tt> Ends a <tt>\</VAR\></tt> section.
</ul> </ul>
The special HTML character entities that are recognized by Doxygen: The special HTML character entities that are recognized by Doxygen:
......
...@@ -181,8 +181,9 @@ Compilation is now done by performing the following steps: ...@@ -181,8 +181,9 @@ Compilation is now done by performing the following steps:
directory manually to some <code>bin</code> directory in your search path. directory manually to some <code>bin</code> directory in your search path.
This is sufficient to use doxygen. This is sufficient to use doxygen.
\note You need the GNU install tool for this to work. Other \note You need the GNU install tool for this to work (it is part of
install tools may put the binaries in the wrong directory! the fileutils package). Other install tools may put the binaries in
the wrong directory!
If you have a RPM or DEP package, then please follow the If you have a RPM or DEP package, then please follow the
standard installation procedure that is required for these packages. standard installation procedure that is required for these packages.
......
...@@ -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.17-20020804), 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,
...@@ -133,7 +133,7 @@ when the translator was updated. ...@@ -133,7 +133,7 @@ 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.17</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Japanese</TD> <TD>Japanese</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.17</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Serbian</TD> <TD>Serbian</TD>
...@@ -252,7 +252,7 @@ when the translator was updated. ...@@ -252,7 +252,7 @@ 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.17 \\ 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.17 \\ Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} & 1.2.17 \\
...@@ -269,7 +269,7 @@ when the translator was updated. ...@@ -269,7 +269,7 @@ when the translator was updated.
\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.17 \\ 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
...@@ -315,8 +315,8 @@ Just follow these steps: ...@@ -315,8 +315,8 @@ Just follow these steps:
defines which language translators will be compiled into doxygen defines which language translators will be compiled into doxygen
executable. It is a kind of configuration file. If you are sure that executable. It is a kind of configuration file. If you are sure that
you do not need some of the languages, you can remove (comment out) you do not need some of the languages, you can remove (comment out)
definitions of symbols for the languages, or you can say \c #undef definitions of symbols for the languages, or you can say \c \#undef
instead of \c #define for them. instead of \c \#define for them.
<li>Edit language.cpp: <li>Edit language.cpp:
Add a Add a
\verbatim \verbatim
...@@ -346,7 +346,7 @@ Just follow these steps: ...@@ -346,7 +346,7 @@ Just follow these steps:
<li>Edit <code>translator_xx.h</code>: <li>Edit <code>translator_xx.h</code>:
<ul> <ul>
<li>Rename <code>TRANSLATOR_EN_H</code> to <code>TRANSLATOR_XX_H</code> <li>Rename <code>TRANSLATOR_EN_H</code> to <code>TRANSLATOR_XX_H</code>
twice (i.e. in the \c #ifndef and \c #define preprocessor commands at twice (i.e. in the \c \#ifndef and \c \#define preprocessor commands at
the beginning of the file). the beginning of the file).
<li>Rename TranslatorEnglish to TranslatorYourLanguage <li>Rename TranslatorEnglish to TranslatorYourLanguage
<li>In the member <code>idLanguage()</code> change "english" into the <li>In the member <code>idLanguage()</code> change "english" into the
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.2.17_20020804 Version: 1.2.17_20020811
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
......
...@@ -39,7 +39,10 @@ ...@@ -39,7 +39,10 @@
static QCString stripExtension(const char *fName) static QCString stripExtension(const char *fName)
{ {
QCString result=fName; QCString result=fName;
if (result.right(htmlFileExtensionLength)==htmlFileExtension) result=result.left(result.length()-htmlFileExtensionLength); if (result.right(Doxygen::htmlFileExtension.length())==Doxygen::htmlFileExtension)
{
result=result.left(result.length()-Doxygen::htmlFileExtension.length());
}
return result; return result;
} }
...@@ -853,7 +856,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -853,7 +856,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
Doxygen::tagFile << " <compound kind=\"" << compoundTypeString(); Doxygen::tagFile << " <compound kind=\"" << compoundTypeString();
Doxygen::tagFile << "\">" << endl; Doxygen::tagFile << "\">" << endl;
Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << htmlFileExtension << "</filename>" << endl; Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl;
if (m_tempArgs) if (m_tempArgs)
{ {
ArgumentListIterator ali(*m_tempArgs); ArgumentListIterator ali(*m_tempArgs);
...@@ -993,7 +996,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -993,7 +996,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.writeString("<center><font size=\"2\">["); ol.writeString("<center><font size=\"2\">[");
ol.startHtmlLink("graph_legend"+htmlFileExtension); ol.startHtmlLink("graph_legend"+Doxygen::htmlFileExtension);
ol.docify(theTranslator->trLegend()); ol.docify(theTranslator->trLegend());
ol.endHtmlLink(); ol.endHtmlLink();
ol.writeString("]</font></center>"); ol.writeString("]</font></center>");
...@@ -1028,7 +1031,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -1028,7 +1031,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.writeString("<center><font size=\"2\">["); ol.writeString("<center><font size=\"2\">[");
ol.startHtmlLink("graph_legend"+htmlFileExtension); ol.startHtmlLink("graph_legend"+Doxygen::htmlFileExtension);
ol.docify(theTranslator->trLegend()); ol.docify(theTranslator->trLegend());
ol.endHtmlLink(); ol.endHtmlLink();
ol.writeString("]</font></center>"); ol.writeString("]</font></center>");
......
...@@ -86,7 +86,8 @@ CommandMap cmdMap[] = ...@@ -86,7 +86,8 @@ CommandMap cmdMap[] =
{ "verbinclude", CMD_VERBINCLUDE }, { "verbinclude", CMD_VERBINCLUDE },
{ "version", CMD_VERSION }, { "version", CMD_VERSION },
{ "warning", CMD_WARNING }, { "warning", CMD_WARNING },
{ "authors", CMD_AUTHOR }, { "author", CMD_AUTHOR },
{ "authors", CMD_AUTHORS },
{ "throws", CMD_EXCEPTION }, { "throws", CMD_EXCEPTION },
{ "\\", CMD_BSLASH }, { "\\", CMD_BSLASH },
{ "@", CMD_AT }, { "@", CMD_AT },
...@@ -97,6 +98,7 @@ CommandMap cmdMap[] = ...@@ -97,6 +98,7 @@ CommandMap cmdMap[] =
{ "#", CMD_HASH }, { "#", CMD_HASH },
{ "%", CMD_PERCENT }, { "%", CMD_PERCENT },
{ "~", CMD_LANGSWITCH }, { "~", CMD_LANGSWITCH },
{ "_internalref", CMD_INTERNALREF },
{ 0, 0 } { 0, 0 }
}; };
......
...@@ -31,73 +31,75 @@ const int SIMPLESECT_BIT = 0x1000; ...@@ -31,73 +31,75 @@ const int SIMPLESECT_BIT = 0x1000;
enum CommandType enum CommandType
{ {
CMD_UNKNOWN=0, CMD_UNKNOWN = 0,
CMD_ADDINDEX=1, /* DocIndex, word as arg */ CMD_ADDINDEX = 1,
CMD_ANCHOR=2, CMD_ANCHOR = 2,
CMD_ATTENTION=3 | SIMPLESECT_BIT, CMD_ATTENTION = 3 | SIMPLESECT_BIT,
CMD_AUTHOR=4 | SIMPLESECT_BIT, CMD_AUTHOR = 4 | SIMPLESECT_BIT,
CMD_BOLD=5, CMD_BOLD = 5,
CMD_BUG=6 | SIMPLESECT_BIT, CMD_BUG = 6 | SIMPLESECT_BIT,
CMD_CODE=7, CMD_CODE = 7,
CMD_COPYDOC=8, /* reference yields subtree */ CMD_COPYDOC = 8,
CMD_DATE=9 | SIMPLESECT_BIT, CMD_DATE = 9 | SIMPLESECT_BIT,
CMD_DEPRECATED=10 | SIMPLESECT_BIT, CMD_DEPRECATED = 10 | SIMPLESECT_BIT,
CMD_DONTINCLUDE=11, /* file name */ CMD_DONTINCLUDE = 11,
CMD_DOTFILE=12, /* file name */ CMD_DOTFILE = 12,
CMD_EMPHASIS =13, CMD_EMPHASIS = 13,
CMD_ENDCODE=14, CMD_ENDCODE = 14,
CMD_ENDHTMLONLY=15, CMD_ENDHTMLONLY = 15,
CMD_ENDLATEXONLY=16, CMD_ENDLATEXONLY = 16,
CMD_ENDLINK=17, CMD_ENDLINK = 17,
CMD_ENDVERBATIM=18 , CMD_ENDVERBATIM = 18,
CMD_EXCEPTION=19 | SIMPLESECT_BIT, CMD_EXCEPTION = 19 | SIMPLESECT_BIT,
CMD_HTMLINCLUDE=20 , CMD_HTMLINCLUDE = 20,
CMD_HTMLONLY=21 , CMD_HTMLONLY = 21,
CMD_IMAGE=22 , /* some number of arguments */ CMD_IMAGE = 22,
CMD_INCLUDE=23 , CMD_INCLUDE = 23,
CMD_INTERNAL=24 , /* node, with sub paragraphs? */ CMD_INTERNAL = 24,
CMD_INVARIANT=25| SIMPLESECT_BIT , CMD_INVARIANT = 25 | SIMPLESECT_BIT ,
CMD_LATEXONLY=26 , CMD_LATEXONLY = 26,
CMD_LI=27 , CMD_LI = 27,
CMD_LINE=28 , CMD_LINE = 28,
CMD_LINK=29 , /* argument + "text", TODO {@link...} */ CMD_LINK = 29,
CMD_NOTE=30 | SIMPLESECT_BIT , CMD_NOTE = 30 | SIMPLESECT_BIT ,
CMD_PAR=31 | SIMPLESECT_BIT , CMD_PAR = 31 | SIMPLESECT_BIT ,
CMD_PARAM=32 | SIMPLESECT_BIT, CMD_PARAM = 32 | SIMPLESECT_BIT,
CMD_POST=33 | SIMPLESECT_BIT, CMD_POST = 33 | SIMPLESECT_BIT,
CMD_PRE=34 | SIMPLESECT_BIT , CMD_PRE = 34 | SIMPLESECT_BIT ,
CMD_REF=35 , CMD_REF = 35,
CMD_SECREFITEM=36 , CMD_SECREFITEM = 36,
CMD_REMARK=37 | SIMPLESECT_BIT , CMD_REMARK = 37 | SIMPLESECT_BIT ,
CMD_RETURN=38 | SIMPLESECT_BIT , CMD_RETURN = 38 | SIMPLESECT_BIT ,
CMD_RETVAL=39 | SIMPLESECT_BIT, CMD_RETVAL = 39 | SIMPLESECT_BIT,
CMD_SA=40 | SIMPLESECT_BIT , CMD_SA = 40 | SIMPLESECT_BIT ,
CMD_SECTION=41 , CMD_SECTION = 41,
CMD_SINCE=42 | SIMPLESECT_BIT, CMD_SINCE = 42 | SIMPLESECT_BIT,
CMD_SKIP=43 , CMD_SKIP = 43,
CMD_SKIPLINE=44 , CMD_SKIPLINE = 44,
CMD_STARTCODE=45, CMD_STARTCODE = 45,
CMD_JAVALINK=46, CMD_JAVALINK = 46,
CMD_TEST=47 | SIMPLESECT_BIT, CMD_TEST = 47 | SIMPLESECT_BIT,
CMD_TODO=48 | SIMPLESECT_BIT, CMD_TODO = 48 | SIMPLESECT_BIT,
CMD_UNTIL=49 , CMD_UNTIL = 49,
CMD_VERBATIM=50 , CMD_VERBATIM = 50,
CMD_VERBINCLUDE=51 , CMD_VERBINCLUDE = 51,
CMD_VERSION=52 | SIMPLESECT_BIT, CMD_VERSION = 52 | SIMPLESECT_BIT,
CMD_WARNING=53 | SIMPLESECT_BIT , CMD_WARNING = 53 | SIMPLESECT_BIT ,
CMD_BSLASH=54 , CMD_BSLASH = 54,
CMD_AT=55 , CMD_AT = 55,
CMD_LESS=56 , CMD_LESS = 56,
CMD_GREATER=57 , CMD_GREATER = 57,
CMD_AMP=58 , CMD_AMP = 58,
CMD_DOLLAR=59 , CMD_DOLLAR = 59,
CMD_HASH=60 , CMD_HASH = 60,
CMD_PERCENT=61, CMD_PERCENT = 61,
CMD_LINEBREAK=62, CMD_LINEBREAK = 62,
CMD_FORMULA=63, CMD_FORMULA = 63,
CMD_SECREFLIST=64, CMD_SECREFLIST = 64,
CMD_ENDSECREFLIST=65, CMD_ENDSECREFLIST= 65,
CMD_LANGSWITCH=66 CMD_LANGSWITCH = 66,
CMD_AUTHORS = 67 | SIMPLESECT_BIT,
CMD_INTERNALREF = 68
}; };
enum HtmlTagType enum HtmlTagType
......
...@@ -21,11 +21,11 @@ ...@@ -21,11 +21,11 @@
#include "qtbc.h" #include "qtbc.h"
#include <stdio.h> #include <stdio.h>
class OutputDocInterface; class BaseCodeDocInterface;
class FileDef; class FileDef;
class MemberDef; class MemberDef;
extern void parseCode(OutputDocInterface &,const char *,const QCString &, extern void parseCode(BaseCodeDocInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd=0, bool ,const char *,FileDef *fd=0,
int startLine=-1,int endLine=-1,bool inlineFragment=FALSE); int startLine=-1,int endLine=-1,bool inlineFragment=FALSE);
extern void initParseCodeContext(); extern void initParseCodeContext();
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
* statics * statics
*/ */
static OutputDocInterface * g_code; static BaseCodeDocInterface * g_code;
static ClassSDict g_codeClassSDict(17); static ClassSDict g_codeClassSDict(17);
static ClassDef *g_curClassDef; static ClassDef *g_curClassDef;
...@@ -414,7 +414,7 @@ static void codifyLines(char *text) ...@@ -414,7 +414,7 @@ static void codifyLines(char *text)
* line numbers for each line. If \a text contains newlines, the link will be * line numbers for each line. If \a text contains newlines, the link will be
* split into multiple links with the same destination, one for each line. * split into multiple links with the same destination, one for each line.
*/ */
static void writeMultiLineCodeLink(OutputDocInterface &ol, static void writeMultiLineCodeLink(BaseCodeDocInterface &ol,
const char *ref,const char *file, const char *ref,const char *file,
const char *anchor,const char *text) const char *anchor,const char *text)
{ {
...@@ -610,7 +610,7 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst) ...@@ -610,7 +610,7 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst)
} }
static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *clNameLen=0) static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int *clNameLen=0)
{ {
int i=0; int i=0;
if (*clName=='~') // correct for matching negated values i.s.o. destructors. if (*clName=='~') // correct for matching negated values i.s.o. destructors.
...@@ -642,11 +642,7 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c ...@@ -642,11 +642,7 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c
// g_exampleFile.data()); // g_exampleFile.data());
if (cd->addExample(anchor,g_exampleName,g_exampleFile)) if (cd->addExample(anchor,g_exampleName,g_exampleFile))
{ {
ol.pushGeneratorState(); ol.writeCodeAnchor(anchor);
ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::RTF);
ol.writeAnchor(0,anchor);
ol.popGeneratorState();
g_anchorCount++; g_anchorCount++;
} }
} }
...@@ -681,7 +677,8 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c ...@@ -681,7 +677,8 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c
} }
static bool getLink(const char *className, static bool getLink(const char *className,
const char *memberName,OutputDocInterface &result, const char *memberName,
BaseCodeDocInterface &ol,
const char *text=0) const char *text=0)
{ {
MemberDef *md; MemberDef *md;
...@@ -704,13 +701,7 @@ static bool getLink(const char *className, ...@@ -704,13 +701,7 @@ static bool getLink(const char *className,
// g_exampleFile.data()); // g_exampleFile.data());
if (md->addExample(anchor,g_exampleName,g_exampleFile)) if (md->addExample(anchor,g_exampleName,g_exampleFile))
{ {
//bool latexEnabled = result.isEnabled(OutputGenerator::Latex); ol.writeCodeAnchor(anchor);
result.pushGeneratorState();
//if (latexEnabled) result.disable(OutputGenerator::Latex);
result.disable(OutputGenerator::Latex);
result.writeAnchor(0,anchor);
result.popGeneratorState();
//if (latexEnabled) result.enable(OutputGenerator::Latex);
g_anchorCount++; g_anchorCount++;
} }
} }
...@@ -733,7 +724,7 @@ static bool getLink(const char *className, ...@@ -733,7 +724,7 @@ static bool getLink(const char *className,
} }
//printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data()); //printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data());
writeMultiLineCodeLink(result,d->getReference(),d->getOutputFileBase(), writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),
md->getBodyAnchor(),text ? text : memberName); md->getBodyAnchor(),text ? text : memberName);
return TRUE; return TRUE;
} }
...@@ -741,7 +732,7 @@ static bool getLink(const char *className, ...@@ -741,7 +732,7 @@ static bool getLink(const char *className,
return FALSE; return FALSE;
} }
static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const char *memName) static bool generateClassMemberLink(BaseCodeDocInterface &ol,ClassDef *mcd,const char *memName)
{ {
if (mcd) if (mcd)
{ {
...@@ -764,10 +755,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c ...@@ -764,10 +755,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
// g_exampleFile.data()); // g_exampleFile.data());
if (xmd->addExample(anchor,g_exampleName,g_exampleFile)) if (xmd->addExample(anchor,g_exampleName,g_exampleFile))
{ {
ol.pushGeneratorState(); ol.writeCodeAnchor(anchor);
ol.disable(OutputGenerator::Latex);
ol.writeAnchor(0,anchor);
ol.popGeneratorState();
g_anchorCount++; g_anchorCount++;
} }
} }
...@@ -799,7 +787,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c ...@@ -799,7 +787,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
return FALSE; return FALSE;
} }
static void generateMemberLink(OutputDocInterface &ol,const QCString &varName, static void generateMemberLink(BaseCodeDocInterface &ol,const QCString &varName,
char *memName) char *memName)
{ {
//printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n", //printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
...@@ -812,23 +800,17 @@ static void generateMemberLink(OutputDocInterface &ol,const QCString &varName, ...@@ -812,23 +800,17 @@ static void generateMemberLink(OutputDocInterface &ol,const QCString &varName,
if (vcd) if (vcd)
{ {
//printf("Class found!\n"); //printf("Class found!\n");
OutputDocInterface *result = ol.clone(); if (getLink(vcd->name(),memName,ol))
if (getLink(vcd->name(),memName,*result))
{ {
//printf("Found result!\n"); //printf("Found result!\n");
ol.append(result);
delete result;
return; return;
} }
BaseClassListIterator bcli(*vcd->baseClasses()); BaseClassListIterator bcli(*vcd->baseClasses());
for ( ; bcli.current() ; ++bcli) for ( ; bcli.current() ; ++bcli)
{ {
OutputDocInterface *result = ol.clone(); if (getLink(bcli.current()->classDef->name(),memName,ol))
if (getLink(bcli.current()->classDef->name(),memName,*result))
{ {
//printf("Found result!\n"); //printf("Found result!\n");
ol.append(result);
delete result;
return; return;
} }
} }
...@@ -896,9 +878,8 @@ static void generateMemberLink(OutputDocInterface &ol,const QCString &varName, ...@@ -896,9 +878,8 @@ static void generateMemberLink(OutputDocInterface &ol,const QCString &varName,
return; return;
} }
static void generateFunctionLink(OutputDocInterface &ol,char *funcName) static void generateFunctionLink(BaseCodeDocInterface &ol,char *funcName)
{ {
OutputDocInterface *result = ol.clone();
//CodeClassDef *ccd=0; //CodeClassDef *ccd=0;
ClassDef *ccd=0; ClassDef *ccd=0;
QCString locScope=g_classScope.copy(); QCString locScope=g_classScope.copy();
...@@ -924,24 +905,16 @@ static void generateFunctionLink(OutputDocInterface &ol,char *funcName) ...@@ -924,24 +905,16 @@ static void generateFunctionLink(OutputDocInterface &ol,char *funcName)
BaseClassListIterator bcli(*ccd->baseClasses()); BaseClassListIterator bcli(*ccd->baseClasses());
for ( ; bcli.current() ; ++bcli) for ( ; bcli.current() ; ++bcli)
{ {
if (getLink(bcli.current()->classDef->name(),locFunc,*result,funcName)) if (getLink(bcli.current()->classDef->name(),locFunc,ol,funcName))
{ {
ol.append(result);
delete result;
return; return;
} }
} }
} }
if (getLink(locScope,locFunc,*result,funcName)) if (!getLink(locScope,locFunc,ol,funcName))
{ {
ol.append(result);
}
else
{
//codifyLines(funcName);
generateClassOrGlobalLink(ol,funcName); generateClassOrGlobalLink(ol,funcName);
} }
delete result;
return; return;
} }
...@@ -2008,12 +1981,12 @@ void initParseCodeContext() ...@@ -2008,12 +1981,12 @@ void initParseCodeContext()
g_anchorCount = 0; g_anchorCount = 0;
} }
void parseCode(OutputDocInterface &od,const char *className,const QCString &s, void parseCode(BaseCodeDocInterface &od,const char *className,const QCString &s,
bool exBlock, const char *exName,FileDef *fd, bool exBlock, const char *exName,FileDef *fd,
int startLine,int endLine,bool inlineFragment) int startLine,int endLine,bool inlineFragment)
{ {
if (s.isEmpty()) return; if (s.isEmpty()) return;
g_code = od.clone(); g_code = &od;
g_inputString = s; g_inputString = s;
g_inputPosition = 0; g_inputPosition = 0;
g_currentFontClass = 0; g_currentFontClass = 0;
...@@ -2060,8 +2033,6 @@ void parseCode(OutputDocInterface &od,const char *className,const QCString &s, ...@@ -2060,8 +2033,6 @@ void parseCode(OutputDocInterface &od,const char *className,const QCString &s,
endFontClass(); endFontClass();
g_code->endCodeLine(); g_code->endCodeLine();
} }
od.append(g_code);
delete g_code;
return; return;
} }
......
...@@ -408,6 +408,9 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName, ...@@ -408,6 +408,9 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
name.prepend(scope+"::"); name.prepend(scope+"::");
} }
} }
if (md->isFunction() || md->isSlot() ||
md->isPrototype() || md->isSignal()
) name+="()";
Definition *d = md->getOuterScope(); Definition *d = md->getOuterScope();
if (d==Doxygen::globalScope) d=md->getBodyDef(); if (d==Doxygen::globalScope) d=md->getBodyDef();
if (md->getStartBodyLine()!=-1 && md->getBodyDef()) if (md->getStartBodyLine()!=-1 && md->getBodyDef())
...@@ -447,7 +450,6 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName, ...@@ -447,7 +450,6 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
{ {
ol.docify(name); ol.docify(name);
} }
if (md->isFunction() || md->isSlot() || md->isPrototype() || md->isSignal()) ol.docify("()");
} }
index=newIndex+matchLen; index=newIndex+matchLen;
} }
......
...@@ -166,7 +166,7 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,int x,int y,int w,int h) ...@@ -166,7 +166,7 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,int x,int y,int w,int h)
{ {
if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/"; if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/";
} }
t << cd->getOutputFileBase() << htmlFileExtension << "\" "; t << cd->getOutputFileBase() << Doxygen::htmlFileExtension << "\" ";
t << "alt=\"" << cd->displayName(); t << "alt=\"" << cd->displayName();
t << "\" shape=\"rect\" coords=\"" << x << "," << y << ","; t << "\" shape=\"rect\" coords=\"" << x << "," << y << ",";
t << (x+w) << "," << (y+h) << "\">" << endl; t << (x+w) << "," << (y+h) << "\">" << endl;
......
/***************************************************************************** /****************************************************************************
* *
* *
* *
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <qregexp.h> #include <qregexp.h>
// new experimental parser // new experimental parser
#include "docparser.h"
#include "debug.h" #include "debug.h"
#include "doc.h" #include "doc.h"
...@@ -446,7 +445,10 @@ static QCString stripKnownExtensions(const char *text) ...@@ -446,7 +445,10 @@ static QCString stripKnownExtensions(const char *text)
{ {
QCString result=text; QCString result=text;
if (result.right(4)==".tex") result=result.left(result.length()-4); if (result.right(4)==".tex") result=result.left(result.length()-4);
else if (result.right(htmlFileExtensionLength)==htmlFileExtension) result=result.left(result.length()-htmlFileExtensionLength); else if (result.right(Doxygen::htmlFileExtension.length())==Doxygen::htmlFileExtension)
{
result=result.left(result.length()-Doxygen::htmlFileExtension.length());
}
//printf("%s stripKnowExtensions(%s)\n",result.data(),text); //printf("%s stripKnowExtensions(%s)\n",result.data(),text);
return result; return result;
} }
...@@ -1928,9 +1930,9 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? ...@@ -1928,9 +1930,9 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
internalRefAnchor.resize(0); internalRefAnchor.resize(0);
BEGIN(DocInternalRef); BEGIN(DocInternalRef);
} }
<DocInternalRef>[A-Z_a-z0-9.:\-\+]+ { <DocInternalRef>[A-Z_a-z0-9.:#\-\+]+ {
internalRefFile=yytext; internalRefFile=yytext;
int i = internalRefFile.find(':'); int i = internalRefFile.find('#');
if (i!=-1) if (i!=-1)
{ {
internalRefAnchor=internalRefFile.right(internalRefFile.length()-i-1); internalRefAnchor=internalRefFile.right(internalRefFile.length()-i-1);
...@@ -2947,7 +2949,7 @@ void parseDoc(OutputDocInterface &od,const char *fileName,int startLine, ...@@ -2947,7 +2949,7 @@ void parseDoc(OutputDocInterface &od,const char *fileName,int startLine,
if (Debug::isFlagSet(Debug::Validate)) if (Debug::isFlagSet(Debug::Validate))
{ {
validatingParseDoc(fileName,startLine,docStr); od.parseDoc(fileName,startLine,clName,md,docStr);
} }
strcpy(yyFileName,fileName); strcpy(yyFileName,fileName);
......
This diff is collapsed.
This diff is collapsed.
...@@ -25,15 +25,16 @@ ...@@ -25,15 +25,16 @@
enum Tokens enum Tokens
{ {
TK_WORD = 1, TK_WORD = 1,
TK_WHITESPACE = 2, TK_LNKWORD = 2,
TK_LISTITEM = 3, TK_WHITESPACE = 3,
TK_ENDLIST = 4, TK_LISTITEM = 4,
TK_COMMAND = 5, TK_ENDLIST = 5,
TK_HTMLTAG = 6, TK_COMMAND = 6,
TK_SYMBOL = 7, TK_HTMLTAG = 7,
TK_NEWPARA = 8, TK_SYMBOL = 8,
TK_RCSTAG = 9, TK_NEWPARA = 9,
TK_URL = 10, TK_RCSTAG = 10,
TK_URL = 11,
RetVal_OK = 0x10000, RetVal_OK = 0x10000,
RetVal_SimpleSec = 0x10001, RetVal_SimpleSec = 0x10001,
...@@ -123,5 +124,6 @@ void doctokenizerYYsetStateFile(); ...@@ -123,5 +124,6 @@ void doctokenizerYYsetStateFile();
void doctokenizerYYsetStatePattern(); void doctokenizerYYsetStatePattern();
void doctokenizerYYsetStateLink(); void doctokenizerYYsetStateLink();
void doctokenizerYYsetStateRef(); void doctokenizerYYsetStateRef();
void doctokenizerYYsetStateInternalRef();
#endif #endif
...@@ -83,6 +83,7 @@ const char *tokToString(int token) ...@@ -83,6 +83,7 @@ const char *tokToString(int token)
{ {
case 0: return "TK_EOF"; case 0: return "TK_EOF";
case TK_WORD: return "TK_WORD"; case TK_WORD: return "TK_WORD";
case TK_LNKWORD: return "TK_LNKWORD";
case TK_WHITESPACE: return "TK_WHITESPACE"; case TK_WHITESPACE: return "TK_WHITESPACE";
case TK_LISTITEM: return "TK_LISTITEM"; case TK_LISTITEM: return "TK_LISTITEM";
case TK_ENDLIST: return "TK_ENDLIST"; case TK_ENDLIST: return "TK_ENDLIST";
...@@ -221,8 +222,20 @@ LINKMASK [^ \t\n\r\\@<&$]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))? ...@@ -221,8 +222,20 @@ LINKMASK [^ \t\n\r\\@<&$]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))?
SPCMD1 {CMD}[a-z_A-Z0-9]+ SPCMD1 {CMD}[a-z_A-Z0-9]+
SPCMD2 {CMD}[\\@<>&$#%~] SPCMD2 {CMD}[\\@<>&$#%~]
SPCMD3 {CMD}form#[0-9]+ SPCMD3 {CMD}form#[0-9]+
WORD1 [^ \t\n\r\\@<&$]+ TEMPCHAR [a-z_A-Z0-9,: \t\*\&]
WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))? FUNCCHAR [a-z_A-Z0-9,:\<\> \t\*\&]
SCOPESEP "::"|"#"|"."
SCOPEPRE {ID}("<"{TEMPCHAR}*">")?{SCOPESEP}
SCOPEMASK {SCOPEPRE}*(~)?{ID}
FUNCARG "("{FUNCCHAR}*")"
OPNEW {BLANK}+"new"({BLANK}*"[]")?
OPDEL {BLANK}+"delete"({BLANK}*"[]")?
OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()"
OPCAST {BLANK}+[^(\r\n.,]+
OPMASK ({BLANK}*{OPNORM}({FUNCARG}?))|({OPCAST}{FUNCARG})
LNKWORD1 {SCOPEMASK}({FUNCARG}({BLANK}*("const"|"volatile"))?)?
LNKWORD2 {SCOPEPRE}*"operator"{OPMASK}
WORD [^ \t\n\r\\@<>&$#,.]+
%option noyywrap %option noyywrap
%option yylineno %option yylineno
...@@ -241,6 +254,7 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))? ...@@ -241,6 +254,7 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))?
%x St_Link %x St_Link
%x St_Ref %x St_Ref
%x St_Ref2 %x St_Ref2
%x St_IntRef
%% %%
/* TODO: \~lang_id */ /* TODO: \~lang_id */
...@@ -330,12 +344,24 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))? ...@@ -330,12 +344,24 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))?
g_token->name = yytext; g_token->name = yytext;
return TK_SYMBOL; return TK_SYMBOL;
} }
<St_Para>{WORD1} | /* word, #word, or %word */ <St_Para>{LNKWORD1} |
<St_Para>{WORD2} { /* function call */ <St_Para>{LNKWORD2} {
g_token->name = yytext;
return TK_LNKWORD;
}
<St_Para>"."|"," {
g_token->name = yytext;
return TK_WORD;
}
<St_Para>{WORD} { /* function call */
g_token->name = yytext; g_token->name = yytext;
return TK_WORD; return TK_WORD;
/* dummy code to please the compiler, removing this
results in a warning on my machine */ goto find_rule; /* the following is dummy code to please the
* compiler, removing this results in a warning
* on my machine
*/
goto find_rule;
} }
<St_Para>{BLANK}+ | <St_Para>{BLANK}+ |
<St_Para>{BLANK}*\n{BLANK}* { /* white space */ <St_Para>{BLANK}*\n{BLANK}* { /* white space */
...@@ -387,8 +413,7 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))? ...@@ -387,8 +413,7 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))?
g_token->name = yytext+1; g_token->name = yytext+1;
return TK_COMMAND; return TK_COMMAND;
} }
<St_Title>{WORD1} | <St_Title>{WORD} { /* word */
<St_Title>{WORD2} { /* word */
g_token->name = yytext; g_token->name = yytext;
return TK_WORD; return TK_WORD;
} }
...@@ -417,6 +442,13 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))? ...@@ -417,6 +442,13 @@ WORD2 [^ \t\n\r\\@<&$]+"("[^\n)]*")"({BLANK}*("const"|"volatile"))?
unput(*yytext); unput(*yytext);
return 0; return 0;
} }
<St_IntRef>[A-Z_a-z0-9.:#\-\+]+ {
g_token->name = yytext;
return TK_WORD;
}
<St_IntRef>{BLANK}+"\"" {
BEGIN(St_Ref2);
}
<St_Ref2>"&"{ID}";" { /* symbol */ <St_Ref2>"&"{ID}";" { /* symbol */
g_token->name = yytext; g_token->name = yytext;
return TK_SYMBOL; return TK_SYMBOL;
...@@ -567,6 +599,11 @@ void doctokenizerYYsetStateRef() ...@@ -567,6 +599,11 @@ void doctokenizerYYsetStateRef()
BEGIN(St_Ref); BEGIN(St_Ref);
} }
void doctokenizerYYsetStateInternalRef()
{
BEGIN(St_IntRef);
}
void doctokenizerYYcleanup() void doctokenizerYYcleanup()
{ {
yy_delete_buffer( YY_CURRENT_BUFFER ); yy_delete_buffer( YY_CURRENT_BUFFER );
......
...@@ -63,6 +63,10 @@ class DocFormula; ...@@ -63,6 +63,10 @@ class DocFormula;
class DocSecRefItem; class DocSecRefItem;
class DocSecRefList; class DocSecRefList;
class DocLanguage; class DocLanguage;
class DocLinkedWord;
class DocParamSect;
class DocParamList;
class DocInternalRef;
/*! @brief Abstract visitor that participates in the visitor pattern. /*! @brief Abstract visitor that participates in the visitor pattern.
*/ */
...@@ -76,7 +80,6 @@ class DocVisitor ...@@ -76,7 +80,6 @@ class DocVisitor
virtual void visit(DocURL *) = 0; virtual void visit(DocURL *) = 0;
virtual void visit(DocStyleChange *) = 0; virtual void visit(DocStyleChange *) = 0;
virtual void visit(DocVerbatim *) = 0; virtual void visit(DocVerbatim *) = 0;
virtual void visit(DocXRefItem *) = 0;
virtual void visit(DocLineBreak *) = 0; virtual void visit(DocLineBreak *) = 0;
virtual void visit(DocHorRuler *) = 0; virtual void visit(DocHorRuler *) = 0;
virtual void visit(DocAnchor *) = 0; virtual void visit(DocAnchor *) = 0;
...@@ -84,6 +87,7 @@ class DocVisitor ...@@ -84,6 +87,7 @@ class DocVisitor
virtual void visit(DocInclude *) = 0; virtual void visit(DocInclude *) = 0;
virtual void visit(DocIncOperator *) = 0; virtual void visit(DocIncOperator *) = 0;
virtual void visit(DocFormula *) = 0; virtual void visit(DocFormula *) = 0;
virtual void visit(DocLinkedWord *) = 0;
/*! @name Visitor functions for internal nodes */ /*! @name Visitor functions for internal nodes */
virtual void visitPre(DocAutoList *) = 0; virtual void visitPre(DocAutoList *) = 0;
...@@ -146,6 +150,14 @@ class DocVisitor ...@@ -146,6 +150,14 @@ class DocVisitor
virtual void visitPost(DocSecRefList *) = 0; virtual void visitPost(DocSecRefList *) = 0;
virtual void visitPre(DocLanguage *) = 0; virtual void visitPre(DocLanguage *) = 0;
virtual void visitPost(DocLanguage *) = 0; virtual void visitPost(DocLanguage *) = 0;
virtual void visitPre(DocParamSect *) = 0;
virtual void visitPost(DocParamSect *) = 0;
virtual void visitPre(DocParamList *) = 0;
virtual void visitPost(DocParamList *) = 0;
virtual void visitPre(DocXRefItem *) = 0;
virtual void visitPost(DocXRefItem *) = 0;
virtual void visitPre(DocInternalRef *) = 0;
virtual void visitPost(DocInternalRef *) = 0;
}; };
#endif #endif
...@@ -394,7 +394,7 @@ void DotNode::writeBox(QTextStream &t, ...@@ -394,7 +394,7 @@ void DotNode::writeBox(QTextStream &t,
} }
else if (!m_url.isEmpty()) else if (!m_url.isEmpty())
{ {
t << ",URL=\"" << m_url << htmlFileExtension << "\""; t << ",URL=\"" << m_url << Doxygen::htmlFileExtension << "\"";
} }
t << "];" << endl; t << "];" << endl;
} }
...@@ -1718,21 +1718,21 @@ void generateGraphLegend(const char *path) ...@@ -1718,21 +1718,21 @@ void generateGraphLegend(const char *path)
dotText << "{\n"; dotText << "{\n";
dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n"; dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n"; dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n"; dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n"; dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n"; dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"grey75\"];\n"; dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"grey75\"];\n";
dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n"; dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"Helvetica\"];\n"; dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"Helvetica\"];\n";
dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n"; dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"Helvetica\"];\n"; dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"Helvetica\"];\n";
dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n"; dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n";
dotText << "}\n"; dotText << "}\n";
dotFile.close(); dotFile.close();
......
...@@ -186,8 +186,7 @@ static void addMemberDocs(Entry *root,MemberDef *md, const char *funcDecl, ...@@ -186,8 +186,7 @@ static void addMemberDocs(Entry *root,MemberDef *md, const char *funcDecl,
const char idMask[] = "[A-Za-z_][A-Za-z_0-9]*"; const char idMask[] = "[A-Za-z_][A-Za-z_0-9]*";
QCString spaces; QCString spaces;
QCString htmlFileExtension; QCString Doxygen::htmlFileExtension;
int htmlFileExtensionLength;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
...@@ -6059,7 +6058,7 @@ static void generateExampleDocs() ...@@ -6059,7 +6058,7 @@ static void generateExampleDocs()
for (pdi.toFirst();(pi=pdi.current());++pdi) for (pdi.toFirst();(pi=pdi.current());++pdi)
{ {
msg("Generating docs for example %s...\n",pi->name.data()); msg("Generating docs for example %s...\n",pi->name.data());
QCString n=convertNameToFile(pi->name+"-example"); QCString n=pi->fileName;
startFile(*outputList,n,n,"Example Documentation"); startFile(*outputList,n,n,"Example Documentation");
startTitle(*outputList,n); startTitle(*outputList,n);
outputList->docify(pi->name); outputList->docify(pi->name);
...@@ -6268,9 +6267,9 @@ static void generateSearchIndex() ...@@ -6268,9 +6267,9 @@ static void generateSearchIndex()
//outputList->generateExternalIndex(); //outputList->generateExternalIndex();
outputList->pushGeneratorState(); outputList->pushGeneratorState();
outputList->disableAllBut(OutputGenerator::Html); outputList->disableAllBut(OutputGenerator::Html);
startFile(*outputList,"header"+htmlFileExtension,0,"Search Engine",TRUE); startFile(*outputList,"header"+Doxygen::htmlFileExtension,0,"Search Engine",TRUE);
outputList->endPlainFile(); outputList->endPlainFile();
outputList->startPlainFile("footer"+htmlFileExtension); outputList->startPlainFile("footer"+Doxygen::htmlFileExtension);
endFile(*outputList,TRUE); endFile(*outputList,TRUE);
outputList->popGeneratorState(); outputList->popGeneratorState();
} }
...@@ -7135,8 +7134,7 @@ void readConfiguration(int argc, char **argv) ...@@ -7135,8 +7134,7 @@ void readConfiguration(int argc, char **argv)
} }
/* Set the global html file extension. */ /* Set the global html file extension. */
htmlFileExtension = Config_getString("HTML_FILE_EXTENSION"); Doxygen::htmlFileExtension = Config_getString("HTML_FILE_EXTENSION");
htmlFileExtensionLength = htmlFileExtension.length();
/* init the special lists */ /* init the special lists */
Doxygen::specialLists->setAutoDelete(TRUE); Doxygen::specialLists->setAutoDelete(TRUE);
......
...@@ -51,8 +51,6 @@ class StringDict : public QDict<QCString> ...@@ -51,8 +51,6 @@ class StringDict : public QDict<QCString>
}; };
extern QCString htmlFileExtension;
extern int htmlFileExtensionLength;
extern QCString spaces; extern QCString spaces;
/*! \brief This class serves as a namespace for global variables used by doxygen. /*! \brief This class serves as a namespace for global variables used by doxygen.
...@@ -94,6 +92,7 @@ class Doxygen ...@@ -94,6 +92,7 @@ class Doxygen
static QDict<void> expandAsDefinedDict; static QDict<void> expandAsDefinedDict;
static NamespaceDef *globalScope; static NamespaceDef *globalScope;
static QDict<RefList> *specialLists; // array of special lists: todo, test, bug, deprecated ... static QDict<RefList> *specialLists; // array of special lists: todo, test, bug, deprecated ...
static QCString htmlFileExtension;
}; };
void initDoxygen(); void initDoxygen();
......
...@@ -321,13 +321,6 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -321,13 +321,6 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.enableAll(); ol.enableAll();
} }
//ol.disableAllBut(OutputGenerator::Html);
//ol.writeString((QCString)"<p>Interface collaboration diagram for "
// "<a href=\"usage_intf_graph_"+name()+htmlFileExtension+"\">here</a>");
//ol.writeString((QCString)"<p>Include dependency diagram for "+fn+" can be found "+
// "<a href=\""+diskname+"_incldep+htmlFileExtension+"\">here</a>.");
//ol.enableAll();
ol.endTextBlock(); ol.endTextBlock();
ol.startMemberSections(); ol.startMemberSections();
......
...@@ -347,7 +347,7 @@ static void generateFolderTreeViewData() ...@@ -347,7 +347,7 @@ static void generateFolderTreeViewData()
} }
// Generate alternative index.html as a frame // Generate alternative index.html as a frame
fileName=Config_getString("HTML_OUTPUT")+"/index"+htmlFileExtension; fileName=Config_getString("HTML_OUTPUT")+"/index"+Doxygen::htmlFileExtension;
f.setName(fileName); f.setName(fileName);
if (!f.open(IO_WriteOnly)) if (!f.open(IO_WriteOnly))
{ {
...@@ -374,15 +374,15 @@ static void generateFolderTreeViewData() ...@@ -374,15 +374,15 @@ static void generateFolderTreeViewData()
} }
t << "</title></head>" << endl; t << "</title></head>" << endl;
t << "<frameset cols=\"" << Config_getInt("TREEVIEW_WIDTH") << ",*\">" << endl; t << "<frameset cols=\"" << Config_getInt("TREEVIEW_WIDTH") << ",*\">" << endl;
t << " <frame src=\"tree" << htmlFileExtension << "\" name=\"treefrm\">" << endl; t << " <frame src=\"tree" << Doxygen::htmlFileExtension << "\" name=\"treefrm\">" << endl;
t << " <frame src=\"main" << htmlFileExtension << "\" name=\"basefrm\">" << endl; t << " <frame src=\"main" << Doxygen::htmlFileExtension << "\" name=\"basefrm\">" << endl;
t << "</frameset>" << endl; t << "</frameset>" << endl;
t << "</html>" << endl; t << "</html>" << endl;
f.close(); f.close();
} }
// Generate tree view frame // Generate tree view frame
fileName=Config_getString("HTML_OUTPUT")+"/tree"+htmlFileExtension; fileName=Config_getString("HTML_OUTPUT")+"/tree"+Doxygen::htmlFileExtension;
f.setName(fileName); f.setName(fileName);
if (!f.open(IO_WriteOnly)) if (!f.open(IO_WriteOnly))
{ {
...@@ -559,7 +559,7 @@ void FTVHelp::addContentsItem(bool isDir, ...@@ -559,7 +559,7 @@ void FTVHelp::addContentsItem(bool isDir,
<< name << "\", \"" << tagName << "\", "; << name << "\", \"" << tagName << "\", ";
if (file) // file optional param if (file) // file optional param
{ {
m_cts << "\"" << tagDir << file << htmlFileExtension << "\"))"; m_cts << "\"" << tagDir << file << Doxygen::htmlFileExtension << "\"))";
} }
else else
{ {
...@@ -572,7 +572,7 @@ void FTVHelp::addContentsItem(bool isDir, ...@@ -572,7 +572,7 @@ void FTVHelp::addContentsItem(bool isDir,
<< name << "\", \"" << tagName << "\", "; << name << "\", \"" << tagName << "\", ";
if (file) // ref optional param if (file) // ref optional param
{ {
m_cts << "\"" << tagDir << file << htmlFileExtension; m_cts << "\"" << tagDir << file << Doxygen::htmlFileExtension;
if (anchor) m_cts << "#" << anchor; if (anchor) m_cts << "#" << anchor;
m_cts << "\"))"; m_cts << "\"))";
} }
......
...@@ -403,7 +403,7 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -403,7 +403,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
Doxygen::tagFile << " <compound kind=\"group\">" << endl; Doxygen::tagFile << " <compound kind=\"group\">" << endl;
Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
Doxygen::tagFile << " <title>" << convertToXML(title) << "</title>" << endl; Doxygen::tagFile << " <title>" << convertToXML(title) << "</title>" << endl;
Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << htmlFileExtension << "</filename>" << endl; Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl;
} }
ol.startMemberSections(); ol.startMemberSections();
......
This diff is collapsed.
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "dot.h" #include "dot.h"
#include "language.h" #include "language.h"
#include "htmlhelp.h" #include "htmlhelp.h"
#include "htmldocvisitor.h"
// #define GROUP_COLOR "#ff8080" // #define GROUP_COLOR "#ff8080"
...@@ -202,7 +203,10 @@ void HtmlGenerator::startFile(const char *name,const char *, ...@@ -202,7 +203,10 @@ void HtmlGenerator::startFile(const char *name,const char *,
//printf("HtmlGenerator::startFile(%s)\n",name); //printf("HtmlGenerator::startFile(%s)\n",name);
QCString fileName=name; QCString fileName=name;
lastTitle=title; lastTitle=title;
if (fileName.right(htmlFileExtensionLength)!=htmlFileExtension) fileName+=htmlFileExtension; if (fileName.right(Doxygen::htmlFileExtension.length())!=Doxygen::htmlFileExtension)
{
fileName+=Doxygen::htmlFileExtension;
}
startPlainFile(fileName); startPlainFile(fileName);
if (Config_getBool("GENERATE_HTMLHELP")) if (Config_getBool("GENERATE_HTMLHELP"))
{ {
...@@ -383,7 +387,7 @@ void HtmlGenerator::writeIndexItem(const char *ref,const char *f, ...@@ -383,7 +387,7 @@ void HtmlGenerator::writeIndexItem(const char *ref,const char *f,
{ {
if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/"; if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/";
} }
if (f) t << f << htmlFileExtension << "\">"; if (f) t << f << Doxygen::htmlFileExtension << "\">";
} }
else else
{ {
...@@ -409,7 +413,7 @@ void HtmlGenerator::writeStartAnnoItem(const char *,const char *f, ...@@ -409,7 +413,7 @@ void HtmlGenerator::writeStartAnnoItem(const char *,const char *f,
{ {
t << "<li>"; t << "<li>";
if (path) docify(path); if (path) docify(path);
t << "<a class=\"el\" href=\"" << f << htmlFileExtension << "\">"; t << "<a class=\"el\" href=\"" << f << Doxygen::htmlFileExtension << "\">";
docify(name); docify(name);
t << "</a> "; t << "</a> ";
//if (Config_getBool("GENERATE_HTMLHELP") && f) //if (Config_getBool("GENERATE_HTMLHELP") && f)
...@@ -438,7 +442,7 @@ void HtmlGenerator::writeObjectLink(const char *ref,const char *f, ...@@ -438,7 +442,7 @@ void HtmlGenerator::writeObjectLink(const char *ref,const char *f,
{ {
if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/"; if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/";
} }
if (f) t << f << htmlFileExtension; if (f) t << f << Doxygen::htmlFileExtension;
if (anchor) t << "#" << anchor; if (anchor) t << "#" << anchor;
t << "\">"; t << "\">";
docify(name); docify(name);
...@@ -465,7 +469,7 @@ void HtmlGenerator::writeCodeLink(const char *ref,const char *f, ...@@ -465,7 +469,7 @@ void HtmlGenerator::writeCodeLink(const char *ref,const char *f,
{ {
if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/"; if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/";
} }
if (f) t << f << htmlFileExtension; if (f) t << f << Doxygen::htmlFileExtension;
if (anchor) t << "#" << anchor; if (anchor) t << "#" << anchor;
t << "\">"; t << "\">";
docify(name); docify(name);
...@@ -476,7 +480,7 @@ void HtmlGenerator::writeCodeLink(const char *ref,const char *f, ...@@ -476,7 +480,7 @@ void HtmlGenerator::writeCodeLink(const char *ref,const char *f,
void HtmlGenerator::startTextLink(const char *f,const char *anchor) void HtmlGenerator::startTextLink(const char *f,const char *anchor)
{ {
t << "<a href=\""; t << "<a href=\"";
if (f) t << f << htmlFileExtension; if (f) t << f << Doxygen::htmlFileExtension;
if (anchor) t << "#" << anchor; if (anchor) t << "#" << anchor;
t << "\">"; t << "\">";
} }
...@@ -547,7 +551,10 @@ void HtmlGenerator::writeSectionRef(const char *ref,const char *name, ...@@ -547,7 +551,10 @@ void HtmlGenerator::writeSectionRef(const char *ref,const char *name,
QCString *dest; QCString *dest;
//printf("writeSectionRef(%s,%s,%s,%s)\n",ref,name,anchor,title); //printf("writeSectionRef(%s,%s,%s,%s)\n",ref,name,anchor,title);
QCString refName=name; QCString refName=name;
if (refName.right(htmlFileExtensionLength)!=htmlFileExtension) refName+=htmlFileExtension; if (refName.right(Doxygen::htmlFileExtension.length())!=Doxygen::htmlFileExtension)
{
refName+=Doxygen::htmlFileExtension;
}
t << "<a "; t << "<a ";
if (ref) if (ref)
{ {
...@@ -569,7 +576,10 @@ void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab, ...@@ -569,7 +576,10 @@ void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab,
const char *title) const char *title)
{ {
QCString refName=name; QCString refName=name;
if (refName.right(htmlFileExtensionLength)!=htmlFileExtension) refName+=htmlFileExtension; if (refName.right(Doxygen::htmlFileExtension.length())!=Doxygen::htmlFileExtension)
{
refName+=Doxygen::htmlFileExtension;
}
t << "<li><a href=\"" << refName << "#" << lab << "\">"; t << "<li><a href=\"" << refName << "#" << lab << "\">";
docify(title); docify(title);
t << "</a>"; t << "</a>";
...@@ -1229,3 +1239,14 @@ void HtmlGenerator::endSectionRefList() ...@@ -1229,3 +1239,14 @@ void HtmlGenerator::endSectionRefList()
t << "</multicol>" << endl; t << "</multicol>" << endl;
} }
void HtmlGenerator::printDoc(DocNode *n)
{
#ifdef ENABLE_NEW_PARSER
HtmlDocVisitor *visitor = new HtmlDocVisitor(t,*this);
n->accept(visitor);
delete visitor;
#else
n=n;
#endif
}
...@@ -44,6 +44,9 @@ class HtmlGenerator : public OutputGenerator ...@@ -44,6 +44,9 @@ class HtmlGenerator : public OutputGenerator
bool isEnabled(OutputType o) { return (o==Html && active); } bool isEnabled(OutputType o) { return (o==Html && active); }
OutputGenerator *get(OutputType o) { return (o==Html) ? this : 0; } OutputGenerator *get(OutputType o) { return (o==Html) ? this : 0; }
void printDoc(DocNode *);
//void generateExternalIndex(); //void generateExternalIndex();
void startFile(const char *name,const char *manName, void startFile(const char *name,const char *manName,
const char *title,bool external); const char *title,bool external);
...@@ -267,6 +270,9 @@ class HtmlGenerator : public OutputGenerator ...@@ -267,6 +270,9 @@ class HtmlGenerator : public OutputGenerator
void startSectionRefList(); void startSectionRefList();
void endSectionRefList(); void endSectionRefList();
void writeCodeAnchor(const char *anchor)
{ t << "<a name=\"" << anchor << "\"></a>"; }
private: private:
QCString lastTitle; QCString lastTitle;
QCString lastFile; QCString lastFile;
......
...@@ -178,7 +178,7 @@ void HtmlHelpIndex::writeFields(QTextStream &t) ...@@ -178,7 +178,7 @@ void HtmlHelpIndex::writeFields(QTextStream &t)
if (level2.isEmpty()) if (level2.isEmpty())
{ {
t << " <LI><OBJECT type=\"text/sitemap\">"; t << " <LI><OBJECT type=\"text/sitemap\">";
t << "<param name=\"Local\" value=\"" << f->url << htmlFileExtension; t << "<param name=\"Local\" value=\"" << f->url << Doxygen::htmlFileExtension;
if (!f->anchor.isEmpty()) t << "#" << f->anchor; if (!f->anchor.isEmpty()) t << "#" << f->anchor;
t << "\">"; t << "\">";
t << "<param name=\"Name\" value=\"" << level1 << "\">" t << "<param name=\"Name\" value=\"" << level1 << "\">"
...@@ -189,7 +189,7 @@ void HtmlHelpIndex::writeFields(QTextStream &t) ...@@ -189,7 +189,7 @@ void HtmlHelpIndex::writeFields(QTextStream &t)
if (f->link) if (f->link)
{ {
t << " <LI><OBJECT type=\"text/sitemap\">"; t << " <LI><OBJECT type=\"text/sitemap\">";
t << "<param name=\"Local\" value=\"" << f->url << htmlFileExtension << "\">"; t << "<param name=\"Local\" value=\"" << f->url << Doxygen::htmlFileExtension << "\">";
t << "<param name=\"Name\" value=\"" << level1 << "\">" t << "<param name=\"Name\" value=\"" << level1 << "\">"
"</OBJECT>\n"; "</OBJECT>\n";
} }
...@@ -215,7 +215,7 @@ void HtmlHelpIndex::writeFields(QTextStream &t) ...@@ -215,7 +215,7 @@ void HtmlHelpIndex::writeFields(QTextStream &t)
if (level2Started) if (level2Started)
{ {
t << " <LI><OBJECT type=\"text/sitemap\">"; t << " <LI><OBJECT type=\"text/sitemap\">";
t << "<param name=\"Local\" value=\"" << f->url << htmlFileExtension; t << "<param name=\"Local\" value=\"" << f->url << Doxygen::htmlFileExtension;
if (!f->anchor.isEmpty()) t << "#" << f->anchor; if (!f->anchor.isEmpty()) t << "#" << f->anchor;
t << "\">"; t << "\">";
t << "<param name=\"Name\" value=\"" << level2 << "\">" t << "<param name=\"Name\" value=\"" << level2 << "\">"
...@@ -385,8 +385,8 @@ void HtmlHelp::createProjectFile() ...@@ -385,8 +385,8 @@ void HtmlHelp::createProjectFile()
QCString indexName="index"+htmlFileExtension; QCString indexName="index"+Doxygen::htmlFileExtension;
if (Config_getBool("GENERATE_TREEVIEW")) indexName="main"+htmlFileExtension; if (Config_getBool("GENERATE_TREEVIEW")) indexName="main"+Doxygen::htmlFileExtension;
t << "[OPTIONS]\n"; t << "[OPTIONS]\n";
if (!Config_getString("CHM_FILE").isEmpty()) if (!Config_getString("CHM_FILE").isEmpty())
{ {
...@@ -500,7 +500,7 @@ void HtmlHelp::addContentsItem(bool isDir, ...@@ -500,7 +500,7 @@ void HtmlHelp::addContentsItem(bool isDir,
cts << "<param name=\"Name\" value=\"" << name << "\">"; cts << "<param name=\"Name\" value=\"" << name << "\">";
if (ref) // made ref optional param - KPW if (ref) // made ref optional param - KPW
{ {
cts << "<param name=\"Local\" value=\"" << ref << htmlFileExtension; cts << "<param name=\"Local\" value=\"" << ref << Doxygen::htmlFileExtension;
if (anchor) cts << "#" << anchor; if (anchor) cts << "#" << anchor;
cts << "\">"; cts << "\">";
} }
......
...@@ -181,11 +181,11 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE) ...@@ -181,11 +181,11 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE)
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
if (Config_getBool("GENERATE_TREEVIEW")) if (Config_getBool("GENERATE_TREEVIEW"))
{ {
ol.startQuickIndexItem(extLink,"main"+htmlFileExtension); ol.startQuickIndexItem(extLink,"main"+Doxygen::htmlFileExtension);
} }
else else
{ {
ol.startQuickIndexItem(extLink,"index"+htmlFileExtension); ol.startQuickIndexItem(extLink,"index"+Doxygen::htmlFileExtension);
} }
parseText(ol,theTranslator->trMainPage()); parseText(ol,theTranslator->trMainPage());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
...@@ -193,21 +193,21 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE) ...@@ -193,21 +193,21 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE)
//if (documentedPackages>0) //if (documentedPackages>0)
//{ //{
// if (!compact) ol.writeListItem(); // if (!compact) ol.writeListItem();
// ol.startQuickIndexItem(extLink,"packages"+htmlFileExtension); // ol.startQuickIndexItem(extLink,"packages"+Doxygen::htmlFileExtension);
// parseText(ol,theTranslator->trPackages()); // parseText(ol,theTranslator->trPackages());
// ol.endQuickIndexItem(); // ol.endQuickIndexItem();
//} //}
if (documentedGroups>0) if (documentedGroups>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"modules"+htmlFileExtension); ol.startQuickIndexItem(extLink,"modules"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trModules()); parseText(ol,theTranslator->trModules());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (documentedNamespaces>0) if (documentedNamespaces>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"namespaces"+htmlFileExtension); ol.startQuickIndexItem(extLink,"namespaces"+Doxygen::htmlFileExtension);
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA")) if (Config_getBool("OPTIMIZE_OUTPUT_JAVA"))
{ {
parseText(ol,theTranslator->trPackages()); parseText(ol,theTranslator->trPackages());
...@@ -221,7 +221,7 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE) ...@@ -221,7 +221,7 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE)
if (hierarchyClasses>0) if (hierarchyClasses>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"hierarchy"+htmlFileExtension); ol.startQuickIndexItem(extLink,"hierarchy"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trClassHierarchy()); parseText(ol,theTranslator->trClassHierarchy());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
...@@ -230,68 +230,68 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE) ...@@ -230,68 +230,68 @@ void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE)
if (Config_getBool("ALPHABETICAL_INDEX")) if (Config_getBool("ALPHABETICAL_INDEX"))
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"classes"+htmlFileExtension); ol.startQuickIndexItem(extLink,"classes"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trAlphabeticalList()); parseText(ol,theTranslator->trAlphabeticalList());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"annotated"+htmlFileExtension); ol.startQuickIndexItem(extLink,"annotated"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trCompoundList()); parseText(ol,theTranslator->trCompoundList());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (documentedHtmlFiles>0) if (documentedHtmlFiles>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"files"+htmlFileExtension); ol.startQuickIndexItem(extLink,"files"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trFileList()); parseText(ol,theTranslator->trFileList());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
//if (documentedIncludeFiles>0 && Config_getBool("VERBATIM_HEADERS")) //if (documentedIncludeFiles>0 && Config_getBool("VERBATIM_HEADERS"))
//{ //{
// if (!compact) ol.writeListItem(); // if (!compact) ol.writeListItem();
// ol.startQuickIndexItem(extLink,"headers"+htmlFileExtension); // ol.startQuickIndexItem(extLink,"headers"+Doxygen::htmlFileExtension);
// parseText(ol,theTranslator->trHeaderFiles()); // parseText(ol,theTranslator->trHeaderFiles());
// ol.endQuickIndexItem(); // ol.endQuickIndexItem();
//} //}
//if (Config_getBool("SOURCE_BROWSER")) //if (Config_getBool("SOURCE_BROWSER"))
//{ //{
// if (!compact) ol.writeListItem(); // if (!compact) ol.writeListItem();
// ol.startQuickIndexItem(extLink,"sources"+htmlFileExtension); // ol.startQuickIndexItem(extLink,"sources"+Doxygen::htmlFileExtension);
// parseText(ol,theTranslator->trSources()); // parseText(ol,theTranslator->trSources());
// ol.endQuickIndexItem(); // ol.endQuickIndexItem();
//} //}
if (documentedNamespaceMembers>0) if (documentedNamespaceMembers>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"namespacemembers"+htmlFileExtension); ol.startQuickIndexItem(extLink,"namespacemembers"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trNamespaceMembers()); parseText(ol,theTranslator->trNamespaceMembers());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (documentedMembers>0) if (documentedMembers>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"functions"+htmlFileExtension); ol.startQuickIndexItem(extLink,"functions"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trCompoundMembers()); parseText(ol,theTranslator->trCompoundMembers());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (documentedFunctions>0) if (documentedFunctions>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"globals"+htmlFileExtension); ol.startQuickIndexItem(extLink,"globals"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trFileMembers()); parseText(ol,theTranslator->trFileMembers());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (indexedPages>0) if (indexedPages>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"pages"+htmlFileExtension); ol.startQuickIndexItem(extLink,"pages"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trRelatedPages()); parseText(ol,theTranslator->trRelatedPages());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
if (Doxygen::exampleSDict->count()>0) if (Doxygen::exampleSDict->count()>0)
{ {
if (!compact) ol.writeListItem(); if (!compact) ol.writeListItem();
ol.startQuickIndexItem(extLink,"examples"+htmlFileExtension); ol.startQuickIndexItem(extLink,"examples"+Doxygen::htmlFileExtension);
parseText(ol,theTranslator->trExamples()); parseText(ol,theTranslator->trExamples());
ol.endQuickIndexItem(); ol.endQuickIndexItem();
} }
...@@ -1430,7 +1430,7 @@ void writeAlphabeticalIndex(OutputList &ol) ...@@ -1430,7 +1430,7 @@ void writeAlphabeticalIndex(OutputList &ol)
if (annotatedClasses==0) return; if (annotatedClasses==0) return;
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
startFile(ol,"classes"+htmlFileExtension,0,"Alphabetical index"); startFile(ol,"classes"+Doxygen::htmlFileExtension,0,"Alphabetical index");
startTitle(ol,0); startTitle(ol,0);
parseText(ol,Config_getString("PROJECT_NAME")+" "+theTranslator->trCompoundIndex()); parseText(ol,Config_getString("PROJECT_NAME")+" "+theTranslator->trCompoundIndex());
endTitle(ol,0,0); endTitle(ol,0,0);
...@@ -2065,7 +2065,7 @@ void writeExampleIndex(OutputList &ol) ...@@ -2065,7 +2065,7 @@ void writeExampleIndex(OutputList &ol)
for (pdi.toFirst();(pi=pdi.current());++pdi) for (pdi.toFirst();(pi=pdi.current());++pdi)
{ {
ol.writeListItem(); ol.writeListItem();
QCString n=convertNameToFile(pi->name+"-example"); QCString n=pi->getOutputFileBase();
if (!pi->title.isEmpty()) if (!pi->title.isEmpty())
{ {
ol.writeObjectLink(0,n,0,pi->title); ol.writeObjectLink(0,n,0,pi->title);
...@@ -2529,11 +2529,11 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ...@@ -2529,11 +2529,11 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
{ {
if(htmlHelp) if(htmlHelp)
{ {
htmlHelp->addContentsItem(FALSE,convertToHtml(pi->name),convertNameToFile(pi->name+"-example")); htmlHelp->addContentsItem(FALSE,pi->getReference(),pi->getOutputFileBase());
} }
if(ftvHelp) if(ftvHelp)
{ {
ftvHelp->addContentsItem(FALSE,pi->getReference(),convertToHtml(pi->name+"-example"),0,convertNameToFile(pi->name)); ftvHelp->addContentsItem(FALSE,pi->getReference(),pi->getOutputFileBase(),0,pi->name);
} }
pi=++eli; pi=++eli;
} }
......
...@@ -784,12 +784,12 @@ void LatexGenerator::endIndexSection(IndexSections is) ...@@ -784,12 +784,12 @@ void LatexGenerator::endIndexSection(IndexSections is)
PageInfo *pi=pdi.toFirst(); PageInfo *pi=pdi.toFirst();
if (pi) if (pi)
{ {
t << "\\input{" << convertNameToFile(pi->name+"-example") << "}\n"; t << "\\input{" << pi->getOutputFileBase() << "}\n";
} }
for (++pdi;(pi=pdi.current());++pdi) for (++pdi;(pi=pdi.current());++pdi)
{ {
if (compactLatex) t << "\\input" ; else t << "\\include"; if (compactLatex) t << "\\input" ; else t << "\\include";
t << "{" << convertNameToFile(pi->name+"-example") << "}\n"; t << "{" << pi->getOutputFileBase() << "}\n";
} }
} }
break; break;
...@@ -803,13 +803,8 @@ void LatexGenerator::endIndexSection(IndexSections is) ...@@ -803,13 +803,8 @@ void LatexGenerator::endIndexSection(IndexSections is)
{ {
if (!pi->getGroupDef() && !pi->isReference()) if (!pi->getGroupDef() && !pi->isReference())
{ {
QCString pageName;
if (Config_getBool("CASE_SENSE_NAMES"))
pageName=pi->name.copy();
else
pageName=pi->name.lower();
if (compactLatex || first) t << "\\input" ; else t << "\\include"; if (compactLatex || first) t << "\\input" ; else t << "\\include";
t << "{" << pageName << "}\n"; t << "{" << pi->getOutputFileBase() << "}\n";
first=FALSE; first=FALSE;
} }
} }
......
...@@ -284,6 +284,8 @@ class LatexGenerator : public OutputGenerator ...@@ -284,6 +284,8 @@ class LatexGenerator : public OutputGenerator
void startSectionRefList(); void startSectionRefList();
void endSectionRefList(); void endSectionRefList();
void writeCodeAnchor(const char *) {}
private: private:
void latin2ToLatex(unsigned char); void latin2ToLatex(unsigned char);
LatexGenerator(const LatexGenerator &); LatexGenerator(const LatexGenerator &);
......
...@@ -251,6 +251,8 @@ class ManGenerator : public OutputGenerator ...@@ -251,6 +251,8 @@ class ManGenerator : public OutputGenerator
void startSectionRefList() {} void startSectionRefList() {}
void endSectionRefList() {} void endSectionRefList() {}
void writeCodeAnchor(const char *) {}
private: private:
bool firstCol; bool firstCol;
bool paragraph; bool paragraph;
......
...@@ -1704,7 +1704,7 @@ void MemberDef::addListReference(Definition *d) ...@@ -1704,7 +1704,7 @@ void MemberDef::addListReference(Definition *d)
} }
//printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId()); //printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId());
addRefItem(specialListItems(),memLabel, addRefItem(specialListItems(),memLabel,
d->getOutputFileBase()+":"+anchor(),memName,argsString()); d->getOutputFileBase()+"#"+anchor(),memName,argsString());
} }
MemberList *MemberDef::getSectionList(Definition *d) const MemberList *MemberDef::getSectionList(Definition *d) const
......
...@@ -239,7 +239,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol) ...@@ -239,7 +239,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{ {
Doxygen::tagFile << " <compound kind=\"namespace\">" << endl; Doxygen::tagFile << " <compound kind=\"namespace\">" << endl;
Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << htmlFileExtension << "</filename>" << endl; Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl;
} }
ol.startTextBlock(); ol.startTextBlock();
......
...@@ -30,6 +30,41 @@ class ClassDiagram; ...@@ -30,6 +30,41 @@ class ClassDiagram;
class DotClassGraph; class DotClassGraph;
class DotInclDepGraph; class DotInclDepGraph;
class DotGfxHierarchyTable; class DotGfxHierarchyTable;
class DocNode;
class MemberDef;
/*! \brief Output interface for code parser.
*/
class BaseCodeDocInterface
{
public:
/*! Writes an ASCII string to the output. This function should keep
* spaces visible, should break lines at a newline and should convert
* tabs to the right number of spaces.
*/
virtual void codify(const char *s) = 0;
/*! Writes a link to an object in a code fragment.
* \param ref If this is non-zero, the object is to be found in
* an external documentation file.
* \param file The file in which the object is located.
* \param anchor The anchor uniquely identifying the object within
* the file.
* \param name The text to display as a placeholder for the link.
*/
virtual void writeCodeLink(const char *ref,const char *file,
const char *anchor,const char *name) = 0;
virtual void writeLineNumber(const char *ref,const char *file,
const char *anchor,int lineNumber) = 0;
virtual void startCodeLine() = 0;
virtual void endCodeLine() = 0;
virtual void startCodeAnchor(const char *label) = 0;
virtual void endCodeAnchor() = 0;
virtual void startFontClass(const char *) = 0;
virtual void endFontClass() = 0;
virtual void writeCodeAnchor(const char *name) = 0;
};
/*! \brief Base Interface used for generating documentation. /*! \brief Base Interface used for generating documentation.
* *
...@@ -38,7 +73,7 @@ class DotGfxHierarchyTable; ...@@ -38,7 +73,7 @@ class DotGfxHierarchyTable;
* or a list of formats (see OutputList). This interface * or a list of formats (see OutputList). This interface
* contains functions that generate output. * contains functions that generate output.
*/ */
class BaseOutputDocInterface class BaseOutputDocInterface : public BaseCodeDocInterface
{ {
public: public:
enum ParamListTypes { Param, RetVal, Exception }; enum ParamListTypes { Param, RetVal, Exception };
...@@ -50,6 +85,10 @@ class BaseOutputDocInterface ...@@ -50,6 +85,10 @@ class BaseOutputDocInterface
Examples Examples
}; };
virtual void parseDoc(const char *,int, const char *,MemberDef *,
const QCString &)
{}
/*! Start of a bullet list: e.g. \c <ul> in html. writeListItem() is /*! Start of a bullet list: e.g. \c <ul> in html. writeListItem() is
* Used for the bullet items. * Used for the bullet items.
*/ */
...@@ -101,16 +140,6 @@ class BaseOutputDocInterface ...@@ -101,16 +140,6 @@ class BaseOutputDocInterface
virtual void writeObjectLink(const char *ref,const char *file, virtual void writeObjectLink(const char *ref,const char *file,
const char *anchor, const char *name) = 0; const char *anchor, const char *name) = 0;
/*! Writes a link to an object in a code fragment.
* \param ref If this is non-zero, the object is to be found in
* an external documentation file.
* \param file The file in which the object is located.
* \param anchor The anchor uniquely identifying the object within
* the file.
* \param name The text to display as a placeholder for the link.
*/
virtual void writeCodeLink(const char *ref,const char *file,
const char *anchor,const char *name) = 0;
/*! Starts a (link to an) URL found in the documentation. /*! Starts a (link to an) URL found in the documentation.
* \param url The URL to link to. * \param url The URL to link to.
...@@ -260,14 +289,6 @@ class BaseOutputDocInterface ...@@ -260,14 +289,6 @@ class BaseOutputDocInterface
virtual void endPageRef(const char *,const char *) = 0; virtual void endPageRef(const char *,const char *) = 0;
virtual void writeLineNumber(const char *ref,const char *file,
const char *anchor,int lineNumber) = 0;
virtual void startCodeLine() = 0;
virtual void endCodeLine() = 0;
virtual void startCodeAnchor(const char *label) = 0;
virtual void endCodeAnchor() = 0;
virtual void startFontClass(const char *) = 0;
virtual void endFontClass() = 0;
virtual void startHtmlOnly() = 0; virtual void startHtmlOnly() = 0;
virtual void endHtmlOnly() = 0; virtual void endHtmlOnly() = 0;
...@@ -277,11 +298,6 @@ class BaseOutputDocInterface ...@@ -277,11 +298,6 @@ class BaseOutputDocInterface
virtual void startSectionRefList() = 0; virtual void startSectionRefList() = 0;
virtual void endSectionRefList() = 0; virtual void endSectionRefList() = 0;
/*! Writes an ASCII string to the output. This function should keep
* spaces visible, should break lines at a newline and should convert
* tabs to the right number of spaces.
*/
virtual void codify(const char *s) = 0;
}; };
...@@ -318,6 +334,8 @@ class OutputGenerator : public BaseOutputDocInterface ...@@ -318,6 +334,8 @@ class OutputGenerator : public BaseOutputDocInterface
void pushGeneratorState(); void pushGeneratorState();
void popGeneratorState(); void popGeneratorState();
virtual void printDoc(DocNode *) {}
/////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
// structural output interface // structural output interface
/////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include "config.h" #include "config.h"
#include "message.h" #include "message.h"
#include "docparser.h"
OutputList::OutputList(bool) OutputList::OutputList(bool)
{ {
//printf("OutputList::OutputList()\n"); //printf("OutputList::OutputList()\n");
...@@ -189,6 +191,23 @@ void OutputList::popGeneratorState() ...@@ -189,6 +191,23 @@ void OutputList::popGeneratorState()
} }
} }
void OutputList::parseDoc(const char *fileName,int startLine,
const char * clName,MemberDef * /*md*/,
const QCString &docStr)
{
DocNode *root = validatingParseDoc(fileName,startLine,clName,docStr);
OutputGenerator *og=outputs->first();
while (og)
{
if (og->isEnabled()) og->printDoc(root);
og=outputs->next();
}
delete root;
}
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
// Create some overloaded definitions of the forall function. // Create some overloaded definitions of the forall function.
// Using template functions here would have made it a little less // Using template functions here would have made it a little less
......
...@@ -46,6 +46,7 @@ class OutputList : public OutputDocInterface ...@@ -46,6 +46,7 @@ class OutputList : public OutputDocInterface
OutputList &operator=(const OutputList &ol); OutputList &operator=(const OutputList &ol);
OutputList &operator+=(const OutputList &ol); OutputList &operator+=(const OutputList &ol);
void add(const OutputGenerator *); void add(const OutputGenerator *);
void disableAllBut(OutputGenerator::OutputType o); void disableAllBut(OutputGenerator::OutputType o);
...@@ -57,10 +58,14 @@ class OutputList : public OutputDocInterface ...@@ -57,10 +58,14 @@ class OutputList : public OutputDocInterface
void pushGeneratorState(); void pushGeneratorState();
void popGeneratorState(); void popGeneratorState();
////////////////////////////////////////////////// //////////////////////////////////////////////////
// OutputDocInterface implementation // OutputDocInterface implementation
////////////////////////////////////////////////// //////////////////////////////////////////////////
void parseDoc(const char *fileName,int startLine,
const char *clName,MemberDef *md,const QCString &docStr);
OutputDocInterface *clone() OutputDocInterface *clone()
{ {
return new OutputList(this); return new OutputList(this);
...@@ -457,6 +462,8 @@ class OutputList : public OutputDocInterface ...@@ -457,6 +462,8 @@ class OutputList : public OutputDocInterface
void endSectionRefList() void endSectionRefList()
{ forall(&OutputGenerator::endSectionRefList); } { forall(&OutputGenerator::endSectionRefList); }
void writeCodeAnchor(const char *name)
{ forall(&OutputGenerator::writeCodeAnchor,name); }
#if 0 #if 0
void startPlainFile(const char *name) void startPlainFile(const char *name)
{ forall(&OutputGenerator::startPlainFile,name); } { forall(&OutputGenerator::startPlainFile,name); }
......
...@@ -41,8 +41,7 @@ class PageInfo ...@@ -41,8 +41,7 @@ class PageInfo
QCString fileName; QCString fileName;
// functions to get a uniform interface with Definitions // functions to get a uniform interface with Definitions
QCString getOutputFileBase() const QCString getOutputFileBase() const { return fileName; }
{ return fileName; }
bool isReference() const { return !reference.isEmpty(); } bool isReference() const { return !reference.isEmpty(); }
QCString getReference() const { return reference; } QCString getReference() const { return reference; }
......
...@@ -34,6 +34,11 @@ class PrintDocVisitor : public DocVisitor ...@@ -34,6 +34,11 @@ class PrintDocVisitor : public DocVisitor
indent_leaf(); indent_leaf();
printf("%s",w->word().data()); printf("%s",w->word().data());
} }
void visit(DocLinkedWord *w)
{
indent_leaf();
printf("%s",w->word().data());
}
void visit(DocWhiteSpace *w) void visit(DocWhiteSpace *w)
{ {
indent_leaf(); indent_leaf();
...@@ -137,11 +142,6 @@ class PrintDocVisitor : public DocVisitor ...@@ -137,11 +142,6 @@ class PrintDocVisitor : public DocVisitor
case DocVerbatim::LatexOnly: printf("</latexonly>"); break; case DocVerbatim::LatexOnly: printf("</latexonly>"); break;
} }
} }
void visit(DocXRefItem *x)
{
indent_leaf();
printf("<xrefitem id=\"%d\"/>",x->id());
}
void visit(DocAnchor *a) void visit(DocAnchor *a)
{ {
indent_leaf(); indent_leaf();
...@@ -181,7 +181,7 @@ class PrintDocVisitor : public DocVisitor ...@@ -181,7 +181,7 @@ class PrintDocVisitor : public DocVisitor
void visit(DocFormula *f) void visit(DocFormula *f)
{ {
indent_leaf(); indent_leaf();
printf("<formula id=%d/>",f->id()); printf("<formula name=%s test=%s/>",f->name().data(),f->text().data());
} }
//-------------------------------------- //--------------------------------------
...@@ -244,11 +244,12 @@ class PrintDocVisitor : public DocVisitor ...@@ -244,11 +244,12 @@ class PrintDocVisitor : public DocVisitor
{ {
indent_pre(); indent_pre();
printf("<simplesect type="); printf("<simplesect type=");
switch(s->sectionType()) switch(s->type())
{ {
case DocSimpleSect::See: printf("see"); break; case DocSimpleSect::See: printf("see"); break;
case DocSimpleSect::Return: printf("return"); break; case DocSimpleSect::Return: printf("return"); break;
case DocSimpleSect::Author: printf("author"); break; case DocSimpleSect::Author: printf("author"); break;
case DocSimpleSect::Authors: printf("authors"); break;
case DocSimpleSect::Version: printf("version"); break; case DocSimpleSect::Version: printf("version"); break;
case DocSimpleSect::Since: printf("since"); break; case DocSimpleSect::Since: printf("since"); break;
case DocSimpleSect::Date: printf("date"); break; case DocSimpleSect::Date: printf("date"); break;
...@@ -260,48 +261,6 @@ class PrintDocVisitor : public DocVisitor ...@@ -260,48 +261,6 @@ class PrintDocVisitor : public DocVisitor
case DocSimpleSect::Remark: printf("remark"); break; case DocSimpleSect::Remark: printf("remark"); break;
case DocSimpleSect::Attention: printf("attention"); break; case DocSimpleSect::Attention: printf("attention"); break;
case DocSimpleSect::User: printf("user"); break; case DocSimpleSect::User: printf("user"); break;
case DocSimpleSect::Param:
{
printf("param[");
QStrListIterator li(s->parameters());
const char *s;
bool first=TRUE;
for (li.toFirst();(s=li.current());++li)
{
if (!first) printf(","); else first=FALSE;
printf("%s",s);
}
printf("]");
}
break;
case DocSimpleSect::RetVal:
{
printf("retval[");
QStrListIterator li(s->parameters());
const char *s;
bool first=TRUE;
for (li.toFirst();(s=li.current());++li)
{
if (!first) printf(","); else first=FALSE;
printf("%s",s);
}
printf("]");
}
break;
case DocSimpleSect::Exception: printf("exception"); break;
{
printf("exception[");
QStrListIterator li(s->parameters());
const char *s;
bool first=TRUE;
for (li.toFirst();(s=li.current());++li)
{
if (!first) printf(","); else first=FALSE;
printf("%s",s);
}
printf("]");
}
break;
case DocSimpleSect::Unknown: printf("unknown"); break; case DocSimpleSect::Unknown: printf("unknown"); break;
} }
printf(">\n"); printf(">\n");
...@@ -517,7 +476,8 @@ class PrintDocVisitor : public DocVisitor ...@@ -517,7 +476,8 @@ class PrintDocVisitor : public DocVisitor
void visitPre(DocLink *lnk) void visitPre(DocLink *lnk)
{ {
indent_pre(); indent_pre();
printf("<link target=\"%s\">\n",lnk->target().data()); printf("<link ref=\"%s\" file=\"%s\" anchor=\"%s\">\n",
lnk->ref().data(),lnk->file().data(),lnk->anchor().data());
} }
void visitPost(DocLink *) void visitPost(DocLink *)
{ {
...@@ -527,7 +487,12 @@ class PrintDocVisitor : public DocVisitor ...@@ -527,7 +487,12 @@ class PrintDocVisitor : public DocVisitor
void visitPre(DocRef *ref) void visitPre(DocRef *ref)
{ {
indent_pre(); indent_pre();
printf("<ref target=\"%s\">\n",ref->target().data()); printf("<ref ref=\"%s\" file=\"%s\" "
"anchor=\"%s\" targetTitle=\"%s\""
" hasLinkText=\"%s\" refToAnchor=\"%s\" refToSection=\"%s\">\n",
ref->ref().data(),ref->file().data(),ref->anchor().data(),
ref->targetTitle().data(),ref->hasLinkText()?"yes":"no",
ref->refToAnchor()?"yes":"no", ref->refToSection()?"yes":"no");
} }
void visitPost(DocRef *) void visitPost(DocRef *)
{ {
...@@ -564,6 +529,61 @@ class PrintDocVisitor : public DocVisitor ...@@ -564,6 +529,61 @@ class PrintDocVisitor : public DocVisitor
indent_post(); indent_post();
printf("</language>\n"); printf("</language>\n");
} }
void visitPre(DocParamList *pl)
{
indent_pre();
QStrListIterator sli(pl->parameters());
const char *s;
printf("<parameters>");
for (sli.toFirst();(s=sli.current());++sli)
{
printf("<param>%s</param>",s);
}
}
void visitPost(DocParamList *)
{
indent_post();
printf("</parameters>");
}
void visitPre(DocParamSect *ps)
{
indent_pre();
printf("<paramsect type=");
switch (ps->type())
{
case DocParamSect::Param: printf("param"); break;
case DocParamSect::RetVal: printf("retval"); break;
case DocParamSect::Exception: printf("exception"); break;
case DocParamSect::Unknown: printf("unknown"); break;
}
printf(">");
}
void visitPost(DocParamSect *)
{
indent_post();
printf("</paramsect>");
}
void visitPre(DocXRefItem *x)
{
indent_pre();
printf("<xrefitem file=\"%s\" anchor=\"%s\" title=\"%s\"/>",
x->file().data(),x->anchor().data(),x->title().data());
}
void visitPost(DocXRefItem *)
{
indent_post();
printf("<xrefitem/>");
}
void visitPre(DocInternalRef *r)
{
indent_pre();
printf("<internalref file=%s anchor=%s>\n",r->file().data(),r->anchor().data());
}
void visitPost(DocInternalRef *)
{
indent_post();
printf("</internalref>\n");
}
private: private:
// helper functions // helper functions
......
...@@ -116,6 +116,7 @@ RTFGenerator::RTFGenerator() : OutputGenerator() ...@@ -116,6 +116,7 @@ RTFGenerator::RTFGenerator() : OutputGenerator()
m_listLevel = 0; m_listLevel = 0;
m_bstartedBody = FALSE; m_bstartedBody = FALSE;
m_omitParagraph = FALSE; m_omitParagraph = FALSE;
m_numCols = 0;
} }
RTFGenerator::~RTFGenerator() RTFGenerator::~RTFGenerator()
...@@ -129,7 +130,6 @@ void RTFGenerator::append(const OutputGenerator *g) ...@@ -129,7 +130,6 @@ void RTFGenerator::append(const OutputGenerator *g)
//insideTabbing=insideTabbing || ((RTFGenerator *)g)->insideTabbing; //insideTabbing=insideTabbing || ((RTFGenerator *)g)->insideTabbing;
m_listLevel=((RTFGenerator *)g)->m_listLevel; m_listLevel=((RTFGenerator *)g)->m_listLevel;
m_omitParagraph=((RTFGenerator *)g)->m_omitParagraph; m_omitParagraph=((RTFGenerator *)g)->m_omitParagraph;
m_columnNumbers=((RTFGenerator *)g)->m_columnNumbers;
//printf("RTFGenerator::append(%s) insideTabbing=%s\n", g->getContents().data(), //printf("RTFGenerator::append(%s) insideTabbing=%s\n", g->getContents().data(),
// insideTabbing ? "TRUE" : "FALSE" ); // insideTabbing ? "TRUE" : "FALSE" );
} }
...@@ -1336,7 +1336,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1336,7 +1336,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
{ {
t << "\\par " << Rtf_Style_Reset << endl; t << "\\par " << Rtf_Style_Reset << endl;
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \""; t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
t << convertNameToFile(pi->name+"-example"); t << pi->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
} }
for (++pdi;(pi=pdi.current());++pdi) for (++pdi;(pi=pdi.current());++pdi)
...@@ -1344,7 +1344,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1344,7 +1344,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << "\\par " << Rtf_Style_Reset << endl; t << "\\par " << Rtf_Style_Reset << endl;
beginRTFSection(); beginRTFSection();
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \""; t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
t << convertNameToFile(pi->name+"-example"); t << pi->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
} }
} }
...@@ -1359,14 +1359,9 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1359,14 +1359,9 @@ void RTFGenerator::endIndexSection(IndexSections is)
{ {
if (!pi->getGroupDef() && !pi->isReference()) if (!pi->getGroupDef() && !pi->isReference())
{ {
QCString pageName;
if (Config_getBool("CASE_SENSE_NAMES"))
pageName=pi->name.copy();
else
pageName=pi->name.lower();
if (first) t << "\\par " << Rtf_Style_Reset << endl; if (first) t << "\\par " << Rtf_Style_Reset << endl;
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \""; t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
t << pageName; t << pi->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
first=FALSE; first=FALSE;
} }
...@@ -1667,8 +1662,8 @@ void RTFGenerator::endSubsubsection() ...@@ -1667,8 +1662,8 @@ void RTFGenerator::endSubsubsection()
void RTFGenerator::startTable(bool,int colNumbers) void RTFGenerator::startTable(bool,int colNumbers)
{ {
m_columnNumbers=colNumbers; m_numCols=colNumbers;
t<<"\\par\n"; t << "\\par\n";
} }
void RTFGenerator::endTable(bool hasCaption) void RTFGenerator::endTable(bool hasCaption)
...@@ -1681,8 +1676,8 @@ void RTFGenerator::endTable(bool hasCaption) ...@@ -1681,8 +1676,8 @@ void RTFGenerator::endTable(bool hasCaption)
void RTFGenerator::startCaption() void RTFGenerator::startCaption()
{ {
endTableRow(); endTableRow();
t<<"\\trowd \\trgaph108\\trleft-108\\trbrdrt\\brdrs\\brdrw10 \\trbrdrl\\brdrs\\brdrw10 \\trbrdrb\\brdrs\\brdrw10 \\trbrdrr\\brdrs\\brdrw10 \\trbrdrh\\brdrs\\brdrw10 \\trbrdrv\\brdrs\\brdrw10"<<endl; t << "\\trowd \\trgaph108\\trleft-108\\trbrdrt\\brdrs\\brdrw10 \\trbrdrl\\brdrs\\brdrw10 \\trbrdrb\\brdrs\\brdrw10 \\trbrdrr\\brdrs\\brdrw10 \\trbrdrh\\brdrs\\brdrw10 \\trbrdrv\\brdrs\\brdrw10" << endl;
t<<"\\clvertalt\\clbrdrt\\brdrs\\brdrw10 \\clbrdrl\\brdrs\\brdrw10 \\clbrdrb\\brdrs\\brdrw10 \\clbrdrr \\brdrs\\brdrw10 \\cltxlrtb \\cellx"<<PAGEWIDTH<<"\\pard \\qc\\nowidctlpar\\widctlpar\\intbl\\adjustright "<<endl; t << "\\clvertalt\\clbrdrt\\brdrs\\brdrw10 \\clbrdrl\\brdrs\\brdrw10 \\clbrdrb\\brdrs\\brdrw10 \\clbrdrr \\brdrs\\brdrw10 \\cltxlrtb \\cellx"<<PAGEWIDTH<<"\\pard \\qc\\nowidctlpar\\widctlpar\\intbl\\adjustright " << endl;
nextTableColumn(); nextTableColumn();
} }
...@@ -1694,28 +1689,34 @@ void RTFGenerator::endCaption() ...@@ -1694,28 +1689,34 @@ void RTFGenerator::endCaption()
void RTFGenerator::nextTableRow() void RTFGenerator::nextTableRow()
{ {
unsigned long columnWidth=PAGEWIDTH/m_columnNumbers; ASSERT(m_numCols>0 && m_numCols<25);
t<<"\\trowd \\trgaph108\\trleft-108\\trbrdrt\\brdrs\\brdrw10 \\trbrdrl\\brdrs\\brdrw10 \\trbrdrb\\brdrs\\brdrw10 \\trbrdrr\\brdrs\\brdrw10 \\trbrdrh\\brdrs\\brdrw10 \\trbrdrv\\brdrs\\brdrw10 "<<endl; uint columnWidth=PAGEWIDTH/m_numCols;
for (int i=1;i<=m_columnNumbers;i++) t << "\\trowd \\trgaph108\\trleft-108\\trbrdrt\\brdrs\\brdrw10 "
"\\trbrdrl\\brdrs\\brdrw10 \\trbrdrb\\brdrs\\brdrw10 "
"\\trbrdrr\\brdrs\\brdrw10 \\trbrdrh\\brdrs\\brdrw10 "
"\\trbrdrv\\brdrs\\brdrw10 "<<endl;
for (int i=0;i<m_numCols;i++)
{ {
t<<"\\clvertalt\\clbrdrt\\brdrs\\brdrw10 \\clbrdrl\\brdrs\\brdrw10 \\clbrdrb\\brdrs\\brdrw10 \\clbrdrr \\brdrs\\brdrw10 \\cltxlrtb \\cellx"<<i*columnWidth<<endl; t << "\\clvertalt\\clbrdrt\\brdrs\\brdrw10 \\clbrdrl\\brdrs\\brdrw10 "
"\\clbrdrb\\brdrs\\brdrw10 \\clbrdrr \\brdrs\\brdrw10 \\cltxlrtb "
"\\cellx" << (i*columnWidth) << endl;
} }
t<<"\\pard \\widctlpar\\intbl\\adjustright\n{"; t << "\\pard \\widctlpar\\intbl\\adjustright\n{";
} }
void RTFGenerator::endTableRow() void RTFGenerator::endTableRow()
{ {
t<<"\n\\pard \\widctlpar\\intbl\\adjustright\n{\\row }\n"; t << "\n\\pard \\widctlpar\\intbl\\adjustright\n{\\row }\n";
} }
void RTFGenerator::nextTableColumn() void RTFGenerator::nextTableColumn()
{ {
t<<"{ "; t << "{ ";
} }
void RTFGenerator::endTableColumn() void RTFGenerator::endTableColumn()
{ {
t<<" \\cell }"; t << " \\cell }";
} }
void RTFGenerator::startTextLink(const char *f,const char *anchor) void RTFGenerator::startTextLink(const char *f,const char *anchor)
......
...@@ -254,6 +254,8 @@ class RTFGenerator : public OutputGenerator ...@@ -254,6 +254,8 @@ class RTFGenerator : public OutputGenerator
void startSectionRefList() {} void startSectionRefList() {}
void endSectionRefList() {} void endSectionRefList() {}
void writeCodeAnchor(const char *) {}
static bool preProcessFileInplace(const char *path,const char *name); static bool preProcessFileInplace(const char *path,const char *name);
private: private:
...@@ -273,7 +275,7 @@ class RTFGenerator : public OutputGenerator ...@@ -273,7 +275,7 @@ class RTFGenerator : public OutputGenerator
bool m_bstartedBody; // has startbody been called yet? bool m_bstartedBody; // has startbody been called yet?
int m_listLevel; // // RTF does not really have a addative indent...manually set list level. int m_listLevel; // // RTF does not really have a addative indent...manually set list level.
bool m_omitParagraph; // should a the next paragraph command be ignored? bool m_omitParagraph; // should a the next paragraph command be ignored?
int m_columnNumbers; // number of columns in a table int m_numCols; // number of columns in a table
void beginRTFDocument(); void beginRTFDocument();
void beginRTFChapter(); void beginRTFChapter();
......
...@@ -385,7 +385,7 @@ static void setContext() ...@@ -385,7 +385,7 @@ static void setContext()
QCString fileName = yyFileName; QCString fileName = yyFileName;
insideIDL = fileName.right(4)==".idl"; insideIDL = fileName.right(4)==".idl";
insideJava = fileName.right(5)==".java"; insideJava = fileName.right(5)==".java";
insidePHP = fileName.right(4)==".php"; insidePHP = fileName.right(4)==".php" || fileName.right(4)==".inc";
if ( insidePHP ) if ( insidePHP )
{ {
useOverrideCommands = TRUE; useOverrideCommands = TRUE;
...@@ -444,15 +444,17 @@ static void addSpecialItem(const char *listName) ...@@ -444,15 +444,17 @@ static void addSpecialItem(const char *listName)
if (lii) // already found item of same type before if (lii) // already found item of same type before
{ {
RefItem *item = refList->getRefItem(lii->itemId); RefItem *item = refList->getRefItem(lii->itemId);
ASSERT(item!=0);
item->text += " <p>"; item->text += " <p>";
item->text += current->brief; item->text += current->brief;
} }
else // new item else // new item
{ {
int itemId = refList->addRefItem(); int itemId = refList->addRefItem();
char anchorLabel[12]; char anchorLabel[1024];
sprintf(anchorLabel,"_%s%06d",listName,itemId); sprintf(anchorLabel,"_%s%06d",listName,itemId);
RefItem *item = refList->getRefItem(itemId); RefItem *item = refList->getRefItem(itemId);
ASSERT(item!=0);
item->text = current->brief.copy(); item->text = current->brief.copy();
item->listAnchor = anchorLabel; item->listAnchor = anchorLabel;
current->addSpecialListItem(listName,itemId); current->addSpecialListItem(listName,itemId);
...@@ -3781,15 +3783,15 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -3781,15 +3783,15 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<LineDoc,JavaDoc>{CMD}{CMD}"endif"/[^a-z_A-Z0-9] { current->brief+=yytext; } <LineDoc,JavaDoc>{CMD}{CMD}"endif"/[^a-z_A-Z0-9] { current->brief+=yytext; }
/* conditional commands */ /* conditional commands */
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"if"{B}+ { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"if"{B}+ {
lastIfContext = YY_START; lastIfContext = YY_START;
BEGIN(IfGuard); BEGIN(IfGuard);
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"ifnot"{B}+ { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"ifnot"{B}+ {
lastIfContext = YY_START; lastIfContext = YY_START;
BEGIN(IfNotGuard); BEGIN(IfNotGuard);
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"if"(\r?)\n | <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"if"(\r?)\n |
<IfGuard>\n { <IfGuard>\n {
warn(yyFileName,yyLineNr,"Missing guard for if statement!"); warn(yyFileName,yyLineNr,"Missing guard for if statement!");
yyLineNr++; yyLineNr++;
...@@ -3850,33 +3852,33 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -3850,33 +3852,33 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
yyLineNr++; yyLineNr++;
} }
<SkipSection>"//"|"*/" <SkipSection>"//"|"*/"
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"elseif"/[^a-z_A-Z0-9] { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"elseif"/[^a-z_A-Z0-9] {
// previous section enabled => skip now // previous section enabled => skip now
depthIf=1; depthIf=1;
BEGIN(SkipSection); BEGIN(SkipSection);
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"else"/[^a-z_A-Z0-9] { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"else"/[^a-z_A-Z0-9] {
// section was enabled => skip now // section was enabled => skip now
depthIf=1; depthIf=1;
BEGIN(SkipSection); BEGIN(SkipSection);
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"endif"/[^a-z_A-Z0-9] { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc,PageDoc,ExampleDoc>{CMD}"endif"/[^a-z_A-Z0-9] {
// section enabled => absorb endif // section enabled => absorb endif
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc>{CMD}"ingroup"{B}+ { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc>{CMD}"ingroup"{B}+ {
lastGroupContext = YY_START; lastGroupContext = YY_START;
lineCount(); lineCount();
BEGIN( GroupName ); BEGIN( GroupName );
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc>{CMD}"nosubgrouping"/[^a-z_A-Z0-9] { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc>{CMD}"nosubgrouping"/[^a-z_A-Z0-9] {
current->subGrouping = FALSE; current->subGrouping = FALSE;
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc>{CMD}"showinitializer"/[^a-z_A-Z0-9] { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc>{CMD}"showinitializer"/[^a-z_A-Z0-9] {
current->initLines = 100000; // ON current->initLines = 100000; // ON
} }
<ClassDoc,LineDoc,Doc,JavaDoc,AfterDoc>{CMD}"hideinitializer"/[^a-z_A-Z0-9] { <ClassDoc,LineDoc,AfterDocLine,AfterDocBrief,Doc,JavaDoc,AfterDoc>{CMD}"hideinitializer"/[^a-z_A-Z0-9] {
current->initLines = 0; // OFF current->initLines = 0; // OFF
} }
<GroupName>{ID} { <GroupName>{ID} {
...@@ -4478,7 +4480,9 @@ static void parseCompounds(Entry *rt) ...@@ -4478,7 +4480,9 @@ static void parseCompounds(Entry *rt)
// set default protection based on the compound type // set default protection based on the compound type
if( ce->section==Entry::CLASS_SEC ) // class if( ce->section==Entry::CLASS_SEC ) // class
{ {
if (ce->fileName.right(5)==".java" || ce->fileName.right(4)==".php") if (ce->fileName.right(5)==".java" ||
ce->fileName.right(4)==".php" ||
ce->fileName.right(4)==".inc")
current->protection = protection = Public ; // Actually this should be package scope! current->protection = protection = Public ; // Actually this should be package scope!
else else
current->protection = protection = Private ; current->protection = protection = Private ;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* *
* Revision history * Revision history
* *
* 2002/08: translated new items used since version 1.2.17
* 2002/07: translated new items used since version 1.2.16 * 2002/07: translated new items used since version 1.2.16
* 2002/06: modified trRelatedPagesDescription() method * 2002/06: modified trRelatedPagesDescription() method
* correct typo in trInclByDepGraph() method * correct typo in trInclByDepGraph() method
...@@ -65,7 +66,7 @@ ...@@ -65,7 +66,7 @@
#ifndef TRANSLATOR_IT_H #ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H #define TRANSLATOR_IT_H
class TranslatorItalian : public TranslatorAdapter_1_2_17 class TranslatorItalian : public Translator
{ {
public: public:
...@@ -1358,6 +1359,17 @@ class TranslatorItalian : public TranslatorAdapter_1_2_17 ...@@ -1358,6 +1359,17 @@ class TranslatorItalian : public TranslatorAdapter_1_2_17
return "Sommario"; return "Sommario";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.17
//////////////////////////////////////////////////////////////////////////
/*! Used as the header of the list of item that have been
* flagged deprecated
*/
virtual QCString trDeprecatedList()
{
return "Lista degli elementi deprecati";
}
}; };
#endif #endif
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* Documents produced by Doxygen are derivative works derived from the * Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license. * input used in their production; they are not affected by this license.
* *
* Polish translation was updated to version 1.2.16 by * Polish translation was updated to version 1.2.17 by
* Piotr Kaminski (Piotr.Kaminski@ctm.gdynia.pl) * Piotr Kaminski (Piotr.Kaminski@ctm.gdynia.pl)
*/ */
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include "translator_adapter.h" #include "translator_adapter.h"
class TranslatorPolish : public TranslatorAdapter_1_2_16 class TranslatorPolish : public TranslatorAdapter_1_2_17
{ {
public: public:
...@@ -82,7 +82,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -82,7 +82,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
/*! header that is put before the list of member attributes. */ /*! header that is put before the list of member attributes. */
QCString trMemberDataDocumentation() QCString trMemberDataDocumentation()
{ return "Dokumentacja Atrybutów Sk³adowych"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Dokumentacja Pól";
}
else
{
return "Dokumentacja Atrybutów Sk³adowych";
}
}
/*! this is the text of a link put after brief descriptions. */ /*! this is the text of a link put after brief descriptions. */
QCString trMore() QCString trMore()
...@@ -146,7 +155,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -146,7 +155,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
/*! This is put above each page as a link to the list of annotated classes */ /*! This is put above each page as a link to the list of annotated classes */
QCString trCompoundList() QCString trCompoundList()
{ return "Lista Klas"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Struktury Danych";
}
else
{
return "Lista Klas";
}
}
/*! This is put above each page as a link to the list of documented files */ /*! This is put above each page as a link to the list of documented files */
QCString trFileList() QCString trFileList()
...@@ -158,11 +176,29 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -158,11 +176,29 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
/*! This is put above each page as a link to all members of compounds. */ /*! This is put above each page as a link to all members of compounds. */
QCString trCompoundMembers() QCString trCompoundMembers()
{ return "Sk³adowe Klas"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Pola Danych";
}
else
{
return "Sk³adowe Klas";
}
}
/*! This is put above each page as a link to all members of files. */ /*! This is put above each page as a link to all members of files. */
QCString trFileMembers() QCString trFileMembers()
{ return "Sk³adowe Plików"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Globalne";
}
else
{
return "Sk³adowe Plików";
}
}
/*! This is put above each page as a link to all related pages. */ /*! This is put above each page as a link to all related pages. */
QCString trRelatedPages() QCString trRelatedPages()
...@@ -193,20 +229,58 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -193,20 +229,58 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
/*! This is an introduction to the annotated compound list. */ /*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription() QCString trCompoundListDescription()
{ return "Tutaj znajduj± siê klasy, struktury, " {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Tutaj znajduj± siê struktury danych wraz z ich krótkimi opisami:";
}
else
{
return "Tutaj znajduj± siê klasy, struktury, "
"unie i interfejsy wraz z ich krótkimi opisami:"; "unie i interfejsy wraz z ich krótkimi opisami:";
} }
}
/*! This is an introduction to the page with all class members. */ /*! This is an introduction to the page with all class members. */
QCString trCompoundMembersDescription(bool extractAll) QCString trCompoundMembersDescription(bool extractAll)
{ {
QCString result="Tutaj znajduje siê lista wszystkich "; QCString result="Tutaj znajduje siê lista wszystkich ";
if (!extractAll) result+="udokumentowanych "; if (!extractAll)
result+="sk³adowych wraz z odno¶nikami do "; {
result+="udokumentowanych ";
}
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="pól struktur i unii";
}
else
{
result+="sk³adowych";
}
result+=" wraz z odno¶nikami do ";
if (extractAll) if (extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="dokumentacji struktur/unii dla ka¿dego pola:";
}
else
{
result+="dokumentacji klas dla ka¿dej sk³adowej:"; result+="dokumentacji klas dla ka¿dej sk³adowej:";
}
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="struktur/unii, do których dane pole nale¿y:";
}
else else
{
result+="klas, do których dana sk³adowa nale¿y:"; result+="klas, do których dana sk³adowa nale¿y:";
}
}
return result; return result;
} }
...@@ -215,11 +289,19 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -215,11 +289,19 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
{ {
QCString result="Tutaj znajduje siê lista wszystkich "; QCString result="Tutaj znajduje siê lista wszystkich ";
if (!extractAll) result+="udokumentowanych "; if (!extractAll) result+="udokumentowanych ";
result+="sk³adowych wraz z odno¶nikami do "; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="funkcji, zmiennych, makr, wyliczeñ i definicji typów";
}
else
{
result+="sk³adowych plików";
}
result+=" wraz z odno¶nikami do ";
if (extractAll) if (extractAll)
result+="dokumentacji plików dla ka¿dej sk³adowej:"; result+="plików, do których one nale¿±:";
else else
result+="plików, do których dana sk³adowa nale¿y:"; result+="dokumentacji:";
return result; return result;
} }
...@@ -268,7 +350,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -268,7 +350,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
* annotated compound index. * annotated compound index.
*/ */
QCString trCompoundIndex() QCString trCompoundIndex()
{ return "Indeks Klas"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Indeks Struktur Danych";
}
else
{
return "Indeks Klas";
}
}
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* list of all files. * list of all files.
...@@ -286,7 +377,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -286,7 +377,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
* the documentation of all classes, structs and unions. * the documentation of all classes, structs and unions.
*/ */
QCString trClassDocumentation() QCString trClassDocumentation()
{ return "Dokumentacja Klas"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Dokumentacja Struktur Danych";
}
else
{
return "Dokumentacja Klas";
}
}
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files. * the documentation of all files.
...@@ -402,7 +502,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -402,7 +502,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
* the list of links to documented compounds * the list of links to documented compounds
*/ */
QCString trCompounds() QCString trCompounds()
{ return "Komponenty"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Struktury Danych";
}
else
{
return "Komponenty";
}
}
/*! This is used in the documentation of a group before the list of /*! This is used in the documentation of a group before the list of
* links to documented files * links to documented files
...@@ -521,7 +630,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -521,7 +630,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
ClassDef::CompoundType compType, ClassDef::CompoundType compType,
bool isTemplate) bool isTemplate)
{ {
QCString result="Referencje"; QCString result="Dokumentacja";
if (isTemplate) result+=" Szablonu"; if (isTemplate) result+=" Szablonu";
switch(compType) switch(compType)
{ {
...@@ -538,7 +647,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -538,7 +647,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
/*! used as the title of the HTML page of a file */ /*! used as the title of the HTML page of a file */
QCString trFileReference(const char *fileName) QCString trFileReference(const char *fileName)
{ {
QCString result="Referencje Pliku "; QCString result="Dokumentacja Pliku ";
result+=fileName; result+=fileName;
return result; return result;
} }
...@@ -546,7 +655,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -546,7 +655,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
/*! used as the title of the HTML page of a namespace */ /*! used as the title of the HTML page of a namespace */
QCString trNamespaceReference(const char *namespaceName) QCString trNamespaceReference(const char *namespaceName)
{ {
QCString result="Referencje Przestrzeni Nazw "; QCString result="Dokumentacja Przestrzeni Nazw ";
result+=namespaceName; result+=namespaceName;
return result; return result;
} }
...@@ -828,9 +937,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -828,9 +937,16 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
return "Typy Publiczne"; return "Typy Publiczne";
} }
QCString trPublicAttribs() QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Pola Danych";
}
else
{ {
return "Atrybuty Publiczne"; return "Atrybuty Publiczne";
} }
}
QCString trStaticPublicAttribs() QCString trStaticPublicAttribs()
{ {
return "Statyczne Atrybuty Publiczne"; return "Statyczne Atrybuty Publiczne";
...@@ -881,7 +997,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -881,7 +997,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
QCString trReferencedBy() QCString trReferencedBy()
{ {
return "Referencje wed³ug"; return "Odwo³ania w";
} }
QCString trRemarks() QCString trRemarks()
{ {
...@@ -1210,7 +1326,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -1210,7 +1326,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
*/ */
virtual QCString trReferences() virtual QCString trReferences()
{ {
return "Wskazuje na"; return "Odwo³uje siê do";
} }
...@@ -1229,6 +1345,18 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16 ...@@ -1229,6 +1345,18 @@ class TranslatorPolish : public TranslatorAdapter_1_2_16
return "Implementowany w "+trWriteList(numEntries)+"."; return "Implementowany w "+trWriteList(numEntries)+".";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Spis Tre¶ci";
}
}; };
#endif #endif
This diff is collapsed.
This diff is collapsed.
...@@ -44,6 +44,7 @@ class Definition; ...@@ -44,6 +44,7 @@ class Definition;
struct TagInfo; struct TagInfo;
class MemberNameInfoSDict; class MemberNameInfoSDict;
struct ListItemInfo; struct ListItemInfo;
class PageInfo;
//-------------------------------------------------------------------- //--------------------------------------------------------------------
...@@ -91,10 +92,27 @@ extern bool getDefs(const QCString &scopeName, ...@@ -91,10 +92,27 @@ extern bool getDefs(const QCString &scopeName,
bool checkCV=FALSE bool checkCV=FALSE
); );
extern bool resolveRef(/* in */ const char *scName,
/* in */ const char *name,
/* in */ bool inSeeBlock,
/* out */ Definition **resContext,
/* out */ MemberDef **resMember
);
extern bool resolveLink(/* in */ const char *scName,
/* in */ const char *lr,
/* in */ bool inSeeBlock,
/* out */ Definition **resContext,
/* out */ PageInfo **resPageInfo,
/* out */ QCString &resAnchor
);
extern bool generateRef(OutputDocInterface &od,const char *, extern bool generateRef(OutputDocInterface &od,const char *,
const char *,bool inSeeBlock,const char * =0); const char *,bool inSeeBlock,const char * =0);
extern bool generateLink(OutputDocInterface &od,const char *, extern bool generateLink(OutputDocInterface &od,const char *,
const char *,bool inSeeBlock,const char *); const char *,bool inSeeBlock,const char *);
extern void generateFileRef(OutputDocInterface &od,const char *, extern void generateFileRef(OutputDocInterface &od,const char *,
const char *linkTxt=0); const char *linkTxt=0);
void writePageRef(OutputDocInterface &od,const char *cn,const char *mn); void writePageRef(OutputDocInterface &od,const char *cn,const char *mn);
......
...@@ -895,6 +895,10 @@ class XMLGenerator : public OutputDocInterface ...@@ -895,6 +895,10 @@ class XMLGenerator : public OutputDocInterface
{ {
XML_DB(("(endSectionRefList)\n")); XML_DB(("(endSectionRefList)\n"));
} }
void writeCodeAnchor(const char *anchor)
{
XML_DB(("(writeCodeAnchor(%s))\n",anchor));
}
// Generator specific functions // Generator specific functions
...@@ -1311,6 +1315,12 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -1311,6 +1315,12 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
writeXMLString(t,emd->initializer()); writeXMLString(t,emd->initializer());
t << "</initializer>" << endl; t << "</initializer>" << endl;
} }
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,emd->getDefFileName(),emd->getDefLine(),scopeName,emd,emd->briefDescription());
t << " </briefdescription>" << endl;
t << " <detaileddescription>" << endl;
writeXMLDocBlock(t,emd->getDefFileName(),emd->getDefLine(),scopeName,emd,emd->documentation());
t << " </detaileddescription>" << endl;
t << " </enumvalue>" << endl; t << " </enumvalue>" << endl;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment