Commit 6aa7383e authored by Dimitri van Heesch's avatar Dimitri van Heesch

mods for doxygen-0.49-990728

parent e04496cb
DOXYGEN Version 0.49-990522
DOXYGEN Version 0.49-990728
INSTALLATION INSTRUCTIONS FOR UNIX:
-----------------------------------
1. Unpack the archive, unless you already have:
gunzip doxygen-0.49-990522.src.tar.gz # uncompress the archive
tar xf doxygen-0.49-990522.src.tar # unpack it
gunzip doxygen-0.49-990728.src.tar.gz # uncompress the archive
tar xf doxygen-0.49-990728.src.tar # unpack it
2. Make sure Qt is installed properly (check the environment variable $QTDIR)
......@@ -104,7 +104,7 @@ KNOWN CONFIGURATION PROBLEMS
HTML RELATED PROBLEMS:
- the indent continuously increases.
This seems to be a problem that can be observed with Netscape 4.01.
It is not present in many later and earlier versions.
It is not present in many later and earlier versions I tested.
LATEX RELATED PROBLEMS:
......@@ -116,16 +116,32 @@ LATEX RELATED PROBLEMS:
- the file fancyheader.sty is known as fancyhdr.sty on some systems.
Please change that in src/latexgen.cpp
HP-UX PROBLEMS:
HP-UX / DIGITAL UNIX PROBLEMS:
- If you are compiling for HP-UX with aCC and you get this error:
/opt/aCC/lbin/ld: Unsatisfied symbols:
alloca (code)
then you should edit ce_parse.cpp and replace
then you should (according to Anke Selig) edit ce_parse.cpp and replace
extern "C" {
void *alloca (unsigned int);
};
with
#include <alloca.h>
- If you are compiling for Digital Unix, the same problem can be solved
(according to Barnard Schmallhof) by replacing the following in
ce_parse.cpp:
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ||
defined (__sparc) || defined (__sgi)
#include <alloca.h>
with
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ||
defined (__sparc) || defined (__sgi) || defined (__osf__)
#include <alloca.h>
This seems to be a problem with bison, but I don't know how to fix it.
-----------------------------------------------------------------------------
......@@ -138,4 +154,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (22 May 1999)
Dimitri van Heesch (30 July 1999)
This diff is collapsed.
......@@ -38,6 +38,11 @@ dgux-g++: src/version.cpp
TMAKEPATH=../tmake/lib/dgux-g++ \
$(MAKE)
gnu-g++: src/version.cpp
cd src; \
TMAKEPATH=../tmake/lib/gnu-g++ \
$(MAKE)
freebsd-g++: src/version.cpp
cd src; \
TMAKEPATH=../tmake/lib/freebsd-g++ \
......@@ -170,7 +175,7 @@ ps: docs
archive: clean
$(TAR) zcvf backup/dx`date +%y%m%d`.tgz tmake doc examples bin objects \
src Makefile Makefile.windows INSTALL make.bat Makefile.config \
LANGUAGE.HOWTO
LANGUAGE.HOWTO LICENSE
src/version.cpp: FORCE
echo "char versionString[]=\"$(VERSION)\";" > src/version.cpp
......
......@@ -9,4 +9,4 @@ PERL = perl
# The values below should probably be left unmodified
TAR = tar # name of the GNU tar tool
TMAKE = ../tmake/bin/tmake
VERSION = 0.49-990522
VERSION = 0.49-990728
DOXYGEN Version 0.49-990522
DOXYGEN Version 0.49-990728
Please read INSTALL for compilation instructions.
......@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (22 May 1999)
Dimitri van Heesch (30 July 1999)
......@@ -10,11 +10,11 @@ EXTRACT_PRIVATE = NO
GENERATE_LATEX = YES
GENERATE_HTML = YES
ENABLE_PREPROCESSING = NO
INPUT = index.doc install.doc starting.doc trouble.doc \
INPUT = index.doc install.doc starting.doc faq.doc trouble.doc \
history.doc features.doc \
doxygen_usage.doc doxytag_usage.doc doxysearch_usage.doc \
installdox_usage.doc autolink.doc \
config.doc commands.doc htmlcmds.doc
config.doc commands.doc htmlcmds.doc language.doc
FILE_PATTERNS = *.cpp *.h *.doc
EXAMPLE_PATH = ../examples
RECURSIVE = NO
......
......@@ -183,6 +183,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa section \ref cmdcode "\\code"
<hr>
\subsection cmdenum \enum <name>
\addindex \enum
......@@ -664,6 +665,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa
Section \ref cmdpage "\\page" for an example of the \\cmdsection command.
<hr>
\subsection cmdsubsection \subsection <subsection-name> (subsection title)
......@@ -677,6 +679,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa
Section \ref cmdpage "\\page" for an example of the \\cmdsubsection command.
<hr>
<h2>\htmlonly <center> --- \endhtmlonly
......@@ -1054,7 +1057,6 @@ Doxygen. Unrecognized commands are treated as normal text.
character has to be escaped because it has a special meaning in HTML.
<hr>
<h2>\htmlonly <center> --- \endhtmlonly
Commands included for JavaDoc compatibility
\htmlonly --- </center>\endhtmlonly</h2>
......
......@@ -63,6 +63,14 @@ Below is a list of tags that are recognized for each category.
If a relative path is entered, it will be relative to the location
where doxygen was started. If left blank the current directory will be used.
<dt>\c OUTPUT_LANGUAGE <dd>
\addindex OUTPUT_LANGUAGE
The \c OUTPUT_LANGUAGE tag is used to specify the language in which all
documentation generated by doxygen is written. Doxygen will use this
information to generate all constant output in the proper language.
The default language is English, other supported languages are:
Dutch, French, Italian, Czech, Swedish, German and Japanese.
<dt>\c QUIET <dd>
\addindex QUIET
The \c QUIET tag can be used to turn on/off the messages that are generated
......@@ -268,6 +276,11 @@ Below is a list of tags that are recognized for each category.
\endverbatim
If the tag is left blank doxygen will generate a
standard header.
The following commands have a special meaning inside the header:
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>.
Doxygen will replace them by respectively
the title of the page, the current date and time, or only the current date.
<dt>\c HTML_FOOTER <dd>
\addindex HTML_FOOTER
......@@ -280,6 +293,11 @@ Below is a list of tags that are recognized for each category.
\endverbatim
If the tag is left blank doxygen will generate a standard footer.
The following commands have a special meaning inside the footer:
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>.
Doxygen will replace them by respectively
the title of the page, the current date and time, or only the current date.
</dl>
\subsection latex_output LaTeX related options
......
......@@ -26,6 +26,7 @@ Written by Dimitri van Heesch\\[2ex]
\part{User Manual}
\input{install}
\input{starting}
\input{faq}
\input{trouble}
\part{Reference Manual}
\input{features}
......@@ -38,5 +39,6 @@ Written by Dimitri van Heesch\\[2ex]
\input{config}
\input{commands}
\input{htmlcmds}
\input{langhowto}
\printindex
\end{document}
......@@ -67,7 +67,7 @@ follow these steps:
documentation. Apart from the documentation, Doxygen will create the
following files:
<ul>
<li>A small CGI script. the name of the script is determined by the
<li>A small shell script. the name of the script is determined by the
\c CGI_NAME tag in the configuration file.
The script is a small wrapper that calls \c doxysearch with
the correct parameters. Using this script allows multiple
......@@ -80,6 +80,16 @@ follow these steps:
<li>\c search.gif: this is the image that is used for the search button.
</ul>
\par Notice:
On the Windows platform Unix shell scripts cannot be used.
In fact the HTTP daemon that I tried (apache for Windows) only
recognized <code>.cgi</code> files that were renamed
executables (so DOS batch files do not seem to work either). Therefore,
on Windows a small C program will generated by doxygen.
You should compile and link the program with your favourite
compiler and change the extension of the executable from
<code>.exe</code> to <code>.cgi</code>.
<li>Copy (or move) the CGI script to the directory where the CGI binaries
are located.
This is usually a special directory on your system or in your
......@@ -112,7 +122,8 @@ This can be done by carefully following these steps:
<li>Goto the html directory of the Qt-distribution:
<pre>cd $QTDIR/html</pre>
<li>Generate the search index by typing:
<pre>doxytag -s search.idx *.html</pre>
<pre>doxytag -s search.idx</pre>
in the directory where the HTML files are located.
This will parse all files and build a search index.
Apart from the file <code>search.idx</code> two other files
will be generated: <code>search.gif</code> and <code>search.cgi</code>
......
/******************************************************************************
*
* $Id$
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* All output generated with Doxygen is not covered by this license.
*
*/
/*! \page faq Frequently Asked Questions
<ol>
<li><b>How do get information on the index page in HTML?</b>
<p>
There is no real support for title pages at the moment. But you can
override the default index page, by using the following comment block:
\verbatim
/*! \page index My Personal Index Page
*
* This is my index personal index page.
*/
\endverbatim
<li><b>How can I avoid that some code fragment is parsed by Doxyen?</b>
<p>
You can use Doxygen's preprocessor for this:
If you put
\verbatim
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by Doxygen */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
\endverbatim
around the blocks that should be hidden and put:
\verbatim
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
\endverbatim
in the config file then all blocks should be skipped by Doxygen as long
as <code>PREPROCESSING = YES</code>.
</ol>
*/
......@@ -58,10 +58,12 @@ sections.
The first part forms a user manual:
<ul>
<li>Section \ref install discusses how to download, compile and install
<li>Section \ref install discusses how to
<a href="http://www.stack.nl/~dimitri/doxygen/download.html">download</a>, compile and install
doxygen for your platform.
<li>Section \ref starting tells you how to generate your first piece of
documentation quickly.
<li>Section \ref faq gives answers to frequently asked questions.
<li>Section \ref trouble tells you what to do when you have problems.
</ul>
......@@ -84,8 +86,23 @@ The second part forms a reference manual:
used within the documentation.
<li>Section \ref htmlcmds shows an overview of the HTML commands that
can be used within the documentation.
<li>Section \ref langhowto explains how to add support for new
output languages.
</ul>
<h2>Projects using doxygen</h2>
I have compiled a small
\htmlonly
<a href="http://www.stack.nl/~dimitri/doxygen/projects.html">list of projects</a>
that use doxygen
\endhtmlonly
\latexonly
list of projects that use doxygen (see {\tt http://www.stack.nl/$\sim$dimitri/doxygen/projects.html})
\endlatexonly
If you know other projects, let me know and I'll add them.
<h2>Acknowledgements</h2>
\addindex acknowledgements
Thanks go to:
......@@ -156,9 +173,10 @@ Olaf Meeuwissen,
Feiyi Wang,
Robert J. Clark,
Matthias Baas,
Walter Mueller, and
William van Dieten
for suggestions, patches and bug reports.
Walter Mueller,
William van Dieten, and
Joshua Jensen and
many others for suggestions, patches and bug reports.
</ul>
*/
/******************************************************************************
*
* $Id$
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* All output generated with Doxygen is not covered by this license.
*
*/
/*! \page langhowto Internationalization
<h3>Support for multiple languages</h3>
Doxygen has support for multiple languages. This means that the text fragments that
doxygen generates can changed into languages other than English
(the default) at configuration time.
<p>
Currently, supported languages are English, French, Czech, Dutch,
Swedish, Italian, German and Japanese. A number
of people have volunteered to add support for other languages as well.
Here is a list of the languages and their current maintainers:
<p>
\htmlonly
<TABLE ALIGN=center CELLSPACING=0 CELLPADDING=0 BORDER=0>
<TR BGCOLOR="#000000">
<TD>
<TABLE CELLSPACING=1 CELLPADDING=2 BORDER=0>
<TR BGCOLOR="#4040c0">
<TD ><b><font size=+1 color="#ffffff"> Language </font></b></TD>
<TD ><b><font size=+1 color="#ffffff"> Maintainer </font></b></TD>
<TD ><b><font size=+1 color="#ffffff"> Contact address </font></b></TD>
<TR BGCOLOR="#ffffff">
<TD>
German
</TD>
<TD>
Jens Breitenstein
</TD>
<TD>
<a href="mailto:Jens.Breitenstein@tlc.de">
Jens.Breitenstein@tlc.de</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
French
</TD>
<TD>
Christophe Bordeux
</TD>
<TD>
<a href="mailto:bordeux@lig.di.epfl.ch">
bordeux@lig.di.epfl.ch</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Swedish
</TD>
<TD>
Samuel Hägglund<BR>
XeT Erixon
</TD>
<TD>
<a href="mailto:sahag96@nts.mh.se">
sahag96@nts.mh.se</a><br>
<a href="mailto:xet@hem.passagen.se">
xet@hem.passagen.se</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Czech
</TD>
<TD>
Vlastimil Havran
</TD>
<TD>
<a href="mailto:havran@fel.cvut.cz">
havran@fel.cvut.cz</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Romanian
</TD>
<TD>
Ionutz Borcoman
</TD>
<TD>
<a href="mailto:borco@borco-ei.eng.hokudai.ac.jp">
borco@borco-ei.eng.hokudai.ac.jp</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Polish
</TD>
<TD>
Piotr Piatkowski
</TD>
<TD>
<a href="mailto:kompas@ceti.com.pl">
kompas@ceti.com.pl</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Italian
</TD>
<TD>
Ahmed Aldo Faisal<br>
Alessandro Falappa
</TD>
<TD>
<a href="mailto:aaf23@cam.ac.uk">
aaf23@cam.ac.uk</a><br>
<a href="mailto:a.falappa@flashnet.it">
a.falappa@flashnet.it</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Japanese
</TD>
<TD>
Kenji Nagamatsu
</TD>
<TD>
<a href="mailto:naga@joyful.club.ne.jp">
naga@joyful.club.ne.jp</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Spanish
</TD>
<TD>
Francisco Oltra Thennet
</TD>
<TD>
<a href="mailto:foltra@puc.cl">
foltra@puc.cl</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Dutch
</TD>
<TD>
Dimitri van Heesch
</TD>
<TD>
<a href="mailto:dimitri@stack.nl">
dimitri@stack.nl</a>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
\endhtmlonly
\latexonly
\begin{tabular}{|l|l|l|}
\hline
{\bf Language} & {\bf Maintainer} & {Contact address} \\
\hline
German & Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} \\
\hline
French & Christophe Bordeux & {\tt bordeux@lig.di.epfl.ch} \\
\hline
Swedish & Samuel Hägglund & {\tt sahag96@nts.mh.se} \\
& XeT Erixon & {\tt xet@hem.passagen.se} \\
\hline
Czech & Vlastimil Havran & {\tt havran@fel.cvut.cz} \\
\hline
Romanian & Ionutz Borcoman & {\tt borco@borco-ei.eng.hokudai.ac.jp} \\
\hline
Polish & Piotr Piatkowski & {\tt kompas@ceti.com.pl} \\
\hline
Italian & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} \\
& Alessandro Falappa & {\tt a.falappa@flashnet.it} \\
\hline
Japanese & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} \\
\hline
Spanish & Francisco Oltra Thennet & {\tt foltra@puc.cl} \\
\hline
Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} \\
\hline
\end{tabular}
\endlatexonly
<p>
Most people on the list have indicated that they were also busy
doing other things, so if you want to help to speed things up please
let them (or me) know.
If you want to add support for a language that is not yet listed
please see the next section.
<h3>Language HOWTO</h3>
This short HOWTO explains how to add support for a new language to Doxygen:
Just follow these steps:
<ol>
<li>Tell me for which language you want to add support. If no one else
is already working on support for that language, you will be
assigned as the maintainer for the language.
<li>Create a copy of translator_nl.h and name it
translator_<your_2_letter_counter_code>.h
I'll use xx in the rest of this document.
<li>Edit language.cpp:
Add a
\verbatim
#include<translator_xx.h>
\endverbatim
in <code>setTranslator()</code> add
\verbatim
else if (L_EQUAL("your_language_name"))
{
theTranslator = new TranslatorYourLanguage;
}
\endverbatim
after the <code>if { ... }</code>
<li>Edit doxygen.pro and add \c translator_xx.h to
the \c HEADERS line in the file doxygen.pro.
<li>Edit <code>translator_xx.h</code>:
<ul>
<li>Rename <code>TRANSLATOR_NL_H</code> to <code>TRANSLATOR_XX_H</code> twice.
<li>Rename TranslatorDutch to TranslatorYourLanguage
<li>In the member <code>latexBabelPackage()</code> change "dutch" into the name of the
latex package that adds support for your language.
<li>Edit all the strings that are returned by the members that start
with tr.
Look at the corresponding member in translator.h for the english text
that is returned and translate that into your language.
Try to match punctuation and capitals!
To enter special characters (with accents) you can:
<ul>
<li> Enter them directly if your keyboard supports that and you are
using a Latin-1 font.
Doxygen will translate the characters to proper Latex and
leave the Html and man output for what it is.
<li> Use html codes like \&auml; for an a with an umlaut (i.e. &auml;).
See the HTML specification for the codes.
</ul>
</ul>
<li>Recompile everything (do this from the root of the distribution,
because the Makefile.dox* have to be regenerated!)
<li>Now you can use <code>OUTPUT_LANGUAGE = your_language_name</code>
in the config file to generate output in your language.
<li>Send <code>translator_xx.h</code> or a <code>diff -u</code> of the changes
to me so I can add it to doxygen.
</ol>
*/
......@@ -397,6 +397,122 @@ from typos in formulas. It may have to be necessary to remove the
file formula.repository that is written in the html directory to
a rid of an incorrect formula
\subsection preprocessing Preprocessing
Source files that are used as input to doxygen can be parsed by doxygen's
build-in C-preprocessor.
By default doxygen does only partial preprocessing. That is, it
evaluates conditional compilation statements (like \#if) and
evaluates macro definitions, but is does not perform macro expansion.
So if you have the following code fragment
\verbatim
#define VERSION 200
#define CONST_STRING const char *
#if VERSION >= 200
static CONST_STRING version = "2.xx";
#else
static CONST_STRING version = "1.xx";
#endif
\endverbatim
Then by default doxygen will feed the following to its parser:
\verbatim
#define VERSION
#define CONST_STRING
static CONST_STRING version = "1.xx";
\endverbatim
You can disable all preprocessing by setting \c ENABLE_PREPROCESSING to \c
NO in the configuation file. In the case above doxygen will then read
both statements!
In case you want to expand the \c CONST_STRING macro, you should set the
\c MACRO_EXPANSION tag in the config file to \c YES. Then the result
after preprocessing becomes:
\verbatim
#define VERSION
#define CONST_STRING
static const char * version = "1.xx";
\endverbatim
Notice that doxygen will now expand \e all macro definitions
(recursively if needed). This is often too much, therefore doxygen also
allows you to expand only those defines that you explicitly
specify. For this you have to set the \c EXPAND_ONLY_PREDEF tag to \c YES
and specify the macro definitions after the \c PREDEFINED tag.
As an example, suppose you have the following obfusciated code fragment
of an abstract base class called \c IUnknown:
\verbatim
/*! A reference to an IID */
#ifdef __cplusplus
#define REFIID const IID &
#else
#define REFIID const IID *
#endif
/*! The IUnknown interface */
DECLARE_INTERFACE(IUnknown)
{
MEMBER(HRESULT,QueryInterface) (THIS_ REFIID iid, void **ppv) PURE;
MEMBER(ULONG,AddRef) (THIS) PURE;
MEMBER(ULONG,Release) (THIS) PURE;
};
\endverbatim
without macro expansion doxygen will get confused, but we may not want to
expand the REFIID macro, because it is documented and the user that reads
the documentation should use it when implementing the interface.
By setting the following in the config file:
\verbatim
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = "DECLARE_INTERFACE(name)=class name" \
"MEMBER(result,name)=virtual result name" \
"PURE= = 0" \
THIS_= \
THIS= \
__cplusplus
\endverbatim
we can make sure that the proper result is fed to doxygen's parser:
\verbatim
/*! A reference to an IID */
#define REFIID
/*! The IUnknown interface */
class IUnknown
{
virtual HRESULT QueryInterface ( REFIID iid, void **ppv) = 0;
virtual ULONG AddRef () = 0;
virtual ULONG Release () = 0;
};
\endverbatim
Notice that the \c PREDEFINED tag accepts function like macro definitions
(like \c DECLARE_INTERFACE), normal macro substitutions (like \c PURE
and \c THIS) and plain defines (like \c __cplusplus).
Notice also that preprocessor definitions that are normally defined
automatically by the preprocessor (like \c __cplusplus), have to be defined
by hand with doxygen's parser (this is done because these defines
are often platform/compiler specific).
As you can see doxygen's preprocessor is quite powerful, but if you want
even more flexibility you can always write an input filter and specify it on
the \c INPUT_FILTER flag.
\subsection moreinfo More information
\addindex QdbtTabular
......@@ -405,7 +521,7 @@ the documentation of QdbtTabular</a> \latexonly
({\tt http://www.stack.nl/$\sim$dimitri/qdbttabular/html})\endlatexonly.
\htmlonly
I hope that was clear. If not, please let me know, so I can improve this document. If you have problems
take a look at the <a href="trouble.html">troubleshooting</a> section.
take a look at the <a href="faq.html">faq</a> and the <a href="trouble.html">troubleshooting</a> sections.
\endhtmlonly
*/
......@@ -17,7 +17,6 @@ all: class/html/index.html \
jdstyle/html/index.html \
structcmd/html/index.html \
autolink/html/index.html \
resdefine/html/index.html \
restypedef/html/index.html \
afterdoc/html/index.html \
template/html/index.html \
......@@ -26,7 +25,7 @@ all: class/html/index.html \
clean:
rm -rf class define enum file func page relates author \
par overload example include qtstyle jdstyle structcmd \
autolink tag resdefine restypedef afterdoc template
autolink tag restypedef afterdoc template
class/html/index.html: class.h class.cfg
$(DOXYDIR)/doxygen class.cfg
......@@ -81,9 +80,6 @@ tag/html/index.html: tag.cpp tag.cfg
sed -e "1,1s.perl.$(PERL).g" tag/html/installdox >tag/html/installdox.perl
cd tag/html ; $(PERL) installdox.perl -lexample.tag@../../example/html
resdefine/html/index.html: resdefine.cpp resdefine.cfg
$(DOXYDIR)/doxygen resdefine.cfg
restypedef/html/index.html: restypedef.cpp restypedef.cfg
$(DOXYDIR)/doxygen restypedef.cfg
......
PROJECT_NAME = "Example Command"
OUTPUT_DIRECTORY = example
GENERATE_TAGFILE = example.tag
GENERATE_LATEX = NO
GENERATE_MAN = NO
INPUT = example.cpp
......
>Test:
>Test: "class_test.html"
example a0 "()"
PROJECT_NAME = "Resolving Defines"
OUTPUT_DIRECTORY = resdefine
GENERATE_LATEX = NO
GENERATE_MAN = NO
INPUT = resdefine.cpp
QUIET = YES
#define ExportedName InternalName
class InternalName
{
public:
InternalName() {}
~InternalName() {}
};
/*! \class ExportedName
* This class's real name is InternalName but everyone should use
* ExportedName.
*/
/*! \fn ExportedName::ExportedName()
* The constructor
*/
/*! \fn ExportedName::~ExportedName()
* The destructor
*/
/*! A template class */
template<class T,int i=100> class Test
{
public:
Test();
Test(const Test &);
friend void friendTempFunc(Test &, int=5);
};
/*! complete specialization */
......@@ -15,7 +15,7 @@ template<> class Test<void *,200>
};
/*! A partial template specialization */
template<class T> class Test< T * > : public Test<void *,200>
template<class T> class Test<T *> : public Test<void *,200>
{
public:
Test();
......@@ -27,11 +27,9 @@ template<class T,int i> Test<T,i>::Test() {}
/*! The copy constructor */
template<class T,int i> Test<T,i>::Test(const Test<T,i> &t) {}
/*! A friend function of a template class */
template<class T,int i> void friendTempFunc(Test<T,i> &t,int a) {}
/*! The constructor of the partial specilization */
template<class T> Test<T *>::Test() {}
/*! The constructor of the specilization */
template<> Test<void *,200>::Test() {}
/*! The constructor of the partial specilization */
template<class T> Test<T*>::Test() {}
......@@ -39,6 +39,6 @@ clean:
$(MAKE) -f Makefile.doxysearch clean
-rm -f scanner.cpp code.cpp config.cpp pre.cpp ce_lex.cpp \
ce_parse.cpp ce_parse.h doxytag.cpp tag.cpp \
declinfo.cpp defargs.cpp version.cpp
declinfo.cpp defargs.cpp
FORCE:
This diff is collapsed.
......@@ -17,11 +17,11 @@
#ifndef CLASSDEF_H
#define CLASSDEF_H
#include <qstring.h>
//#include <qtstream.h>
#include "qtbc.h"
#include <qfileinf.h>
#include <qlist.h>
#include <qdict.h>
#include <qtstream.h>
#include <qstrlist.h>
#include "membername.h"
......@@ -51,8 +51,8 @@ class ClassDef : public Definition
ClassDef(const char *name,CompoundType ct,const char *ref=0,const char *fName=0);
~ClassDef();
//QString classFile() const { return fileName; }
QString getOutputFileBase() const { return fileName; }
//QCString classFile() const { return fileName; }
QCString getOutputFileBase() const { return fileName; }
CompoundType compoundType() const { return compType; }
const char *memberListFileName() const { return memListFileName; }
void insertBaseClass(ClassDef *,Protection p,Specifier s,const char *t=0);
......@@ -81,34 +81,35 @@ class ClassDef : public Definition
Protection protection() const { return prot; }
bool isVisible()
{ return !name().isEmpty() && name().at(0)!='@' &&
(prot!=Private || extractPrivateFlag) &&
(prot!=Private || Config::extractPrivateFlag) &&
hasDocumentation();
}
bool hasNonReferenceSuperClass();
bool isVisibleExt()
{ return (allExtFlag || hasNonReferenceSuperClass()) &&
{ return (Config::allExtFlag || hasNonReferenceSuperClass()) &&
!name().isEmpty() && name().at(0)!='@' &&
(prot!=Private || extractPrivateFlag) &&
(hasDocumentation() || !hideClassFlag || !reference.isNull());
(prot!=Private || Config::extractPrivateFlag) &&
(hasDocumentation() || !Config::hideClassFlag ||
!reference.isNull());
}
// template argument functions
ArgumentList *templateArguments() const { return tempArgs; }
void setTemplateArguments(ArgumentList *al);
QString getTemplateNameString();
QCString getTemplateNameString();
void setNamespace(NamespaceDef *nd) { nspace = nd; }
NamespaceDef *getNamespace() { return nspace; }
bool visited;
private:
//QString name; // name of the class
QString fileName; // HTML containing the class docs
//QString doc; // general class documentation
//QCString name; // name of the class
QCString fileName; // HTML containing the class docs
//QCString doc; // general class documentation
FileDef *incFile; // header file to refer to
QString incName; // alternative include file name
//QString brief; // brief class discription
QString memListFileName;
QCString incName; // alternative include file name
//QCString brief; // brief class discription
QCString memListFileName;
BaseClassList *inherits;
BaseClassList *inheritedBy;
NamespaceDef *nspace; // the namespace this class is in
......@@ -128,7 +129,7 @@ class ClassDef : public Definition
MemberNameInfoDict *allMemberNameInfoDict;
ArgumentList *tempArgs;
QStrList files;
QString reference;
QCString reference;
ExampleList *exampleList;
ExampleDict *exampleDict;
CompoundType compType;
......@@ -143,7 +144,7 @@ struct BaseClassDef
ClassDef *classDef;
Protection prot;
Specifier virt;
QString templSpecifiers;
QCString templSpecifiers;
};
class BaseClassList : public QList<BaseClassDef>
......
......@@ -17,12 +17,12 @@
#ifndef CODE_H
#define CODE_H
#include "qtbc.h"
#include <stdio.h>
#include <qstring.h>
class OutputList;
extern void parseCode(OutputList &,const char *,const QString &,
extern void parseCode(OutputList &,const char *,const QCString &,
bool ,const char *);
extern void initParseCodeContext();
#endif
......@@ -24,8 +24,7 @@
#include <assert.h>
#include <ctype.h>
#include <qstring.h>
#include "qtbc.h"
#include "scanner.h"
#include "entry.h"
#include "doxygen.h"
......@@ -47,7 +46,7 @@ class CodeClassDef
}
~CodeClassDef() {}
QString name;
QCString name;
QStrList bases;
};
......@@ -63,9 +62,9 @@ class CodeVarDef
}
~CodeVarDef() {}
QString name;
QString type;
QString classScope;
QCString name;
QCString type;
QCString classScope;
};
typedef QList<CodeClassDef> CodeClassList;
......@@ -91,19 +90,19 @@ static int bracketCount = 0;
static int curlyCount = 0;
static int sharpCount = 0;
static int yyLineNr = 0;
static QString type;
static QString name;
static QString args;
static QString parmType;
static QString parmName;
static QCString type;
static QCString name;
static QCString args;
static QCString parmType;
static QCString parmName;
static bool inClass;
static QString classScope;
static QCString classScope;
static OutputList *code;
static CodeClassDef ccd;
static CodeVarDef cvd;
static bool exampleBlock;
static QString exampleName;
static QString exampleFile;
static QCString exampleName;
static QCString exampleFile;
static int anchorCount;
static void addType()
......@@ -125,9 +124,9 @@ static void addParmType()
parmName.resize(0) ;
}
static void setClassScope(const QString &name)
static void setClassScope(const QCString &name)
{
QString n=name;
QCString n=name;
n=n.simplifyWhiteSpace();
int index;
if ((index=n.find("::"))!=-1)
......@@ -165,14 +164,14 @@ static void addParameter()
static void generateClassLink(OutputList &ol,const char *clName)
{
QString className=clName;
QCString className=clName;
if (className.length()==0) return;
ClassDef *cd;
if ((cd=getClass(className)) && cd->isVisible())
{
if (exampleBlock)
{
QString anchor;
QCString anchor;
anchor.sprintf("_a%d",anchorCount);
//printf("addExampleClass(%s,%s,%s)\n",anchor.data(),exampleName.data(),
// exampleFile.data());
......@@ -200,16 +199,16 @@ static bool getLink(const char *className,
ClassDef *cd;
FileDef *fd;
NamespaceDef *nd;
QString m=memberName;
QString c=className;
QCString m=memberName;
QCString c=className;
//printf("Trying `%s'::`%s'\n",c.data(),m.data());
if (getDefs(m,c,"()",md,cd,fd,nd) &&
if (getDefs(c,m,"()",md,cd,fd,nd) &&
(md->hasDocumentation() || md->isReference()))
{
//printf("Found!\n");
if (exampleBlock)
{
QString anchor;
QCString anchor;
anchor.sprintf("a%d",anchorCount);
//printf("addExampleFile(%s,%s,%s)\n",anchor.data(),exampleName.data(),
// exampleFile.data());
......@@ -339,6 +338,8 @@ static int yyread(char *buf,int max_size)
ID [a-z_A-Z][a-z_A-Z0-9]*
%option noyywrap
%x SkipString
%x SkipCPP
%x SkipComment
......@@ -380,7 +381,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
code->codify(yytext);
}
char c=yyinput();
QString text;
QCString text;
text+=c;
code->codify(text);
BEGIN( Body );
......@@ -663,7 +664,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
}
<SkipSpecialComment>[ \t]*"*/"[ \t\n]*"\n"/"/*" {
//code->codify("\n");
QString lineText=yytext;
QCString lineText=yytext;
yyLineNr+=lineText.contains('\n');
BEGIN( lastDContext ) ;
}
......@@ -700,7 +701,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
code->codify(yytext);
}
<*>([ \t\n]*"\n"){2,} { // combine multiple blank lines
QString sepLine=yytext;
QCString sepLine=yytext;
code->codify("\n\n");
yyLineNr+=sepLine.contains('\n');
}
......@@ -723,7 +724,7 @@ void initParseCodeContext()
anchorCount = 0;
}
void parseCode(OutputList &ol,const char *className,const QString &s,
void parseCode(OutputList &ol,const char *className,const QCString &s,
bool e, const char *exName)
{
code = new OutputList(&ol);
......@@ -752,6 +753,6 @@ void parseCode(OutputList &ol,const char *className,const QString &s,
}
extern "C" { // some bogus code to keep the compiler happy
int codeYYwrap() { return 1 ; }
// int codeYYwrap() { return 1 ; }
void codeYYdummy() { yy_flex_realloc(0,0); }
}
......@@ -17,66 +17,78 @@
#ifndef CONFIG_H
#define CONFIG_H
#include <qstring.h>
#ifndef DOXYWIZARD
#include "qtbc.h"
#endif
#include <qstrlist.h>
#include <qfile.h>
extern void parseConfig(const QString &config);
extern void parseConfig(const QCString &config);
extern void writeTemplateConfig(QFile *f,bool shortList);
extern void checkConfig();
struct Config
{
static void init();
extern QString projectName; // the name of the project
extern QString projectNumber; // the number of the project
extern QString htmlOutputDir; // the directory to put the HTML files
extern QString latexOutputDir; // the directory to put the Latex files
extern QString manOutputDir; // the directory to put the man pages
extern QString headerFile; // the name of the personal HTML header
extern QString footerFile; // the name of the personal HTML footer
extern QString cgiName; // the name of the CGI binary
extern QString cgiURL; // the absolute URL to the CGI binary
extern QString docURL; // the absolute URL to the documentation
extern QString binAbsPath; // the absolute path to the doxysearch
extern QString docAbsPath; // the absolute path to the documentation
extern QString perlPath; // the absolute path to perl
extern QString genTagFile; // the tag file to generate
extern QString inputFilter; // a filter command that is applied to input files
extern QString paperType; // the page type to generate docs for
extern QString stripFromPath; // the string to strip from the file path
extern QString manExtension; // extension the man page files
extern QStrList includePath; // list of include paths
extern QStrList examplePath; // list of example paths
extern QStrList inputSources; // list of input files
extern QStrList excludeSources; // list of files to exclude from the input
extern QStrList filePatternList; // list of file patterns
extern QStrList excludePatternList; // list of patterns to exclude from input
extern QStrList tagFileList; // list of tag files
extern QStrList extDocPathList; // list of external doc. directories.
extern QStrList predefined; // list of predefined macro names.
extern QStrList extraPackageList; // list of extra LaTeX packages.
extern bool quietFlag; // generate progress messages flag
extern bool warningFlag; // generate warnings flag
extern bool recursiveFlag; // scan directories recursively
extern bool allExtFlag; // include all external classes flag
extern bool searchEngineFlag; // generate search engine flag
extern bool extractAllFlag; // gererate docs for all classes flag
extern bool extractPrivateFlag; // generate docs for private members flag
extern bool noIndexFlag; // generate condensed index flag
extern bool generateHtml; // generate HTML output
extern bool generateLatex; // generate Latex output
extern bool generateMan; // generate Man pages
extern bool preprocessingFlag; // enable preprocessing
extern bool briefMemDescFlag; // enable `inline' brief member descr.
extern bool hideMemberFlag; // hide undocumented members.
extern bool hideClassFlag; // hide undocumented members.
extern bool searchIncludeFlag; // search for included files
extern bool macroExpansionFlag; // expand macros in the source.
extern bool onlyPredefinedFlag; // expand only predefined macros
extern bool fullPathNameFlag; // using full path name in output
extern bool classDiagramFlag; // enable the generation of class diagrams.
extern bool compactLatexFlag; // generate compact LaTeX documentation.
extern bool repeatBriefFlag; // repeat brief descriptions.
extern bool internalDocsFlag; // determines what happens to internal docs.
extern bool caseSensitiveNames; // determines if output can be mixed case.
extern bool verbatimHeaderFlag; // enable/disable generation of verb headers.
extern bool htmlAlignMemberFlag; // align members in HTML using tables.
static QCString projectName; // the name of the project
static QCString projectNumber; // the number of the project
static QCString outputDir; // the global output directory
static QCString htmlOutputDir; // the directory to put the HTML files
static QCString latexOutputDir; // the directory to put the Latex files
static QCString manOutputDir; // the directory to put the man pages
static QCString outputLanguage; // the output language
static QCString headerFile; // the name of the personal HTML header
static QCString footerFile; // the name of the personal HTML footer
static QCString cgiName; // the name of the CGI binary
static QCString cgiURL; // the absolute URL to the CGI binary
static QCString docURL; // the absolute URL to the documentation
static QCString binAbsPath; // the absolute path to the doxysearch
static QCString docAbsPath; // the absolute path to the documentation
static QCString perlPath; // the absolute path to perl
static QCString genTagFile; // the tag file to generate
static QCString inputFilter; // a filter command that is applied to input files
static QCString paperType; // the page type to generate docs for
static QCString stripFromPath; // the string to strip from the file path
static QCString manExtension; // extension the man page files
static QStrList includePath; // list of include paths
static QStrList examplePath; // list of example paths
static QStrList inputSources; // list of input files
static QStrList excludeSources; // list of files to exclude from the input
static QStrList filePatternList; // list of file patterns
static QStrList excludePatternList; // list of patterns to exclude from input
static QStrList tagFileList; // list of tag files
static QStrList extDocPathList; // list of external doc. directories.
static QStrList predefined; // list of predefined macro names.
static QStrList extraPackageList; // list of extra LaTeX packages.
static bool quietFlag; // generate progress messages flag
static bool warningFlag; // generate warnings flag
static bool recursiveFlag; // scan directories recursively
static bool allExtFlag; // include all external classes flag
static bool searchEngineFlag; // generate search engine flag
static bool extractAllFlag; // gererate docs for all classes flag
static bool extractPrivateFlag; // generate docs for private members flag
static bool noIndexFlag; // generate condensed index flag
static bool generateHtml; // generate HTML output
static bool generateLatex; // generate Latex output
static bool generateMan; // generate Man pages
static bool preprocessingFlag; // enable preprocessing
static bool briefMemDescFlag; // enable `inline' brief member descr.
static bool hideMemberFlag; // hide undocumented members.
static bool hideClassFlag; // hide undocumented members.
static bool searchIncludeFlag; // search for included files
static bool macroExpansionFlag; // expand macros in the source.
static bool onlyPredefinedFlag; // expand only predefined macros
static bool fullPathNameFlag; // using full path name in output
static bool classDiagramFlag; // enable the generation of class diagrams.
static bool compactLatexFlag; // generate compact LaTeX documentation.
static bool repeatBriefFlag; // repeat brief descriptions.
static bool internalDocsFlag; // determines what happens to internal docs.
static bool caseSensitiveNames; // determines if output can be mixed case.
static bool verbatimHeaderFlag; // enable/disable generation of verb headers.
static bool htmlAlignMemberFlag; // align members in HTML using tables.
static bool includeSourceFlag; // include source code in documentation.
static bool autoBriefFlag; // javadoc comments behaves as Qt comments.
};
#endif
This diff is collapsed.
......@@ -18,13 +18,13 @@
#ifndef _CONSTEXP_H
#define _CONSTEXP_H
#include <qstring.h>
#include "qtbc.h"
#include "cppvalue.h"
extern bool parseCppExpression(const QString &s);
extern bool parseCppExpression(const QCString &s);
extern int cppExpYYparse();
extern int cppExpYYdebug;
extern QString strToken;
extern QCString strToken;
extern CPPValue resultValue;
#endif
......@@ -24,7 +24,7 @@
#define YY_NO_UNPUT
#define YY_NEVER_INTERACTIVE 1
QString strToken;
QCString strToken;
static const char *inputString;
static int inputPosition;
......@@ -94,7 +94,7 @@ static int yyread(char *buf,int max_size)
%%
bool parseCppExpression(const QString &s)
bool parseCppExpression(const QCString &s)
{
//printf("Expression: `%s'\n",s.data());
inputString = s;
......
......@@ -14,10 +14,11 @@
*
*/
#include "debug.h"
#include <stdarg.h>
#include <stdio.h>
#include <qstring.h>
#include "qtbc.h"
#include "debug.h"
Debug::DebugMask Debug::curMask = Debug::Quiet;
int Debug::curPrio = 0;
......@@ -35,7 +36,7 @@ void Debug::print(DebugMask mask,int prio,const char *fmt,...)
static int labelToEnumValue(const char *l)
{
QString label=l;
QCString label=l;
if (label=="FindMembers")
return Debug::FindMembers;
else if (label=="Functions")
......
......@@ -17,16 +17,16 @@
#ifndef DECLINFO_H
#define DECLINFO_H
#include "qtbc.h"
#include <stdio.h>
#include <qstring.h>
extern void parseFuncDecl(const QString &decl,
QString &clName,
QString &classTempList,
QString &type,
QString &name,
QString &args,
QString &funcTempList,
QString &exceptions
extern void parseFuncDecl(const QCString &decl,
QCString &clName,
QCString &classTempList,
QCString &type,
QCString &name,
QCString &args,
QCString &funcTempList,
QCString &exceptions
);
#endif
......@@ -37,18 +37,18 @@
static const char * inputString;
static int inputPosition;
static QString scope;
static QString className;
static QString classTempList;
static QString funcTempList;
static QString type;
static QString name;
static QString args;
static QString tmpType;
static QCString scope;
static QCString className;
static QCString classTempList;
static QCString funcTempList;
static QCString type;
static QCString name;
static QCString args;
static QCString tmpType;
static int sharpCount;
static bool classTempListFound;
static bool funcTempListFound;
static QString exceptionString;
static QCString exceptionString;
static void addType()
{
......@@ -95,6 +95,8 @@ static int yyread(char *buf,int max_size)
B [ \t]
ID [a-z_A-Z][a-z_A-Z0-9]*
%option noyywrap
%x Start
%x Template
%x ReadArgs
......@@ -198,8 +200,8 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
/*@ ----------------------------------------------------------------------------
*/
void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t,
QString &n,QString &a,QString &ftl,QString &exc)
void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
QCString &n,QCString &a,QCString &ftl,QCString &exc)
{
inputString = decl;
//printf("Input=`%s'\n",inputString);
......@@ -221,17 +223,18 @@ void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t,
declinfoYYlex();
cl=scope.copy();
int i;
if ((i=cl.find('<'))!=-1) // split up scope and template arguments
int il,ir;
if ((il=cl.find('<'))!=-1 && (ir=cl.findRev('>'))!=-1) // split up scope and template arguments
{
ctl=removeRedundantWhiteSpace(cl.right(cl.length()-i));
cl=cl.left(i);
if (ir==-1) ir=cl.length(); else ir++;
ctl=removeRedundantWhiteSpace(cl.mid(il,ir-il));
cl=cl.left(il)+cl.right(cl.length()-ir);
}
n=removeRedundantWhiteSpace(name);
if ((i=n.find('<'))!=-1 && n.left(8)!="operator")
if ((il=n.find('<'))!=-1 && n.left(8)!="operator")
{
ftl=removeRedundantWhiteSpace(n.right(n.length()-i));
n=n.left(i);
ftl=removeRedundantWhiteSpace(n.right(n.length()-il));
n=n.left(il);
}
//ctl=classTempList.copy();
......@@ -253,20 +256,20 @@ void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t,
}
extern "C" { // some bogus code to keep the compiler happy
int declinfoYYwrap() { return 1 ; }
void declinfoYYdummy() { yy_flex_realloc(0,0); }
}
//extern "C" { // some bogus code to keep the compiler happy
// int declinfoYYwrap() { return 1 ; }
// void declinfoYYdummy() { yy_flex_realloc(0,0); }
//}
#if 0
void dumpDecl(const char *s)
{
QString className;
QString classTNames;
QString type;
QString name;
QString args;
QString funcTNames;
QCString className;
QCString classTNames;
QCString type;
QCString name;
QCString args;
QCString funcTNames;
printf("-----------------------------------------\n");
parseFuncDecl(s,className,classTNames,type,name,args,funcTNames);
printf("type=`%s' class=`%s' classTempl=`%s' name=`%s' "
......
......@@ -17,8 +17,8 @@
#ifndef DEFARGS_H
#define DEFARGS_H
#include "qtbc.h"
#include <stdio.h>
#include <qstring.h>
class ArgumentList;
......
......@@ -19,6 +19,7 @@
/*
* includes
*/
#include "qtbc.h"
#include <stdio.h>
#include <iostream.h>
#include <assert.h>
......@@ -40,10 +41,10 @@
static const char *inputString;
static int inputPosition;
static ArgumentList *argList;
static QString *copyArgValue;
static QString curArgTypeName;
static QString curArgDefValue;
static QString curArgName;
static QCString *copyArgValue;
static QCString curArgTypeName;
static QCString curArgDefValue;
static QCString curArgName;
static int argRoundCount;
static int argSharpCount;
static int argCurlyCount;
......@@ -72,6 +73,8 @@ static int yyread(char *buf,int max_size)
B [ \t]
ID [a-z_A-Z][a-z_A-Z0-9]*
%option noyywrap
%x Start
%x CopyArgString
%x CopyArgRound
......@@ -239,7 +242,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
}
}
<ReadFuncArgType,ReadFuncArgPtr>{ID} {
QString name=yytext; //resolveDefines(yytext);
QCString name=yytext; //resolveDefines(yytext);
//printf("resolveName `%s'->`%s'\n",yytext,name.data());
curArgTypeName+=name;
}
......@@ -250,7 +253,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
curArgDefValue+=*yytext;
}
<CopyArgRound,CopyArgRound2,CopyArgSharp,CopyArgCurly>{ID} {
QString name=yytext; //resolveDefines(yytext);
QCString name=yytext; //resolveDefines(yytext);
*copyArgValue+=name;
}
<CopyArgRound,CopyArgRound2,CopyArgSharp,CopyArgCurly>. {
......@@ -293,6 +296,6 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al)
}
extern "C" { // some bogus code to keep the compiler happy
int defargsYYwrap() { return 1 ; }
// int defargsYYwrap() { return 1 ; }
void defargsYYdummy() { yy_flex_realloc(0,0); }
}
......@@ -39,5 +39,5 @@ Define::~Define()
bool Define::hasDocumentation()
{
return definition && (doc || extractAllFlag);
return definition && (doc || Config::extractAllFlag);
}
......@@ -17,8 +17,8 @@
#ifndef DEFINE_H
#define DEFINE_H
#include "qtbc.h"
#include <qdict.h>
#include <qstring.h>
#include "util.h"
class FileDef;
......@@ -30,13 +30,13 @@ class Define
Define(const Define &d);
~Define();
bool hasDocumentation();
QString name;
QString definition;
QString fileName;
QString doc;
QString brief;
QString args;
QString anchor;
QCString name;
QCString definition;
QCString fileName;
QCString doc;
QCString brief;
QCString args;
QCString anchor;
FileDef *fileDef;
int lineNr;
int nargs;
......@@ -67,7 +67,7 @@ class DefineName : public QList<Define>
}
private:
QString name;
QCString name;
};
class DefineNameList : public QList<DefineName>
......
......@@ -14,6 +14,7 @@
*
*/
#include "qtbc.h"
#include <ctype.h>
#include "definition.h"
#include "doxygen.h"
......@@ -28,23 +29,23 @@ Definition::~Definition()
delete sectionList;
}
QString Definition::nameToFile(const char *name)
QCString Definition::nameToFile(const char *name)
{
QString result;
QCString result;
char c;
const char *p=name;
while ((c=*p++)!=0)
{
switch(c)
{
case ':': break;
case ':': result+="_"; break;
case '<': result+="_lt"; break;
case '>': result+="_gt"; break;
case '*': result+="_ast"; break;
case '&': result+="_amp"; break;
case ' ': break;
default:
if (caseSensitiveNames)
if (Config::caseSensitiveNames)
result+=c;
else
result+=tolower(c);
......@@ -54,10 +55,10 @@ QString Definition::nameToFile(const char *name)
return result;
}
void Definition::addSectionsToDefinition(QList<QString> *anchorList)
void Definition::addSectionsToDefinition(QList<QCString> *anchorList)
{
if (!anchorList) return;
QString *s=anchorList->first();
QCString *s=anchorList->first();
while (s)
{
SectionInfo *si=0;
......
......@@ -17,7 +17,7 @@
#ifndef DEFINITION_H
#define DEFINITION_H
#include <qstring.h>
#include "qtbc.h"
#include <qlist.h>
#include "config.h"
#include "section.h"
......@@ -31,13 +31,13 @@ class Definition
//! destroys the definition
virtual ~Definition();
//! returns the name of the definition
QString name() const { return n; }
QCString name() const { return n; }
//! returns the base name of the output file that contains this definition.
virtual QString getOutputFileBase() const = 0;
virtual QCString getOutputFileBase() const = 0;
//! returns the detailed description of this definition
QString documentation() const { return doc; }
QCString documentation() const { return doc; }
//! returns the brief description of this definition
QString briefDescription() const { return brief; }
QCString briefDescription() const { return brief; }
//! sets a new name for the definition
void setName(const char *name) { n=name; }
//! sets the documentation of this definition
......@@ -54,16 +54,16 @@ class Definition
brief.at(bl-1)!='?') brief+='.';
}
//! returns TRUE iff the definition is documented
bool hasDocumentation()
{ return !doc.isNull() || !brief.isNull() || extractAllFlag; }
QString nameToFile(const char *name);
virtual bool hasDocumentation()
{ return !doc.isNull() || !brief.isNull() || Config::extractAllFlag; }
QCString nameToFile(const char *name);
void addSectionsToDefinition(QList<QString> *anchorList);
void addSectionsToDefinition(QList<QCString> *anchorList);
private:
QString n; // name of the definition
QString brief; // brief description
QString doc; // detailed description
QCString n; // name of the definition
QCString brief; // brief description
QCString doc; // detailed description
SectionList *sectionList; // list of all sections
};
......
......@@ -15,10 +15,10 @@
*
*/
#include "qtbc.h"
#include <stdio.h>
#include <stdlib.h>
#include <qlist.h>
#include <qstring.h>
#include <qarray.h>
#include <qtstream.h>
#include <qfile.h>
......@@ -43,9 +43,9 @@ const uint labelVertSpacing = 32; // vertical distance between labels
const uint labelHorMargin = 6; // horiz. spacing between label and box
const uint fontHeight = 12; // height of a character
//static QString escapeLatex(const char *s)
//static QCString escapeLatex(const char *s)
//{
// QString result;
// QCString result;
// char c;
// while ((c=*s++))
// {
......@@ -77,7 +77,7 @@ static uint protToColor(Protection p)
return 0;
}
static QString protToString(Protection p)
static QCString protToString(Protection p)
{
switch(p)
{
......@@ -180,12 +180,12 @@ DiagramItem::~DiagramItem()
delete children;
}
QString DiagramItem::label() const
QCString DiagramItem::label() const
{
return classDef->name()+templSpec;
}
QString DiagramItem::fileName() const
QCString DiagramItem::fileName() const
{
return classDef->getOutputFileBase();
}
......@@ -960,10 +960,10 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
//printf("writeFigure rows=%d cols=%d\n",rows,cols);
QFile f1((QString)path+"/"+fileName+".eps");
QFile f1((QCString)path+"/"+fileName+".eps");
if (!f1.open(IO_WriteOnly))
{
err("Could not open file %s for writing\n",f1.name());
err("Could not open file %s for writing\n",convertToQCString(f1.name()).data());
exit(1);
}
QTextStream t(&f1);
......@@ -1229,7 +1229,7 @@ void ClassDiagram::writeImageMap(QTextStream &t,const char *path,
base->drawConnectors(t,&image,TRUE,TRUE,baseRows,superRows,cellWidth,cellHeight);
super->drawConnectors(t,&image,FALSE,TRUE,baseRows,superRows,cellWidth,cellHeight);
image.save((QString)path+"/"+fileName+".gif");
image.save((QCString)path+"/"+fileName+".gif");
t << "</MAP></P>" << endl;
}
......
......@@ -15,6 +15,7 @@
*
*/
#include "qtbc.h"
#include "entry.h"
class ClassDef;
......@@ -30,8 +31,8 @@ class DiagramItem
DiagramItem(DiagramItem *p,int number,ClassDef *cd,
Protection prot,Specifier virt,const char *ts);
~DiagramItem();
QString label() const;
QString fileName() const;
QCString label() const;
QCString fileName() const;
DiagramItem *parentItem() { return parent; }
DiagramItemList *getChildren() { return children; }
void move(int dx,int dy) { x+=dx; y+=dy; }
......@@ -53,7 +54,7 @@ class DiagramItem
int num;
Protection prot;
Specifier virt;
QString templSpec;
QCString templSpec;
bool inList;
ClassDef *classDef;
};
......
This diff is collapsed.
......@@ -18,6 +18,7 @@
#ifndef DOXYGEN_H
#define DOXYGEN_H
#include "qtbc.h"
#include "groupdef.h"
#include "filedef.h"
#include "classdef.h"
......@@ -34,9 +35,9 @@ struct PageInfo
{
PageInfo(const char *n,const char *d,const char *t)
{ name=n; doc=d; title=t; }
QString name;
QString doc;
QString title;
QCString name;
QCString doc;
QCString title;
};
class PageList : public QList<PageInfo>
......@@ -47,10 +48,10 @@ class PageList : public QList<PageInfo>
}
};
class BufStr : public QString
class BufStr : public QCString
{
public:
BufStr(int size) : QString(size), offset(0), spareRoom(10240) {}
BufStr(int size) : QCString(size), offset(0), spareRoom(10240) {}
void addChar(char c)
{
if (offset>=size()) resize(size()+spareRoom);
......@@ -73,11 +74,11 @@ class BufStr : public QString
const int spareRoom; // 10Kb extra room to avoid frequent resizing
};
typedef QList<QString> StringList;
typedef QList<QCString> StringList;
typedef QDict<MemberDef> MemberDict;
typedef QDict<ClassDef> ClassDict;
typedef QDict<FileDef> FileDict;
typedef QDict<QString> StringDict;
typedef QDict<QCString> StringDict;
typedef QDict<PageInfo> PageDict;
typedef QDict<GroupDef> GroupDict;
......
......@@ -14,7 +14,7 @@
# TMake project file for doxygen
TEMPLATE = doxygen.t
CONFIG = console qt warn_on release #debug
CONFIG = console qt warn_on release #debug
HEADERS = doxygen.h scanner.h classdef.h classlist.h memberdef.h \
membername.h index.h memberlist.h definition.h \
entry.h logos.h instdox.h message.h code.h \
......
......@@ -259,7 +259,15 @@ void printSearchPage(bool open=FALSE)
int readInt(FILE *f)
{
return (fgetc(f)<<24)+(fgetc(f)<<16)+(fgetc(f)<<8)+fgetc(f);
unsigned char c_24 = fgetc(f);
unsigned char c_16 = fgetc(f);
unsigned char c_08 = fgetc(f);
unsigned char c_00 = fgetc(f);
return ((unsigned int)c_24<<24)+
((unsigned int)c_16<<16)+
((unsigned int)c_08<<8)+
c_00;
//return (fgetc(f)<<24)+(fgetc(f)<<16)+(fgetc(f)<<8)+fgetc(f);
}
//----------------------------------------------------------------------------
......@@ -755,10 +763,10 @@ void fileToBuf(const char *name, char **buf)
{
FILE *f;
struct stat file_stats;
if ((f=fopen(name,"r"))==NULL) return;
if ((f=fopen(name,"rb"))==NULL) return;
if (stat(name,&file_stats)==-1)
{
message("Error: could not fstat header file %s\n",name);
message("Error: could not fstat file %s\n",name);
exit(1);
}
unsigned int len=file_stats.st_size;
......@@ -769,7 +777,7 @@ void fileToBuf(const char *name, char **buf)
}
if (fread(*buf,1,len,f)!=len)
{
message("Error: could not read header file %s\n",name);
message("Error: could not read file %s\n",name);
exit(1);
}
(*buf)[len]='\0';
......@@ -808,12 +816,20 @@ void getConfig(const char *s)
char headerFile[MAXSTRLEN];
strcpy(headerFile,s);
#if defined(_WIN32)
strcat(headerFile,"\\header.html");
#else
strcat(headerFile,"/header.html");
#endif
fileToBuf(headerFile,&headerBuf);
char footerFile[MAXSTRLEN];
strcpy(footerFile,s);
#if defined(_WIN32)
strcat(footerFile,"\\footer.html");
#else
strcat(footerFile,"/footer.html");
#endif
fileToBuf(footerFile,&footerBuf);
}
......@@ -908,16 +924,24 @@ int main(int argc,char **argv)
{
char configFile[MAXSTRLEN];
strcpy(configFile,argv[argIndex]);
#if defined(_WIN32)
strcat(configFile,"\\search.cfg");
#else
strcat(configFile,"/search.cfg");
#endif
char indexFile[MAXSTRLEN];
strcpy(indexFile,argv[argIndex]);
#if defined(_WIN32)
strcat(indexFile,"\\search.idx");
#else
strcat(indexFile,"/search.idx");
#endif
FileInfo *fi=fileList.add();
FILE *g;
if ((fi->f=fopen(indexFile,"r"))==NULL)
if ((fi->f=fopen(indexFile,"rb"))==NULL)
{
message("Error: could not open index file %s\n",indexFile);
exit(1);
......
......@@ -23,7 +23,7 @@
#include <assert.h>
#include <ctype.h>
#include <qstring.h>
#include "qtbc.h"
#include <qstrlist.h>
#include <qfileinf.h>
#include <qfile.h>
......@@ -38,16 +38,16 @@
struct MemberDef
{
QString name;
QString anchor;
QString args;
QCString name;
QCString anchor;
QCString args;
};
struct ClassDef
{
QString name;
QCString name;
QStrList bases;
QString fileName;
QCString fileName;
bool isFile;
QList<MemberDef> memberList;
};
......@@ -61,19 +61,19 @@ static bool genTag;
static bool genIndex;
static QStrList bases;
static QString inputString;
static QCString inputString;
static int inputPosition;
static QString yyFileName;
static QCString yyFileName;
static int yyLineNr;
static QString classFile;
static QString memberRef;
static QString memberName;
static QString memberArgs;
static QString className;
static QCString classFile;
static QCString memberRef;
static QCString memberName;
static QCString memberArgs;
static QCString className;
//static bool newClass;
static QString docBaseLink;
static QString docAnchor;
static QString docRefName;
static QCString docBaseLink;
static QCString docAnchor;
static QCString docRefName;
static bool nameBug;
static SearchIndex searchIndex;
......@@ -152,9 +152,9 @@ static void addReference()
}
}
QString unhtmlify(const char *str)
QCString unhtmlify(const char *str)
{
QString result;
QCString result;
const char *p=str;
char c;
while ((c=*p)!='\0')
......@@ -236,7 +236,7 @@ QString unhtmlify(const char *str)
}
<SkipPreformated>[^\<]+
<CheckConstructor>[a-z_A-Z0-9~:]+ {
QString s=yytext;
QCString s=yytext;
if (s.find("::")!=-1)
{
docRefName=yytext;
......@@ -401,7 +401,7 @@ QString unhtmlify(const char *str)
*/
void parse(QString &s)
void parse(QCString &s)
{
bases.clear();
nameBug = FALSE;
......@@ -425,7 +425,7 @@ void parseFile(QFileInfo &fi)
className.resize(0);
memberName.resize(0);
//printf("Parsing file %s...\n",fi.fileName().data());
QString input(fi.size()+1);
QCString input(fi.size()+1);
docBaseLink=fi.fileName();
docRefName=fi.fileName().copy();
searchIndex.addReference(docRefName,docBaseLink);
......@@ -503,8 +503,8 @@ const char *getArg(int argc,char **argv,int &optind,const char c)
int main(int argc,char **argv)
{
QString tagName;
QString indexName;
QCString tagName;
QCString indexName;
int optind=1;
const char *arg;
......@@ -554,7 +554,7 @@ int main(int argc,char **argv)
}
if (genIndex)
{
printf("Writing search index\n");
//printf("Writing search index\n");
if (!searchIndex.saveIndex(indexName))
{
fprintf(stderr,"Error: Could not write search index\n");
......@@ -562,7 +562,7 @@ int main(int argc,char **argv)
QFileInfo fi(indexName);
if (fi.exists())
{
QString dir=fi.dir().absPath();
QCString dir=convertToQCString(fi.dir().absPath());
fi.setFile(dir+"/search.gif");
if (!fi.exists()) writeSearchButton(dir);
fi.setFile(dir+"/doxygen.gif");
......
......@@ -16,31 +16,32 @@
#include "entry.h"
static int newCount=0;
int Entry::num=0;
Entry::Entry()
{
num=newCount++;
num++;
//printf("New Entry %d\n",num);
parent=0;
sublist = new QList<Entry>;
sublist->setAutoDelete(TRUE);
extends = new QList<BaseInfo>;
extends->setAutoDelete(TRUE);
groups = new QList<QString>;
groups = new QList<QCString>;
groups->setAutoDelete(TRUE);
anchors = new QList<QString>;
anchors = new QList<QCString>;
anchors->setAutoDelete(TRUE);
argList = new ArgumentList;
argList->setAutoDelete(TRUE);
//printf("Entry::Entry() tArgList=0\n");
tArgList = 0;
mGrpId = -1;
reset();
}
Entry::Entry(const Entry &e)
{
num=newCount++;
num++;
//printf("Copy New Entry %d\n",num);
section = e.section;
protection = e.protection;
......@@ -62,13 +63,14 @@ Entry::Entry(const Entry &e)
inside = e.inside.copy();
fileName = e.fileName.copy();
startLine = e.startLine;
mGrpId = e.mGrpId;
sublist = new QList<Entry>;
sublist->setAutoDelete(TRUE);
extends = new QList<BaseInfo>;
extends->setAutoDelete(TRUE);
groups = new QList<QString>;
groups = new QList<QCString>;
groups->setAutoDelete(TRUE);
anchors = new QList<QString>;
anchors = new QList<QCString>;
anchors->setAutoDelete(TRUE);
argList = new ArgumentList;
argList->setAutoDelete(TRUE);
......@@ -92,17 +94,17 @@ Entry::Entry(const Entry &e)
}
// deep copy group list
QListIterator<QString> sli(*e.groups);
QString *s;
QListIterator<QCString> sli(*e.groups);
QCString *s;
for (;(s=sli.current());++sli)
{
groups->append(new QString(*s));
groups->append(new QCString(*s));
}
QListIterator<QString> sli2(*e.anchors);
QListIterator<QCString> sli2(*e.anchors);
for (;(s=sli2.current());++sli2)
{
anchors->append(new QString(*s));
anchors->append(new QCString(*s));
}
// deep copy argument list
......@@ -140,8 +142,8 @@ Entry::~Entry()
delete groups;
delete anchors;
delete argList;
//printf("Entry::~Entry() tArgList=%p\n",tArgList);
delete tArgList;
num--;
}
void Entry::addSubEntry(Entry *current)
......@@ -171,6 +173,7 @@ void Entry::reset()
args.resize(0);
exception.resize(0);
program.resize(0);
body.resize(0);
includeFile.resize(0);
includeName.resize(0);
doc.resize(0);
......@@ -178,6 +181,7 @@ void Entry::reset()
brief.resize(0);
inside.resize(0);
fileName.resize(0);
mGrpId = -1;
section = EMPTY_SEC;
sig = FALSE;
virt = Normal;
......@@ -202,6 +206,7 @@ int Entry::getSize()
size+=args.length()+1;
size+=exception.length()+1;
size+=program.length()+1;
size+=body.length()+1;
size+=includeFile.length()+1;
size+=includeName.length()+1;
size+=doc.length()+1;
......@@ -216,7 +221,7 @@ int Entry::getSize()
size+=bi->name.length()+1+sizeof(bi->prot)+sizeof(bi->virt);
bi=extends->next();
}
QString *s=groups->first();
QCString *s=groups->first();
while (s)
{
size+=sizeof(QLNode);
......
......@@ -17,7 +17,7 @@
#ifndef ENTRY_H
#define ENTRY_H
#include <qstring.h>
#include "qtbc.h"
#include <qlist.h>
enum Protection { Public, Protected, Private } ;
......@@ -26,7 +26,7 @@ enum Specifier { Normal, Virtual, Pure } ;
struct BaseInfo
{
BaseInfo(const char *n,Protection p,Specifier v) : name(n),prot(p),virt(v) {}
QString name; // the name of the base class
QCString name; // the name of the base class
Protection prot; // inheritance type
Specifier virt; // virtualness
};
......@@ -51,9 +51,9 @@ struct Argument
return *this;
}
QString type; // argument type
QString name; // argument name (if any)
QString defval; // argument default value (if any)
QCString type; // argument type
QCString name; // argument name (if any)
QCString defval; // argument default value (if any)
};
class ArgumentList : public QList<Argument>
......@@ -115,35 +115,37 @@ class Entry
void addSubEntry (Entry* e) ;
void reset();
int section; // entry type;
int section; // entry type (see Sections);
Protection protection; // class protection
bool sig; // a Qt signal ?
bool slot; // a Qt slot ?
bool stat; // static ?
bool proto; // prototype ?
Specifier virt; // virtualness of the entry
Entry *parent; // parent node in the tree
QString type; // member type
QString name; // member name
QString args; // member argument string
Specifier virt; // virtualness of the entry
Entry *parent; // parent node in the tree
QCString type; // member type
QCString name; // member name
QCString args; // member argument string
ArgumentList *argList; // member arguments as a list
ArgumentList *tArgList; // template argument list
ArgumentList *tNameList; // template name list
QString program; // the program text
QString includeFile; // include file (2 arg of \class, must be unique)
QString includeName; // include name (3 arg of \class)
QString doc; // documentation block (partly parsed)
QString relates; // related class (doc block)
QString brief; // brief description (doc block)
QString inside; // name of the class in which documents are found
QString exception; // throw specification
QCString program; // the program text
QCString body; // the function body
QCString includeFile; // include file (2 arg of \class, must be unique)
QCString includeName; // include name (3 arg of \class)
QCString doc; // documentation block (partly parsed)
QCString relates; // related class (doc block)
QCString brief; // brief description (doc block)
QCString inside; // name of the class in which documents are found
QCString exception; // throw specification
int mGrpId; // member group id
QCString mGrpHeader; // member group header
QList<Entry> *sublist; // entries that are children of this one
QList<BaseInfo> *extends; // list of base classes
QList<QString> *groups; // list of groups this entry belongs to
QList<QString> *anchors; // list of anchors defined in this entry
QString fileName; // file this entry was extracted from
QList<QCString> *groups; // list of groups this entry belongs to
QList<QCString> *anchors; // list of anchors defined in this entry
QCString fileName; // file this entry was extracted from
int startLine; // start line of entry in the source
int num;
static int num; // counts the total number of entries
private:
Entry &operator=(const Entry &);
} ;
......
......@@ -17,16 +17,16 @@
#ifndef EXAMPLE_H
#define EXAMPLE_H
#include <qstring.h>
#include "qtbc.h"
class ClassDef;
class MemberName;
struct Example
{
QString anchor;
QString name;
QString file;
QCString anchor;
QCString name;
QCString file;
};
class ExampleList : public QList<Example>
......
......@@ -14,6 +14,7 @@
*
*/
#include "qtbc.h"
#include "memberlist.h"
#include "classlist.h"
#include "define.h"
......@@ -66,14 +67,14 @@ void FileDef::writeDocumentation(OutputList &ol)
{
//funcList->countDecMembers();
QString pageTitle=name()+" File Reference";
QCString pageTitle=name()+" File Reference";
startFile(ol,diskname,pageTitle);
startTitle(ol);
parseText(ol,theTranslator->trFileReference(name()));
endTitle(ol,name());
//ol.newParagraph();
if (genTagFile.length()>0) tagFile << "&" << name() << ":\n";
if (Config::genTagFile.length()>0) tagFile << "&" << name() << ":\n";
//brief=brief.stripWhiteSpace();
//int bl=brief.length();
......@@ -97,17 +98,53 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.writeSynopsis();
ol.startMemberSections();
if (namespaceList->count()>0)
{
NamespaceDef *nd=namespaceList->first();
bool found=FALSE;
while (nd)
{
if (nd->isVisibleExt())
{
if (!found)
{
ol.startMemberHeader();
parseText(ol,theTranslator->trNamespaces());
ol.endMemberHeader();
ol.startMemberList();
found=TRUE;
}
ol.startMemberItem();
ol.writeString("namespace ");
ol.insertMemberAlign();
if (nd->hasDocumentation())
{
ol.writeObjectLink(nd->getReference(),
nd->getOutputFileBase(),
0,
nd->name()
);
}
else
{
ol.startBold();
ol.docify(nd->name());
ol.endBold();
}
ol.endMemberItem();
}
nd=namespaceList->next();
}
if (found) ol.endMemberList();
}
if (classList->count()>0)
{
ClassDef *cd=classList->first();
bool found=FALSE;
while (cd)
{
if (//cd->name()[0]!='@' &&
//(cd->protection()!=Private || extractPrivateFlag) &&
//(cd->hasDocumentation() || !hideClassFlag))
cd->isVisibleExt()
)
if ( cd->isVisibleExt() )
{
if (!found)
{
......@@ -247,7 +284,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.startGroupHeader();
parseText(ol,theTranslator->trAuthor());
ol.endGroupHeader();
parseText(ol,theTranslator->trGeneratedAutomatically(projectName));
parseText(ol,theTranslator->trGeneratedAutomatically(Config::projectName));
ol.enableAll();
endFile(ol);
}
......
......@@ -17,8 +17,8 @@
#ifndef FILEDEF_H
#define FILEDEF_H
#include <qlist.h>
#include "index.h"
#include <qlist.h>
#include "config.h"
#include "definition.h"
......@@ -53,9 +53,9 @@ class FileDef : public Definition
~FileDef();
/*! Returns the unique file name (this may include part of the path). */
QString name() const
QCString name() const
{
if (fullPathNameFlag)
if (Config::fullPathNameFlag)
return filename;
else
return Definition::name();
......@@ -63,10 +63,10 @@ class FileDef : public Definition
/*! Returns nameString with all slashes replaced by underscores. */
//const char *diskName() const { return diskname; }
QString getOutputFileBase() const { return diskname; }
QCString getOutputFileBase() const { return diskname; }
/*! Returns the absolute path including the file name. */
QString absFilePath() const { return filepath; }
QCString absFilePath() const { return filepath; }
/*! Returns the name of the verbatim copy of this file (if any). */
const char *includeName() const { return incName; }
......@@ -87,7 +87,7 @@ class FileDef : public Definition
//void setDocumentation(const char *d) { doc=d; }
/*! Returns the absolute path of this file. */
QString getPath() const { return path; }
QCString getPath() const { return path; }
/*! Returns true iff any documentation for this file is found. */
//bool hasDocumentation()
......@@ -117,15 +117,15 @@ class FileDef : public Definition
FileList *includeList;
NamespaceList *namespaceList;
DefineList *defineList;
//QString n;
//QString doc;
//QString brief;
QString reference;
QString path;
QString filepath;
QString diskname;
QString filename;
QString incName;
//QCString n;
//QCString doc;
//QCString brief;
QCString reference;
QCString path;
QCString filepath;
QCString diskname;
QCString filename;
QCString incName;
//FileType ftype;
};
......
......@@ -26,9 +26,9 @@ FileName::~FileName()
{
}
//static QString convertSlashes(const char *s)
//static QCString convertSlashes(const char *s)
//{
// QString result=s;
// QCString result=s;
// int i,l=result.length();
// for (i=0;i<l;i++) if (result.at(i)=='/') result.at(i)='_';
// return result;
......@@ -36,7 +36,7 @@ FileName::~FileName()
void FileName::generateDiskNames()
{
QString commonPrefix;
QCString commonPrefix;
FileDef *fd=first();
int count=0;
while (fd) { if (!fd->isReference()) count++; fd=next(); }
......@@ -66,8 +66,8 @@ void FileName::generateDiskNames()
//printf("i=%d fd->path=`%s' fd->name=`%s'\n",i,fd->path.data(),fd->name().data());
if (i==(int)fd->path.length())
{
warning("Warning: Input file found multiple times!\n"
" The generated documentation for this file may not be correct!\n");
warning("Warning: Input file %s found multiple times!\n"
" The generated documentation for this file may not be correct!\n",fd->absFilePath().data());
found=TRUE;
}
else if (fd->path[i]!=c)
......
......@@ -17,6 +17,7 @@
#ifndef FILENAME_H
#define FILENAME_H
#include "qtbc.h"
#include <qdict.h>
#include "filedef.h"
......@@ -30,7 +31,7 @@ class FileName : public QList<FileDef>
int compareItems(GCI item1,GCI item2);
private:
QString name;
QCString name;
};
class FileNameIterator : public QListIterator<FileDef>
......
......@@ -17,6 +17,7 @@
#include <stdlib.h>
#include <unistd.h>
#include "qtbc.h"
#include <qfile.h>
#include <qtstream.h>
#include <qfileinf.h>
......@@ -49,12 +50,12 @@ void FormulaList::generateBitmaps(const char *path)
QDir d(path);
// store the original directory
if (!d.exists()) { err("Error: Output dir %s does not exist!\n",path); exit(1); }
QString oldDir = QDir::currentDirPath().copy();
QCString oldDir = convertToQCString(QDir::currentDirPath());
// goto the html output directory (i.e. path)
QDir::setCurrent(d.absPath());
QDir thisDir;
// generate a latex file containing one formula per page.
QString texName="_formulas.tex";
QCString texName="_formulas.tex";
QList<int> pagesToGenerate;
pagesToGenerate.setAutoDelete(TRUE);
FormulaListIterator fli(*this);
......@@ -70,7 +71,7 @@ void FormulaList::generateBitmaps(const char *path)
int page=0;
for (fli.toFirst();(formula=fli.current());++fli)
{
QString resultName;
QCString resultName;
resultName.sprintf("form-%d.gif",formula->getId());
// only formulas for which no image exists are generated
QFileInfo fi(resultName);
......@@ -99,7 +100,7 @@ void FormulaList::generateBitmaps(const char *path)
int pageNum=*pagePtr;
msg("Generating image form-%d.gif for formula\n",pageNum);
char dviCmd[256];
QString formBase;
QCString formBase;
formBase.sprintf("_form%d",pageNum);
// run dvips to convert the page with number pageIndex to an
// encapsulated postscript.
......@@ -110,7 +111,7 @@ void FormulaList::generateBitmaps(const char *path)
QFileInfo fi(formBase+".eps");
if (fi.exists())
{
QString eps = fileToString(formBase+".eps");
QCString eps = fileToString(formBase+".eps");
int i=eps.find("%%BoundingBox:");
if (i!=-1)
{
......@@ -162,7 +163,7 @@ void FormulaList::generateBitmaps(const char *path)
if (f.open(IO_ReadOnly))
{
QTextStream t(&f);
QString s;
QCString s;
if (!t.eof())
s=t.readLine();
if (s.length()<2 || s.left(2)!="P6")
......@@ -233,7 +234,7 @@ void FormulaList::generateBitmaps(const char *path)
}
}
// save the result as a gif
QString resultName;
QCString resultName;
resultName.sprintf("form-%d.gif",pageNum);
// the option parameter 1 is used here as a temporary hack
// to select the right color palette!
......
......@@ -17,7 +17,7 @@
#ifndef FORMULA_H
#define FORMULA_H
#include <qstring.h>
#include "qtbc.h"
#include <qlist.h>
#include <qdict.h>
......@@ -27,11 +27,11 @@ class Formula
Formula(const char *text);
~Formula();
int getId();
QString getFormulaText() const { return form; }
QCString getFormulaText() const { return form; }
private:
int number;
QString form;
QCString form;
};
class FormulaList : public QList<Formula>
......
......@@ -15,6 +15,7 @@
*/
#include <ctype.h>
#include "qtbc.h"
#include "groupdef.h"
#include "classdef.h"
#include "filedef.h"
......@@ -118,7 +119,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
ClassDef *cd=classList->first();
while (cd)
{
QString type;
QCString type;
switch (cd->compoundType())
{
case ClassDef::Class: type="class"; break;
......
......@@ -17,7 +17,7 @@
#ifndef GROUPDEF_H
#define GROUPDEF_H
#include <qstring.h>
#include "qtbc.h"
#include <qlist.h>
#include "definition.h"
......@@ -36,7 +36,7 @@ class GroupDef : public Definition
GroupDef(const char *name,const char *title);
~GroupDef();
//const char *groupFile() const { return fileName; }
QString getOutputFileBase() const { return fileName; }
QCString getOutputFileBase() const { return fileName; }
const char *groupTitle() const { return title; }
void addFile(const FileDef *def);
void addClass(const ClassDef *def);
......@@ -45,8 +45,8 @@ class GroupDef : public Definition
int countMembers() const;
private:
QString title; // title of the group
QString fileName; // base name of the generated file
QCString title; // title of the group
QCString fileName; // base name of the generated file
FileList *fileList; // list of all files in the group
ClassList *classList; // list of all classes in the group
NamespaceList *namespaceList; // list of all namespace in the group
......
......@@ -14,8 +14,10 @@
*
*/
#include <qdir.h>
#include <stdlib.h>
#include "qtbc.h"
#include <qdir.h>
#include "message.h"
#include "htmlgen.h"
#include "config.h"
......@@ -26,9 +28,9 @@
HtmlGenerator::HtmlGenerator() : OutputGenerator()
{
if (headerFile.length()>0) header=fileToString(headerFile);
if (footerFile.length()>0) footer=fileToString(footerFile);
dir=htmlOutputDir;
if (Config::headerFile.length()>0) header=fileToString(Config::headerFile);
if (Config::footerFile.length()>0) footer=fileToString(Config::footerFile);
dir=Config::htmlOutputDir;
}
HtmlGenerator::~HtmlGenerator()
......@@ -42,18 +44,18 @@ void HtmlGenerator::append(const OutputGenerator *g)
void HtmlGenerator::init()
{
QDir d(htmlOutputDir);
if (!d.exists() && !d.mkdir(htmlOutputDir))
QDir d(Config::htmlOutputDir);
if (!d.exists() && !d.mkdir(Config::htmlOutputDir))
{
err("Could not create output directory %s\n",htmlOutputDir.data());
err("Could not create output directory %s\n",Config::htmlOutputDir.data());
exit(1);
}
writeLogo(htmlOutputDir);
writeLogo(Config::htmlOutputDir);
}
void HtmlGenerator::startFile(const char *name,const char *title,bool external)
{
QString fileName=name;
QCString fileName=name;
lastTitle=title;
if (fileName.right(5)!=".html") fileName+=".html";
startPlainFile(fileName);
......@@ -156,7 +158,9 @@ void HtmlGenerator::writeStyleInfo(int part)
if (part==0)
{
startPlainFile("doxygen.css");
t << "H1 { border-width: thin; border: solid; text-align: center }" << endl
t
//<< "H1 { border-width: thin; border: solid; text-align: center }" << endl
<< "H1 { text-align: center }" << endl
<< "A.el { text-decoration: none; font-weight: bold }" << endl
<< "DL.el { margin-left: -1cm }" << endl
<< "DIV.fragment { width: 100%; border: none; background-color: #eeeeee }" << endl
......@@ -274,7 +278,7 @@ void HtmlGenerator::writeSection(const char *lab,const char *title,bool sub)
void HtmlGenerator::writeSectionRef(const char *name,const char *lab,
const char *title)
{
QString refName=name;
QCString refName=name;
if (refName.right(5)!=".html") refName+=".html";
t << "<a href=\"" << refName << "#" << lab << "\">";
docify(title);
......@@ -284,7 +288,7 @@ void HtmlGenerator::writeSectionRef(const char *name,const char *lab,
void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab,
const char *title)
{
QString refName=name;
QCString refName=name;
if (refName.right(5)!=".html") refName+=".html";
t << "<a href=\"" << refName << "#" << lab << "\">";
docify(title);
......@@ -356,7 +360,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d,
void HtmlGenerator::startColorFont(uchar red,uchar green,uchar blue)
{
QString colorString;
QCString colorString;
colorString.sprintf("%02x%02x%02x",red,green,blue);
t << "<font color=\"#" << colorString << "\">";
}
......@@ -370,12 +374,12 @@ void HtmlGenerator::writeFormula(const char *n,const char *text)
{
if (text && text[0]=='\\') t << "<p><center>" << endl;
t << "<img align=\"top\" src=\"" << n << "\">" << endl;
if (text && text[0]=='\\') t << "</center></p>" << endl;
if (text && text[0]=='\\') t << "</center><p>" << endl;
}
void HtmlGenerator::startMemberList()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
//t << endl << "<p><table border=0 cellspacing=2 cellpadding=0>" << endl;
}
......@@ -387,7 +391,7 @@ void HtmlGenerator::startMemberList()
void HtmlGenerator::endMemberList()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
//t << "</table>" << endl;
}
......@@ -399,7 +403,7 @@ void HtmlGenerator::endMemberList()
void HtmlGenerator::startMemberItem()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "<tr><td align=right valign=top>";
}
......@@ -411,15 +415,15 @@ void HtmlGenerator::startMemberItem()
void HtmlGenerator::insertMemberAlign()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "</td><td valign=top>";
t << "&nbsp;</td><td valign=top>";
}
}
void HtmlGenerator::endMemberItem()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "</td></tr>";
}
......@@ -428,7 +432,7 @@ void HtmlGenerator::endMemberItem()
void HtmlGenerator::startMemberDescription()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "<tr><td></td><td><font size=-1><em>";
}
......@@ -440,7 +444,7 @@ void HtmlGenerator::startMemberDescription()
void HtmlGenerator::endMemberDescription()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "</em></font><br><br></td></tr>" << endl;
}
......@@ -452,7 +456,7 @@ void HtmlGenerator::endMemberDescription()
void HtmlGenerator::startMemberSections()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "<table border=0 cellpadding=0 cellspacing=1>" << endl;
}
......@@ -460,7 +464,7 @@ void HtmlGenerator::startMemberSections()
void HtmlGenerator::endMemberSections()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "</table>" << endl;
}
......@@ -468,7 +472,7 @@ void HtmlGenerator::endMemberSections()
void HtmlGenerator::startMemberHeader()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "<tr><td colspan=2><br><h2>";
}
......@@ -480,7 +484,7 @@ void HtmlGenerator::startMemberHeader()
void HtmlGenerator::endMemberHeader()
{
if (htmlAlignMemberFlag)
if (Config::htmlAlignMemberFlag)
{
t << "</h2></td></tr>" << endl;
}
......@@ -490,3 +494,13 @@ void HtmlGenerator::endMemberHeader()
}
}
void HtmlGenerator::startMemberSubtitle()
{
if (Config::htmlAlignMemberFlag) t << "<tr><td colspan=2>";
}
void HtmlGenerator::endMemberSubtitle()
{
if (Config::htmlAlignMemberFlag) t << "<br><br></td></tr>" << endl;
}
......@@ -17,6 +17,7 @@
#ifndef HTMLGEN_H
#define HTMLGEN_H
#include "qtbc.h"
#include "outputgen.h"
class QFile;
......@@ -85,6 +86,8 @@ class HtmlGenerator : public OutputGenerator
void endMemberSections();
void startMemberHeader();
void endMemberHeader();
void startMemberSubtitle();
void endMemberSubtitle();
void startMemberList();
void endMemberList();
void startMemberItem();
......@@ -169,9 +172,9 @@ class HtmlGenerator : public OutputGenerator
//static void docifyStatic(QTextStream &t,const char *str);
private:
QString header;
QString footer;
QString lastTitle;
QCString header;
QCString footer;
QCString lastTitle;
HtmlGenerator &operator=(const HtmlGenerator &g);
HtmlGenerator(const HtmlGenerator &g);
......
......@@ -15,10 +15,10 @@
*
*/
#include "qtbc.h"
#include "image.h"
#include "gifenc.h"
#include <qglobal.h>
#include <qstring.h>
const int charSetWidth=80;
const int charHeight=12;
......@@ -140,111 +140,6 @@ unsigned char fontRaw[charSetWidth*charHeight] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xac, 0x00, 0x00
};
#if 0
const int charSetWidth=68;
const int charHeight=12;
const int numChars=80;
unsigned short charPos[numChars] =
{ 0, 7, 14, 21, 28, 35, 42, 49,
56, 63, 70, 73, 76, 83, 90, 97,
104,116,125,133,142,151,159,167,
176,185,188,195,203,210,221,230,
240,248,258,266,274,281,289,298,
309,318,327,336,339,343,346,352,
359,362,369,376,383,390,397,401,
407,414,417,420,426,429,438,445,
452,459,465,470,476,479,486,493,
502,508,515,521,525,528,532,539
};
unsigned char charWidth[numChars] =
{
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 3, 3, 7, 7, 7, 7,
12, 9, 8, 9, 9, 8, 8, 9,
9, 3, 7, 8, 7,11, 9,10,
8,10, 8, 8, 7, 8, 9,11,
9, 9, 9, 3, 4, 3, 6, 7,
3, 7, 7, 7, 7, 7, 4, 6,
7, 3, 3, 6, 3, 9, 7, 7,
7, 6, 5, 6, 3, 7, 7, 9,
6, 7, 6, 4, 3, 4, 7, 5
};
unsigned char fontRaw[charSetWidth*charHeight] = {
0x38, 0x20, 0xe1, 0xc0, 0x8f, 0x8e, 0x3e, 0x38, 0x70, 0x00, 0x00, 0x00,
0x1c, 0x0f, 0x80, 0x83, 0xe0, 0xf1, 0xf0, 0xfc, 0xfc, 0x3c, 0x41, 0x20,
0x48, 0x48, 0x10, 0x12, 0x08, 0x78, 0x7c, 0x1e, 0x1f, 0x0f, 0x3f, 0xa1,
0x20, 0x91, 0x12, 0x09, 0x04, 0xfe, 0x71, 0x80, 0x00, 0x80, 0x20, 0x00,
0x08, 0x01, 0x80, 0x81, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xc0, 0x00, 0x44, 0xe1, 0x12, 0x21,
0x88, 0x11, 0x02, 0x44, 0x88, 0x00, 0x00, 0x00, 0x22, 0x30, 0x41, 0x42,
0x11, 0x09, 0x08, 0x80, 0x80, 0x42, 0x41, 0x20, 0x48, 0x88, 0x18, 0x33,
0x08, 0x84, 0x42, 0x21, 0x10, 0x90, 0x84, 0x21, 0x20, 0x91, 0x11, 0x11,
0x04, 0x02, 0x50, 0x88, 0x01, 0x00, 0x20, 0x00, 0x08, 0x02, 0x00, 0x80,
0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x22, 0x20, 0x00, 0x44, 0x20, 0x10, 0x22, 0x88, 0x10, 0x04, 0x44,
0x88, 0x00, 0x00, 0x00, 0x22, 0x26, 0xa1, 0x42, 0x12, 0x01, 0x04, 0x80,
0x80, 0x80, 0x41, 0x20, 0x49, 0x08, 0x18, 0x32, 0x89, 0x02, 0x42, 0x40,
0x90, 0x90, 0x04, 0x21, 0x11, 0x11, 0x11, 0x10, 0x88, 0x04, 0x48, 0x94,
0x01, 0x8e, 0x2c, 0x38, 0x68, 0xe7, 0x34, 0xb1, 0x24, 0x92, 0x91, 0x61,
0xc5, 0x86, 0x94, 0xce, 0x89, 0x14, 0x46, 0x14, 0x4f, 0x22, 0x20, 0x00,
0x44, 0x20, 0x20, 0xc2, 0x8f, 0x16, 0x04, 0x38, 0x89, 0x20, 0xc0, 0x18,
0x04, 0x49, 0x22, 0x22, 0x12, 0x01, 0x04, 0x80, 0x80, 0x80, 0x41, 0x20,
0x4a, 0x08, 0x14, 0x52, 0x89, 0x02, 0x42, 0x40, 0x90, 0x8c, 0x04, 0x21,
0x11, 0x09, 0x20, 0xa0, 0x88, 0x08, 0x48, 0xa2, 0x00, 0x11, 0x32, 0x44,
0x99, 0x12, 0x4c, 0xc9, 0x25, 0x13, 0x69, 0x92, 0x26, 0x49, 0x99, 0x24,
0x89, 0x14, 0x45, 0x24, 0x41, 0x22, 0x20, 0x00, 0x44, 0x20, 0x40, 0x24,
0x80, 0x99, 0x08, 0x44, 0x78, 0x03, 0x0f, 0x86, 0x04, 0x51, 0x22, 0x23,
0xe2, 0x01, 0x04, 0xfc, 0xf8, 0x8e, 0x7f, 0x20, 0x4e, 0x08, 0x14, 0x52,
0x49, 0x02, 0x7c, 0x40, 0x9f, 0x03, 0x04, 0x21, 0x11, 0x0a, 0xa0, 0x40,
0x50, 0x10, 0x44, 0x80, 0x00, 0x01, 0x22, 0x40, 0x89, 0x12, 0x44, 0x89,
0x26, 0x12, 0x49, 0x12, 0x24, 0x48, 0x91, 0x04, 0x89, 0x12, 0x48, 0xc4,
0x42, 0x22, 0x26, 0x40, 0x44, 0x20, 0x80, 0x28, 0x80, 0x91, 0x08, 0x44,
0x08, 0x0c, 0x00, 0x01, 0x88, 0x51, 0x23, 0xe2, 0x12, 0x01, 0x04, 0x80,
0x80, 0x82, 0x41, 0x20, 0x49, 0x08, 0x12, 0x92, 0x29, 0x02, 0x40, 0x44,
0x91, 0x00, 0x84, 0x21, 0x0a, 0x0a, 0xa0, 0xa0, 0x20, 0x20, 0x44, 0x80,
0x00, 0x0f, 0x22, 0x40, 0x89, 0xf2, 0x44, 0x89, 0x26, 0x12, 0x49, 0x12,
0x24, 0x48, 0x90, 0xc4, 0x88, 0xa2, 0x48, 0xc4, 0x84, 0x42, 0x19, 0x80,
0x44, 0x21, 0x02, 0x2f, 0xc8, 0x91, 0x08, 0x44, 0x08, 0x03, 0x0f, 0x86,
0x08, 0x53, 0x44, 0x12, 0x12, 0x01, 0x04, 0x80, 0x80, 0x82, 0x41, 0x24,
0x48, 0x88, 0x12, 0x92, 0x29, 0x02, 0x40, 0x42, 0x90, 0x90, 0x84, 0x21,
0x0a, 0x04, 0x41, 0x10, 0x20, 0x40, 0x44, 0x80, 0x00, 0x11, 0x22, 0x40,
0x89, 0x02, 0x44, 0x89, 0x25, 0x12, 0x49, 0x12, 0x24, 0x48, 0x90, 0x24,
0x88, 0xa2, 0xa9, 0x22, 0x84, 0x22, 0x20, 0x00, 0x44, 0x21, 0x02, 0x20,
0x88, 0x91, 0x10, 0x44, 0x88, 0x00, 0xc0, 0x18, 0x00, 0x4d, 0x84, 0x12,
0x11, 0x09, 0x08, 0x80, 0x80, 0x46, 0x41, 0x24, 0x48, 0x48, 0x11, 0x12,
0x18, 0x84, 0x40, 0x21, 0x10, 0x90, 0x84, 0x21, 0x04, 0x04, 0x41, 0x10,
0x20, 0x80, 0x42, 0x80, 0x00, 0x11, 0x32, 0x44, 0x99, 0x12, 0x4c, 0x89,
0x24, 0x92, 0x49, 0x12, 0x26, 0x49, 0x91, 0x24, 0x98, 0x41, 0x12, 0x12,
0x88, 0x22, 0x20, 0x00, 0x38, 0x21, 0xf1, 0xc0, 0x87, 0x0e, 0x10, 0x38,
0x71, 0x20, 0x00, 0x00, 0x08, 0x20, 0x04, 0x13, 0xe0, 0xf1, 0xf0, 0xfc,
0x80, 0x3a, 0x41, 0x23, 0x88, 0x2f, 0x91, 0x12, 0x08, 0x78, 0x40, 0x1e,
0x90, 0x8f, 0x04, 0x1e, 0x04, 0x04, 0x42, 0x08, 0x20, 0xfe, 0x42, 0x80,
0x00, 0x0e, 0xac, 0x38, 0x68, 0xe2, 0x34, 0x89, 0x24, 0x52, 0x49, 0x11,
0xc5, 0x86, 0x90, 0xc6, 0x68, 0x41, 0x12, 0x11, 0x0f, 0x22, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x80, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00,
0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00,
0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1a, 0xc0, 0x00
};
#endif
static Color palette[] =
{
{ 0xff, 0xff, 0xff },
......
This diff is collapsed.
......@@ -17,8 +17,9 @@
#ifndef INDEX_H
#define INDEX_H
#include "qtbc.h"
#include <qfile.h>
#include <qtstream.h>
//#include <qtstream.h>
enum IndexSections
{
......
......@@ -16,7 +16,8 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <qstring.h>
#include "qtbc.h"
#include <qfile.h>
#include <qfileinf.h>
#include <qtstream.h>
......@@ -28,19 +29,19 @@
void writeInstallScript()
{
QString fileName=htmlOutputDir+"/installdox";
QCString fileName=Config::htmlOutputDir+"/installdox";
QFile f(fileName);
if (f.open(IO_WriteOnly))
{
QTextStream t(&f);
t << "#!" << perlPath << endl << endl << "%subst = ( ";
t << "#!" << Config::perlPath << endl << endl << "%subst = ( ";
char *s=tagFileList.first();
char *s=Config::tagFileList.first();
while (s)
{
QFileInfo fi(s);
t << "\"" << fi.fileName() << "\", \"\"";
s=tagFileList.next();
s=Config::tagFileList.next();
if (s) t << ", ";
}
......
......@@ -20,7 +20,9 @@
#include "translator_cz.h"
#include "translator_fr.h"
#include "translator_it.h"
#include <qstring.h>
#include "translator_de.h"
#include "translator_jp.h"
#include "translator_es.h"
#define L_EQUAL(a) !stricmp(langName,a)
......@@ -52,6 +54,18 @@ bool setTranslator(const char *langName)
{
theTranslator=new TranslatorItalian;
}
else if (L_EQUAL("german"))
{
theTranslator=new TranslatorGerman;
}
else if (L_EQUAL("japanese"))
{
theTranslator=new TranslatorJapanese;
}
else if (L_EQUAL("spanish"))
{
theTranslator=new TranslatorSpanish;
}
else // use the default language (i.e. english)
{
theTranslator=new Translator;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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