Commit 8a48f6c3 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.7.2

parent 6dbef217
DOXYGEN Version 1.7.1-20100920 DOXYGEN Version 1.7.2
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (20 September 2010) Dimitri van Heesch (08 October 2010)
DOXYGEN Version 1.7.1_20100920 DOXYGEN Version 1.7.2
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
The latest version of doxygen can be obtained at The latest version of doxygen can be obtained from:
http://www.doxygen.org/ http://www.doxygen.org/
There are two mailing lists There are three mailing lists:
doxygen-users@lists.sourceforge.net doxygen-users@lists.sourceforge.net For doxygen users
doxygen-develop@lists.sourceforge.net doxygen-develop@lists.sourceforge.net For doxygen developers
doxygen-announce@lists.sourceforge.net Announcement of new releases only
please follow the link in please follow the link in
...@@ -15,6 +16,14 @@ please follow the link in ...@@ -15,6 +16,14 @@ please follow the link in
to subscribe to the lists or to visit the archives. to subscribe to the lists or to visit the archives.
Use the bug tracker to report bugs:
https://bugzilla.gnome.org/enter_bug.cgi?product=doxygen
Before reporting a bug, please check that it has not already been reported.
Also, please use the bug tracker for reporting bugs rather than the help
forum.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (20 September 2010) Dimitri van Heesch (dimitri@stack.nl) (08 October 2010)
...@@ -191,7 +191,7 @@ void MainWindow::about() ...@@ -191,7 +191,7 @@ void MainWindow::about()
t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+ t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+
QString::fromAscii(versionString)+ QString::fromAscii(versionString)+
QString::fromAscii(" on your source files.</center><p><br>" QString::fromAscii(" on your source files.</center><p><br>"
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2009</center><p>" "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2010</center><p>"
"</qt>"); "</qt>");
QMessageBox::about(this,tr("Doxygen GUI"),msg); QMessageBox::about(this,tr("Doxygen GUI"),msg);
} }
......
...@@ -17,10 +17,10 @@ ...@@ -17,10 +17,10 @@
doxygen_version_major=1 doxygen_version_major=1
doxygen_version_minor=7 doxygen_version_minor=7
doxygen_version_revision=1 doxygen_version_revision=2
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package. #NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20100920 doxygen_version_mmn=NO
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......
This diff is collapsed.
This diff is collapsed.
...@@ -75,7 +75,7 @@ doxygen -w latex header.tex doxygen.sty ...@@ -75,7 +75,7 @@ doxygen -w latex header.tex doxygen.sty
\endverbatim \endverbatim
If you need non-default options (for instance to use pdflatex) you need If you need non-default options (for instance to use pdflatex) you need
to make a config file with those options set correctly and then specify to make a config file with those options set correctly and then specify
that config file as the forth argument. that config file as the third argument.
<li>For RTF output, you can generate the default style sheet file (see <li>For RTF output, you can generate the default style sheet file (see
\ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using: \ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using:
\verbatim \verbatim
......
...@@ -29,6 +29,11 @@ have the following tools installed ...@@ -29,6 +29,11 @@ have the following tools installed
<li>\c gs: the GhostScript interpreter for converting PostScript files <li>\c gs: the GhostScript interpreter for converting PostScript files
to bitmaps. I have used Aladdin GhostScript 8.0 for testing. to bitmaps. I have used Aladdin GhostScript 8.0 for testing.
</ul> </ul>
For the HTML output there is also an alternative solution using
<a href="http://www.mathjax.org">MathJax</a> which does not
require the above tools. If you enable \ref cfg_use_mathjax "USE_MATHJAX" in
the config then the latex formulas will be copied to the HTML "as is" and a
client side javascript will parse them and turn them into (interactive) images.
There are three ways to include formulas in the documentation. There are three ways to include formulas in the documentation.
<ol> <ol>
......
...@@ -122,7 +122,7 @@ when the translator was updated. ...@@ -122,7 +122,7 @@ when the translator was updated.
<td>Esperanto</td> <td>Esperanto</td>
<td>Ander Martinez</td> <td>Ander Martinez</td>
<td>dwarfnauko at gmail dot com</td> <td>dwarfnauko at gmail dot com</td>
<td>1.6.3</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Finnish</td> <td>Finnish</td>
...@@ -222,8 +222,8 @@ when the translator was updated. ...@@ -222,8 +222,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Portuguese</td> <td>Portuguese</td>
<td>Rui Godinho Lopes</td> <td>Rui Godinho Lopes<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td>
<td><span style="color: brown">[resigned]</span></td> <td><span style="color: brown">[resigned]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td>
<td>1.3.3</td> <td>1.3.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -334,7 +334,7 @@ when the translator was updated. ...@@ -334,7 +334,7 @@ when the translator was updated.
\hline \hline
English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\ English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\
\hline \hline
Esperanto & Ander Martinez & {\tt\tiny dwarfnauko at gmail dot com} & 1.6.3 \\ Esperanto & Ander Martinez & {\tt\tiny dwarfnauko at gmail dot com} & up-to-date \\
\hline \hline
Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\ Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\
\hline \hline
...@@ -377,10 +377,11 @@ when the translator was updated. ...@@ -377,10 +377,11 @@ when the translator was updated.
Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh at gmail dot com} & up-to-date \\ Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh at gmail dot com} & up-to-date \\
\hline \hline
Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl} & 1.6.3 \\ Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl} & 1.6.3 \\
~ & Grzegorz Kowal & {\tt\tiny [unreachable] g_kowal at poczta dot onet dot pl} & ~ \\ ~ & Grzegorz Kowal & {\tt\tiny [unreachable] g\_kowal at poczta dot onet dot pl} & ~ \\
~ & Krzysztof Kral & {\tt\tiny krzysztof dot kral at gmail dot com} & ~ \\ ~ & Krzysztof Kral & {\tt\tiny krzysztof dot kral at gmail dot com} & ~ \\
\hline \hline
Portuguese & Rui Godinho Lopes & {\tt\tiny [resigned] rgl at ruilopes dot com} & 1.3.3 \\ Portuguese & Rui Godinho Lopes & {\tt\tiny [resigned] rgl at ruilopes dot com} & 1.3.3 \\
~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\
\hline \hline
Romanian & Ionut Dumitrascu & {\tt\tiny reddumy at yahoo dot com} & 1.6.0 \\ Romanian & Ionut Dumitrascu & {\tt\tiny reddumy at yahoo dot com} & 1.6.0 \\
~ & Alexandru Iosup & {\tt\tiny aiosup at yahoo dot com} & ~ \\ ~ & Alexandru Iosup & {\tt\tiny aiosup at yahoo dot com} & ~ \\
......
...@@ -111,6 +111,7 @@ Krzysztof Kral: krzysztof dot kral at gmail dot com ...@@ -111,6 +111,7 @@ Krzysztof Kral: krzysztof dot kral at gmail dot com
TranslatorPortuguese TranslatorPortuguese
Rui Godinho Lopes: [resigned] rgl at ruilopes dot com Rui Godinho Lopes: [resigned] rgl at ruilopes dot com
-- searching for the maintainer --: [Please, try to help to find someone.]
TranslatorRomanian TranslatorRomanian
Ionut Dumitrascu: reddumy at yahoo dot com Ionut Dumitrascu: reddumy at yahoo dot com
......
...@@ -59,7 +59,9 @@ ...@@ -59,7 +59,9 @@
2010/08/20 - maintainers.txt to UTF-8, related processin of unicode strings 2010/08/20 - maintainers.txt to UTF-8, related processin of unicode strings
- [any mark] introduced instead of [unreachable] only - [any mark] introduced instead of [unreachable] only
- marks hihglighted in HTML - marks hihglighted in HTML
2010/09/30 - Highlighting in what will be the table in langhowto.html modified. 2010/08/30 - Highlighting in what will be the table in langhowto.html modified.
2010/09/27 - The underscore in \latexonly part of the generated language.doc
was prefixed by backslash (was LaTeX related error).
""" """
from __future__ import generators from __future__ import generators
...@@ -1955,12 +1957,12 @@ class TrManager: ...@@ -1955,12 +1957,12 @@ class TrManager:
if obj.status == 'En': if obj.status == 'En':
# Check whether there is the coupled non-English. # Check whether there is the coupled non-English.
classId = obj.classId[:-2] classId = obj.classId[:-2]
if self.__translDic.has_key(classId): if classId in self.__translDic:
langNE = self.__translDic[classId].langReadable langNE = self.__translDic[classId].langReadable
maintainer = u'see the %s language' % langNE maintainer = u'see the %s language' % langNE
email = u'~' email = u'~'
if not maintainer and self.__maintainersDic.has_key(obj.classId): if not maintainer and (obj.classId in self.__maintainersDic):
lm = [ m[0] for m in self.__maintainersDic[obj.classId] ] lm = [ m[0] for m in self.__maintainersDic[obj.classId] ]
maintainer = maintainers[0][0] maintainer = maintainers[0][0]
email = maintainers[0][1] email = maintainers[0][1]
...@@ -1969,8 +1971,11 @@ class TrManager: ...@@ -1969,8 +1971,11 @@ class TrManager:
# Use the template to produce the line of the table and insert # Use the template to produce the line of the table and insert
# the hline plus the constructed line into the table content. # the hline plus the constructed line into the table content.
# The underscore character must be escaped.
trlst.append(u'\n \\hline') trlst.append(u'\n \\hline')
trlst.append(latexLineTpl % (lang, maintainer, email, status)) s = latexLineTpl % (lang, maintainer, email, status)
s = s.replace(u'_', u'\\_')
trlst.append(s)
# List the other maintainers for the language. Do not set # List the other maintainers for the language. Do not set
# lang and status for them. # lang and status for them.
...@@ -1979,7 +1984,9 @@ class TrManager: ...@@ -1979,7 +1984,9 @@ class TrManager:
for m in maintainers[1:]: for m in maintainers[1:]:
maintainer = m[0] maintainer = m[0]
email = m[1] email = m[1]
trlst.append(latexLineTpl % (lang, maintainer, email, status)) s = latexLineTpl % (lang, maintainer, email, status)
s = s.replace(u'_', u'\\_')
trlst.append(s)
# Join the table lines and insert into the template. # Join the table lines and insert into the template.
latexTable = latexTableTpl % (u''.join(trlst)) latexTable = latexTableTpl % (u''.join(trlst))
......
...@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian, ...@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
and Vietnamese. and Vietnamese.
Of them, 11 translators are up-to-date, 27 translators are based on Of them, 12 translators are up-to-date, 26 translators are based on
some adapter class, and 2 are English based. some adapter class, and 2 are English based.
---------------------------------------------------------------------- ----------------------------------------------------------------------
...@@ -24,6 +24,7 @@ still may be some details listed even for them: ...@@ -24,6 +24,7 @@ still may be some details listed even for them:
TranslatorCzech TranslatorCzech
TranslatorDutch TranslatorDutch
TranslatorEnglish TranslatorEnglish
TranslatorEsperanto
TranslatorGreek TranslatorGreek
TranslatorKorean -- Change the base class to Translator. TranslatorKorean -- Change the base class to Translator.
TranslatorPersian -- The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs() TranslatorPersian -- The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs()
...@@ -42,7 +43,6 @@ must be implemented to become up-to-date: ...@@ -42,7 +43,6 @@ must be implemented to become up-to-date:
TranslatorFrench 1.6.3 4 methods to implement (1 %) TranslatorFrench 1.6.3 4 methods to implement (1 %)
Note: Reimplementation using UTF-8 suggested. Note: Reimplementation using UTF-8 suggested.
TranslatorEsperanto 1.6.3 4 methods to implement (1 %)
TranslatorCatalan 1.6.3 4 methods to implement (1 %) TranslatorCatalan 1.6.3 4 methods to implement (1 %)
TranslatorVietnamese 1.6.0 9 methods to implement (4 %) TranslatorVietnamese 1.6.0 9 methods to implement (4 %)
TranslatorSwedish 1.6.0 9 methods to implement (4 %) TranslatorSwedish 1.6.0 9 methods to implement (4 %)
...@@ -288,19 +288,6 @@ TranslatorDanish (TranslatorAdapter_1_5_4) 31 methods to implement (13 %) ...@@ -288,19 +288,6 @@ TranslatorDanish (TranslatorAdapter_1_5_4) 31 methods to implement (13 %)
virtual QCString trSubprogramDocumentation() virtual QCString trSubprogramDocumentation()
TranslatorEsperanto (TranslatorAdapter_1_6_3) 4 methods to implement (1 %)
-------------------
Implements 221 of the required methods (98 %).
Missing methods (should be implemented):
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
virtual QCString trFileIn(const char * name)
virtual QCString trDirDependency(const char * name)
virtual QCString trIncludesFileIn(const char * name)
TranslatorFinnish (TranslatorAdapter_1_6_0) 9 methods to implement (4 %) TranslatorFinnish (TranslatorAdapter_1_6_0) 9 methods to implement (4 %)
----------------- -----------------
......
...@@ -211,7 +211,7 @@ static DocCmdMap docCmdMap[] = ...@@ -211,7 +211,7 @@ static DocCmdMap docCmdMap[] =
{ "copydetails", 0, TRUE }, { "copydetails", 0, TRUE },
{ "date", 0, TRUE }, { "date", 0, TRUE },
{ "dotfile", 0, TRUE }, { "dotfile", 0, TRUE },
{ "htmlinclude", 0, TRUE }, { "htmlinclude", 0, FALSE },
{ "image", 0, TRUE }, { "image", 0, TRUE },
{ "include", 0, TRUE }, { "include", 0, TRUE },
{ "includelineno", 0, TRUE }, { "includelineno", 0, TRUE },
...@@ -236,7 +236,7 @@ static DocCmdMap docCmdMap[] = ...@@ -236,7 +236,7 @@ static DocCmdMap docCmdMap[] =
{ "throw", 0, TRUE }, { "throw", 0, TRUE },
{ "throws", 0, TRUE }, { "throws", 0, TRUE },
{ "until", 0, TRUE }, { "until", 0, TRUE },
{ "verbinclude", 0, TRUE }, { "verbinclude", 0, FALSE },
{ "version", 0, TRUE }, { "version", 0, TRUE },
{ "warning", 0, TRUE }, { "warning", 0, TRUE },
{ 0, 0, FALSE } { 0, 0, FALSE }
...@@ -720,6 +720,7 @@ static inline void setOutput(OutputContext ctx) ...@@ -720,6 +720,7 @@ static inline void setOutput(OutputContext ctx)
else else
{ {
pOutputString = &current->doc; pOutputString = &current->doc;
inContext = OutputDoc; // need to switch to detailed docs, see bug 631380
} }
break; break;
case OutputXRef: case OutputXRef:
...@@ -2556,7 +2557,7 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, ...@@ -2556,7 +2557,7 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
newEntryNeeded = needNewEntry; newEntryNeeded = needNewEntry;
// if we did not proceed during this call, it does not make // if we did not proceed during this call, it does not make
// sence to continue, since we get stuck. See bug 567346 for situations // sense to continue, since we get stuck. See bug 567346 for situations
// were this happens // were this happens
if (parseMore && position==inputPosition) parseMore=FALSE; if (parseMore && position==inputPosition) parseMore=FALSE;
......
...@@ -555,8 +555,9 @@ If the value of the INPUT tag contains directories, you can use the ...@@ -555,8 +555,9 @@ If the value of the INPUT tag contains directories, you can use the
FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
and *.h) to filter out the source-files in the directories. If left and *.h) to filter out the source-files in the directories. If left
blank the following patterns are tested: blank the following patterns are tested:
*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
*.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
*.f90 *.f *.vhd *.vhdl
'> '>
<value name='*.c'/> <value name='*.c'/>
<value name='*.cc'/> <value name='*.cc'/>
...@@ -984,6 +985,24 @@ not supported properly for IE 6.0, but are supported on all modern browsers. ...@@ -984,6 +985,24 @@ not supported properly for IE 6.0, but are supported on all modern browsers.
Note that when changing this option you need to delete any form_*.png files Note that when changing this option you need to delete any form_*.png files
in the HTML output before the changes have effect. in the HTML output before the changes have effect.
' defval='1' depends='GENERATE_HTML'/> ' defval='1' depends='GENERATE_HTML'/>
<option type='bool' id='USE_MATHJAX' docs='
Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
(see http://www.mathjax.org) which uses client side Javascript for the
rendering instead of using prerendered bitmaps. Use this if you do not
have LaTeX installed or if you want to formulas look prettier in the HTML
output. When enabled you also need to install MathJax separately and
configure the path to it using the MATHJAX_RELPATH option.
' defval='0'/>
<option type='string' id='MATHJAX_RELPATH' docs='
When MathJax is enabled you need to specify the location relative to the
HTML output directory using the MATHJAX_RELPATH option. The destination
directory should contain the MathJax.js script. For instance, if the mathjax
directory is located at the same level as the HTML output directory, then
MATHJAX_RELPATH should be ../mathjax. The default value points to the
mathjax.org site, so you can quickly see the result without installing
MathJax, but it is strongly recommended to install a local copy of MathJax
before deployment.
' defval='http://www.mathjax.org/mathjax'/>
<option type='bool' id='SEARCHENGINE' docs=' <option type='bool' id='SEARCHENGINE' docs='
When the SEARCHENGINE tag is enabled doxygen will generate a search box When the SEARCHENGINE tag is enabled doxygen will generate a search box
for the HTML output. The underlying search engine uses javascript for the HTML output. The underlying search engine uses javascript
......
...@@ -402,7 +402,7 @@ void addConfigOptions(Config *cfg) ...@@ -402,7 +402,7 @@ void addConfigOptions(Config *cfg)
"causing a significant performance penality.\n" "causing a significant performance penality.\n"
"If the system has enough physical memory increasing the cache will improve the\n" "If the system has enough physical memory increasing the cache will improve the\n"
"performance by keeping more symbols in memory. Note that the value works on\n" "performance by keeping more symbols in memory. Note that the value works on\n"
"a logarithmic scale so increasing the size by one will rougly double the\n" "a logarithmic scale so increasing the size by one will roughly double the\n"
"memory usage. The cache size is given by this formula:\n" "memory usage. The cache size is given by this formula:\n"
"2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,\n" "2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,\n"
"corresponding to a cache size of 2^16 = 65536 symbols", "corresponding to a cache size of 2^16 = 65536 symbols",
...@@ -801,8 +801,9 @@ void addConfigOptions(Config *cfg) ...@@ -801,8 +801,9 @@ void addConfigOptions(Config *cfg)
"FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp\n" "FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp\n"
"and *.h) to filter out the source-files in the directories. If left\n" "and *.h) to filter out the source-files in the directories. If left\n"
"blank the following patterns are tested:\n" "blank the following patterns are tested:\n"
"*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx\n" "*.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh\n"
"*.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90" "*.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py\n"
"*.f90 *.f *.vhd *.vhdl"
); );
cl->addValue("*.c"); cl->addValue("*.c");
cl->addValue("*.cc"); cl->addValue("*.cc");
...@@ -1460,6 +1461,29 @@ void addConfigOptions(Config *cfg) ...@@ -1460,6 +1461,29 @@ void addConfigOptions(Config *cfg)
); );
cb->addDependency("GENERATE_HTML"); cb->addDependency("GENERATE_HTML");
//---- //----
cb = cfg->addBool(
"USE_MATHJAX",
"Enable the USE_MATHJAX option to render LaTeX formulas using MathJax\n"
"(see http://www.mathjax.org) which uses client side Javascript for the\n"
"rendering instead of using prerendered bitmaps. Use this if you do not\n"
"have LaTeX installed or if you want to formulas look prettier in the HTML\n"
"output. When enabled you also need to install MathJax separately and\n"
"configure the path to it using the MATHJAX_RELPATH option.",
FALSE
);
//----
cs = cfg->addString(
"MATHJAX_RELPATH",
"When MathJax is enabled you need to specify the location relative to the\n"
"HTML output directory using the MATHJAX_RELPATH option. The destination\n"
"directory should contain the MathJax.js script. For instance, if the mathjax\n"
"directory is located at the same level as the HTML output directory, then\n"
"MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing\n"
"MathJax, but it is strongly recommended to install a local copy of MathJax\n"
"before deployment."
);
cs->setDefaultValue("http://www.mathjax.org/mathjax");
//----
cb = cfg->addBool( cb = cfg->addBool(
"SEARCHENGINE", "SEARCHENGINE",
"When the SEARCHENGINE tag is enabled doxygen will generate a search box\n" "When the SEARCHENGINE tag is enabled doxygen will generate a search box\n"
...@@ -1480,7 +1504,7 @@ void addConfigOptions(Config *cfg) ...@@ -1480,7 +1504,7 @@ void addConfigOptions(Config *cfg)
"using Javascript. Doxygen will generate the search PHP script and index\n" "using Javascript. Doxygen will generate the search PHP script and index\n"
"file to put on the web server. The advantage of the server\n" "file to put on the web server. The advantage of the server\n"
"based approach is that it scales better to large projects and allows\n" "based approach is that it scales better to large projects and allows\n"
"full text search. The disadvances is that it is more difficult to setup\n" "full text search. The disadvantages are that it is more difficult to setup\n"
"and does not have live searching capabilities.", "and does not have live searching capabilities.",
FALSE FALSE
); );
......
...@@ -8628,6 +8628,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav) ...@@ -8628,6 +8628,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav)
static QCString resolveSymlink(QCString path) static QCString resolveSymlink(QCString path)
{ {
int sepPos=0; int sepPos=0;
int oldPos=0;
QFileInfo fi; QFileInfo fi;
QDict<void> nonSymlinks; QDict<void> nonSymlinks;
QDict<void> known; QDict<void> known;
...@@ -8651,7 +8652,8 @@ static QCString resolveSymlink(QCString path) ...@@ -8651,7 +8652,8 @@ static QCString resolveSymlink(QCString path)
if (fi.isSymLink()) if (fi.isSymLink())
{ {
QString target = fi.readLink(); QString target = fi.readLink();
if (QFileInfo(target).isRelative()) bool isRelative = QFileInfo(target).isRelative();
if (isRelative)
{ {
target = QDir::cleanDirPath(oldPrefix+"/"+target.data()); target = QDir::cleanDirPath(oldPrefix+"/"+target.data());
} }
...@@ -8667,12 +8669,22 @@ static QCString resolveSymlink(QCString path) ...@@ -8667,12 +8669,22 @@ static QCString resolveSymlink(QCString path)
sepPos = 0; sepPos = 0;
if (known.find(result)) return QCString(); // recursive symlink! if (known.find(result)) return QCString(); // recursive symlink!
known.insert(result,(void*)0x8); known.insert(result,(void*)0x8);
if (isRelative)
{
sepPos = oldPos;
}
else // link to absolute path
{
sepPos = 0;
oldPrefix = "/";
}
} }
else else
{ {
nonSymlinks.insert(prefix,(void*)0x8); nonSymlinks.insert(prefix,(void*)0x8);
oldPrefix = prefix;
} }
oldPrefix = prefix; oldPos = sepPos;
} }
} }
while (sepPos!=-1); while (sepPos!=-1);
...@@ -10473,7 +10485,8 @@ void generateOutput() ...@@ -10473,7 +10485,8 @@ void generateOutput()
//writeDirDependencyGraph(Config_getString("HTML_OUTPUT")); //writeDirDependencyGraph(Config_getString("HTML_OUTPUT"));
if (Doxygen::formulaList.count()>0 && Config_getBool("GENERATE_HTML")) if (Doxygen::formulaList.count()>0 && Config_getBool("GENERATE_HTML")
&& !Config_getBool("USE_MATHJAX"))
{ {
msg("Generating bitmaps for formulas in HTML...\n"); msg("Generating bitmaps for formulas in HTML...\n");
Doxygen::formulaList.generateBitmaps(Config_getString("HTML_OUTPUT")); Doxygen::formulaList.generateBitmaps(Config_getString("HTML_OUTPUT"));
......
...@@ -490,14 +490,36 @@ void HtmlDocVisitor::visit(DocFormula *f) ...@@ -490,14 +490,36 @@ void HtmlDocVisitor::visit(DocFormula *f)
forceEndParagraph(f); forceEndParagraph(f);
m_t << "<p class=\"formulaDsp\">" << endl; m_t << "<p class=\"formulaDsp\">" << endl;
} }
m_t << "<img class=\"formula"
if (Config_getBool("USE_MATHJAX"))
{
QCString text = f->text();
bool closeInline = FALSE;
if (!bDisplay && !text.isEmpty() && text.at(0)=='$' &&
text.at(text.length()-1)=='$')
{
closeInline=TRUE;
text = text.mid(1,text.length()-2);
m_t << "\\(";
}
m_t << convertToHtml(text);
if (closeInline)
{
m_t << "\\)";
}
}
else
{
m_t << "<img class=\"formula"
<< (bDisplay ? "Dsp" : "Inl"); << (bDisplay ? "Dsp" : "Inl");
m_t << "\" alt=\""; m_t << "\" alt=\"";
filterQuotedCdataAttr(f->text()); filterQuotedCdataAttr(f->text());
m_t << "\""; m_t << "\"";
/// @todo cache image dimensions on formula generation and give height/width /// @todo cache image dimensions on formula generation and give height/width
/// for faster preloading and better rendering of the page /// for faster preloading and better rendering of the page
m_t << " src=\"" << f->relPath() << f->name() << ".png\"/>"; m_t << " src=\"" << f->relPath() << f->name() << ".png\"/>";
}
if (bDisplay) if (bDisplay)
{ {
m_t << endl << "</p>" << endl; m_t << endl << "</p>" << endl;
......
...@@ -902,6 +902,24 @@ static void writeDefaultHeaderFile(FTextStream &t, const char *title, ...@@ -902,6 +902,24 @@ static void writeDefaultHeaderFile(FTextStream &t, const char *title,
t << "<link href=\"" << relPathStr << "search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n"; t << "<link href=\"" << relPathStr << "search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n";
t << "<script type=\"text/javaScript\" src=\"" << relPathStr << "search/search.js\"></script>\n"; t << "<script type=\"text/javaScript\" src=\"" << relPathStr << "search/search.js\"></script>\n";
} }
if (Config_getBool("USE_MATHJAX"))
{
QCString path = Config_getString("MATHJAX_RELPATH");
if (!path.isEmpty() && path.at(path.length()-1)!='/')
{
path+="/";
}
if (path.isEmpty() || path.left(2)=="..") // relative path
{
path.prepend(relPathStr);
}
t << "<script src=\"" << path << "MathJax.js\">\n";
t << " MathJax.Hub.Config({\n";
t << " extensions: [\"tex2jax.js\"],\n";
t << " jax: [\"input/TeX\",\"output/HTML-CSS\"],\n";
t << "});\n";
t << "</script>\n";
}
t << "<link "; t << "<link ";
t << "href=\""; t << "href=\"";
if (Config_getString("HTML_STYLESHEET").isEmpty()) if (Config_getString("HTML_STYLESHEET").isEmpty())
......
...@@ -483,6 +483,7 @@ void HtmlHelp::createProjectFile() ...@@ -483,6 +483,7 @@ void HtmlHelp::createProjectFile()
t << s << endl; t << s << endl;
s = indexFiles.next(); s = indexFiles.next();
} }
// items not found by the html help compiler scan.
t << "tabs.css" << endl; t << "tabs.css" << endl;
t << "tab_a.png" << endl; t << "tab_a.png" << endl;
t << "tab_b.png" << endl; t << "tab_b.png" << endl;
...@@ -490,10 +491,11 @@ void HtmlHelp::createProjectFile() ...@@ -490,10 +491,11 @@ void HtmlHelp::createProjectFile()
t << "tab_s.png" << endl; t << "tab_s.png" << endl;
t << "nav_h.png" << endl; t << "nav_h.png" << endl;
t << "nav_f.png" << endl; t << "nav_f.png" << endl;
t << "bc_s.png" << endl;
if (Config_getBool("HTML_DYNAMIC_SECTIONS")) if (Config_getBool("HTML_DYNAMIC_SECTIONS"))
{ {
t << "open.gif" << endl; t << "open.png" << endl;
t << "closed.gif" << endl; t << "closed.png" << endl;
} }
f.close(); f.close();
} }
......
...@@ -1411,6 +1411,10 @@ void LatexDocVisitor::startDotFile(const QCString &fileName, ...@@ -1411,6 +1411,10 @@ void LatexDocVisitor::startDotFile(const QCString &fileName,
{ {
m_t << "[height=" << height << "]"; m_t << "[height=" << height << "]";
} }
else
{
m_t << "[width=\\textwidth]";
}
m_t << "{" << baseName << "}"; m_t << "{" << baseName << "}";
if (hasCaption) if (hasCaption)
...@@ -1474,6 +1478,10 @@ void LatexDocVisitor::startMscFile(const QCString &fileName, ...@@ -1474,6 +1478,10 @@ void LatexDocVisitor::startMscFile(const QCString &fileName,
{ {
m_t << "[height=" << height << "]"; m_t << "[height=" << height << "]";
} }
else
{
m_t << "[width=\\textwidth]";
}
m_t << "{" << baseName << "}"; m_t << "{" << baseName << "}";
if (hasCaption) if (hasCaption)
......
...@@ -1863,6 +1863,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1863,6 +1863,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
} }
} }
<SkipCommand>"endif" { <SkipCommand>"endif" {
g_expectGuard = FALSE;
decrLevel(); decrLevel();
if (--g_ifcount<0) if (--g_ifcount<0)
{ {
...@@ -2629,7 +2630,7 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output) ...@@ -2629,7 +2630,7 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output)
BEGIN( Start ); BEGIN( Start );
g_expectGuard = TRUE; g_expectGuard = guessSection(fileName)==Entry::HEADER_SEC;
g_lastGuardName.resize(0); g_lastGuardName.resize(0);
g_guardExpr.resize(0); g_guardExpr.resize(0);
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
* input used in their production; they are not affected by this license. * input used in their production; they are not affected by this license.
* *
*/ */
/* Tradukita kaj ĝisdatigata de Ander Martinez. */
#ifndef TRANSLATOR_EO_H #ifndef TRANSLATOR_EO_H
#define TRANSLATOR_EO_H #define TRANSLATOR_EO_H
...@@ -40,7 +42,7 @@ ...@@ -40,7 +42,7 @@
Translator class (by the local maintainer) when the localized Translator class (by the local maintainer) when the localized
translator is made up-to-date again. translator is made up-to-date again.
*/ */
class TranslatorEsperanto : public TranslatorAdapter_1_6_3 class TranslatorEsperanto : public Translator
{ {
public: public:
...@@ -1809,6 +1811,70 @@ class TranslatorEsperanto : public TranslatorAdapter_1_6_3 ...@@ -1809,6 +1811,70 @@ class TranslatorEsperanto : public TranslatorAdapter_1_6_3
return "Nenia kongruo"; return "Nenia kongruo";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.6.3 (missing items for the directory pages)
//////////////////////////////////////////////////////////////////////////
/*! introduction text for the directory dependency graph */
virtual QCString trDirDependency(const char *name)
{
return (QCString)"Diagramo de dependecoj dosierujaj por "+name;
}
/*! when clicking a directory dependency label, a page with a
* table is shown. The heading for the first column mentions the
* source file that has a relation to another file.
*/
virtual QCString trFileIn(const char *name)
{
return (QCString)"Dosiero en "+name;
}
/*! when clicking a directory dependency label, a page with a
* table is shown. The heading for the second column mentions the
* destination file that is included.
*/
virtual QCString trIncludesFileIn(const char *name)
{
return (QCString)"Inkluzivas dosieron en "+name;
}
/** Compiles a date string.
* @param year Year in 4 digits
* @param month Month of the year: 1=January
* @param day Day of the Month: 1..31
* @param dayOfWeek Day of the week: 1=Monday..7=Sunday
* @param hour Hour of the day: 0..23
* @param minutes Minutes in the hour: 0..59
* @param seconds Seconds within the minute: 0..59
* @param includeTime Include time in the result string?
*/
virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
int hour,int minutes,int seconds,
bool includeTime)
{
static const char *days[] = { "lundo","mardo","merkredo",
"ĵaŭdo","vendredo","sabato",
"dimanĉo" };
static const char *months[] = { "Januaro", "Februaro", "Marto",
"Aprilo", "Majo", "Junio",
"Julio", "Aŭgusto", "Septembro",
"Oktobro", "Novembro",
"Decembro"
};
QCString sdate;
sdate.sprintf("%s, %d-a de %s %d",days[dayOfWeek-1],day,months[month-1],year);
if (includeTime)
{
QCString stime;
stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
sdate+=stime;
}
return sdate;
}
}; };
#endif #endif
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