summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2002-02-18 21:34:02 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2002-02-18 21:34:02 (GMT)
commit9793ce49f1d7641854ef0608b34c1dd2d4891a20 (patch)
tree714079396631ac6488c45cce3d6acfb51e31f9a8
parentb698431e32befbc1d4e2196dc96b0507ed8ab15a (diff)
downloadDoxygen-9793ce49f1d7641854ef0608b34c1dd2d4891a20.zip
Doxygen-9793ce49f1d7641854ef0608b34c1dd2d4891a20.tar.gz
Doxygen-9793ce49f1d7641854ef0608b34c1dd2d4891a20.tar.bz2
Release-1.2.14
-rw-r--r--Doxyfile7
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--addon/doxmlparser/Doxyfile2
-rw-r--r--addon/doxmlparser/include/doxmlintf.h5
-rw-r--r--addon/doxmlparser/src/dochandler.cpp5
-rw-r--r--addon/doxmlparser/src/dochandler.h18
-rw-r--r--addon/doxmlparser/src/doxmlintf.h5
-rw-r--r--addon/doxmlparser/test/main.cpp20
-rw-r--r--addon/doxywizard/Makefile.in11
-rw-r--r--addon/doxywizard/doxywizard.cpp2
-rw-r--r--doc/config.doc8
-rw-r--r--doc/install.doc2
-rw-r--r--doc/language.doc6
-rw-r--r--doc/starting.doc11
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/classdef.cpp8
-rw-r--r--src/config.l25
-rw-r--r--src/doc.l5
-rw-r--r--src/dot.cpp103
-rw-r--r--src/dot.h2
-rw-r--r--src/doxygen.cpp13
-rw-r--r--src/htmlgen.cpp12
-rw-r--r--src/logos.cpp4
-rw-r--r--src/memberdef.cpp18
-rw-r--r--src/memberdef.h2
-rw-r--r--src/memberlist.cpp2
-rw-r--r--src/rtfgen.cpp10
-rw-r--r--src/scanner.l5
-rw-r--r--src/translator_de.h43
-rw-r--r--src/xmlgen.cpp45
32 files changed, 283 insertions, 128 deletions
diff --git a/Doxyfile b/Doxyfile
index 376d7dd..2ccb03d 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -95,7 +95,7 @@ IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
-GENERATE_HTML = NO
+GENERATE_HTML = YES
HTML_OUTPUT =
HTML_HEADER =
HTML_FOOTER =
@@ -140,7 +140,7 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
-GENERATE_XML = YES
+GENERATE_XML = NO
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
@@ -168,7 +168,7 @@ PERL_PATH = /usr/bin/perl
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
-HAVE_DOT = NO
+HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
TEMPLATE_RELATIONS = YES
@@ -176,6 +176,7 @@ HIDE_UNDOC_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
+DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
diff --git a/INSTALL b/INSTALL
index 6c438c0..665e47b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
-DOXYGEN Version 1.2.13-20020210
+DOXYGEN Version 1.2.14
Please read the installation section of the manual for instructions.
--------
-Dimitri van Heesch (10 February 2002)
+Dimitri van Heesch (17 February 2002)
diff --git a/README b/README
index cc5d917..f18c518 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.2.13_20020210
+DOXYGEN Version 1.2.14
Please read INSTALL for compilation instructions.
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (10 February 2002)
+Dimitri van Heesch (dimitri@stack.nl) (17 February 2002)
diff --git a/VERSION b/VERSION
index f5f6eed..fd9d1a5 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.13-20020210
+1.2.14
diff --git a/addon/doxmlparser/Doxyfile b/addon/doxmlparser/Doxyfile
index 50d205a..faf4bee 100644
--- a/addon/doxmlparser/Doxyfile
+++ b/addon/doxmlparser/Doxyfile
@@ -151,7 +151,7 @@ PERL_PATH =
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
-HAVE_DOT = YES
+HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
TEMPLATE_RELATIONS = YES
diff --git a/addon/doxmlparser/include/doxmlintf.h b/addon/doxmlparser/include/doxmlintf.h
index 0ca2cc8..03a8b3a 100644
--- a/addon/doxmlparser/include/doxmlintf.h
+++ b/addon/doxmlparser/include/doxmlintf.h
@@ -249,10 +249,15 @@ class IDocRef : public IDoc
class IDocVariableList : public IDoc
{
+ public:
+ virtual IDocIterator *entries() const = 0;
};
class IDocVariableListEntry : public IDoc
{
+ public:
+ virtual QString term() const = 0;
+ virtual IDocPara *description() const = 0;
};
class IDocHRuler : public IDoc
diff --git a/addon/doxmlparser/src/dochandler.cpp b/addon/doxmlparser/src/dochandler.cpp
index 344e457..12a3a24 100644
--- a/addon/doxmlparser/src/dochandler.cpp
+++ b/addon/doxmlparser/src/dochandler.cpp
@@ -805,6 +805,11 @@ void VariableListHandler::startListItem(const QXmlAttributes& attrib)
m_curEntry->startListItem(attrib);
}
+IDocIterator *VariableListHandler::entries() const
+{
+ return new VariableListIterator(*this);
+}
+
//----------------------------------------------------------------------
// HighlightHandler
//----------------------------------------------------------------------
diff --git a/addon/doxmlparser/src/dochandler.h b/addon/doxmlparser/src/dochandler.h
index 3aaef72..0161576 100644
--- a/addon/doxmlparser/src/dochandler.h
+++ b/addon/doxmlparser/src/dochandler.h
@@ -533,7 +533,8 @@ class SimpleSectHandler : public IDocSimpleSect,
/* \brief Node representing an named item of a VariableList.
*
*/
-class VariableListEntryHandler : public IDocVariableListEntry, public BaseHandler<VariableListEntryHandler>
+class VariableListEntryHandler : public IDocVariableListEntry,
+ public BaseHandler<VariableListEntryHandler>
{
public:
virtual void startVarListEntry(const QXmlAttributes& attrib);
@@ -549,6 +550,8 @@ class VariableListEntryHandler : public IDocVariableListEntry, public BaseHandle
// IDocVariableListEntry
virtual Kind kind() const { return VariableListEntry; }
+ virtual QString term() const { return m_term; }
+ virtual IDocPara *description() const { return m_description; }
private:
IBaseHandler *m_parent;
@@ -562,8 +565,11 @@ class VariableListEntryHandler : public IDocVariableListEntry, public BaseHandle
*
*/
// children: varlistentry, listitem
-class VariableListHandler : public IDocVariableList, public BaseHandler<VariableListHandler>
+class VariableListHandler : public IDocVariableList,
+ public BaseHandler<VariableListHandler>
{
+ friend class VariableListIterator;
+
public:
virtual void startVariableList(const QXmlAttributes& attrib);
virtual void endVariableList();
@@ -575,6 +581,7 @@ class VariableListHandler : public IDocVariableList, public BaseHandler<Variable
// IDocVariableList
virtual Kind kind() const { return VariableList; }
+ virtual IDocIterator *entries() const;
private:
IBaseHandler *m_parent;
@@ -582,6 +589,13 @@ class VariableListHandler : public IDocVariableList, public BaseHandler<Variable
VariableListEntryHandler *m_curEntry;
};
+class VariableListIterator : public BaseIterator<IDocIterator,IDoc,VariableListEntryHandler>
+{
+ public:
+ VariableListIterator(const VariableListHandler &handler) :
+ BaseIterator<IDocIterator,IDoc,VariableListEntryHandler>(handler.m_entries) {}
+};
+
//-----------------------------------------------------------------------------
/*! \brief Node representing a highlighted text fragment.
diff --git a/addon/doxmlparser/src/doxmlintf.h b/addon/doxmlparser/src/doxmlintf.h
index 0ca2cc8..03a8b3a 100644
--- a/addon/doxmlparser/src/doxmlintf.h
+++ b/addon/doxmlparser/src/doxmlintf.h
@@ -249,10 +249,15 @@ class IDocRef : public IDoc
class IDocVariableList : public IDoc
{
+ public:
+ virtual IDocIterator *entries() const = 0;
};
class IDocVariableListEntry : public IDoc
{
+ public:
+ virtual QString term() const = 0;
+ virtual IDocPara *description() const = 0;
};
class IDocHRuler : public IDoc
diff --git a/addon/doxmlparser/test/main.cpp b/addon/doxmlparser/test/main.cpp
index 092c025..c90883e 100644
--- a/addon/doxmlparser/test/main.cpp
+++ b/addon/doxmlparser/test/main.cpp
@@ -116,9 +116,7 @@ void DumpDoc(IDoc *doc)
{
IDocParameterList *list = dynamic_cast<IDocParameterList*>(doc);
printf(" --- parameter list type=%d --- \n",list->listType());
- IDocListItem *li = dynamic_cast<IDocListItem*>(doc);
- ASSERT(li!=0);
- IDocIterator *di = li->contents();
+ IDocIterator *di = list->params();
IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext())
{
@@ -166,14 +164,26 @@ void DumpDoc(IDoc *doc)
break;
case IDoc::VariableList:
{
- IDocVariableList *vl = dynamic_cast<IDocVariableList*>(vl);
+ printf(" --- start variablelist --- \n");
+ IDocVariableList *vl = dynamic_cast<IDocVariableList*>(doc);
ASSERT(vl!=0);
+ IDocIterator *di = vl->entries();
+ IDoc *pdoc;
+ for (di->toFirst();(pdoc=di->current());di->toNext())
+ {
+ DumpDoc(pdoc);
+ }
+ di->release();
+ printf(" --- end variablelist --- \n");
}
break;
case IDoc::VariableListEntry:
{
- IDocVariableListEntry *vle = dynamic_cast<IDocVariableListEntry*>(vle);
+ IDocVariableListEntry *vle = dynamic_cast<IDocVariableListEntry*>(doc);
ASSERT(vle!=0);
+ printf(" --- start variablelistentry term=%s --- \n",vle->term().data());
+ DumpDoc(vle->description());
+ printf(" --- end variablelistentry --- \n");
}
break;
case IDoc::HRuler:
diff --git a/addon/doxywizard/Makefile.in b/addon/doxywizard/Makefile.in
index c382681..3dc316f 100644
--- a/addon/doxywizard/Makefile.in
+++ b/addon/doxywizard/Makefile.in
@@ -10,15 +10,18 @@
# See the GNU General Public License for more details.
#
-all: config.h config.l Makefile.doxywizard
+all: config.h config.l version.cpp Makefile.doxywizard
$(MAKE) -f Makefile.doxywizard $@
-config.h:
+config.h: ../../src/config.h
$(CP) ../../src/config.h config.h
-config.l:
+config.l: ../../src/config.l
$(CP) ../../src/config.l config.l
+version.cpp:
+ $(CP) ../../src/version.cpp version.cpp
+
Makefile.doxywizard: doxywizard.pro
$(ENV) $(PERL) $(TMAKE) doxywizard.pro >Makefile.doxywizard
@@ -30,7 +33,7 @@ clean: Makefile.doxywizard
$(RM) config.cpp
distclean: clean
- $(RM) Makefile.doxywizard config.l config.h
+ $(RM) Makefile.doxywizard config.l config.h version.cpp
install:
$(INSTTOOL) -d $(INSTALL)/bin
diff --git a/addon/doxywizard/doxywizard.cpp b/addon/doxywizard/doxywizard.cpp
index 5fbd5e4..58580b2 100644
--- a/addon/doxywizard/doxywizard.cpp
+++ b/addon/doxywizard/doxywizard.cpp
@@ -313,7 +313,7 @@ void Wizard::about()
"<qt><center>A tool to create and edit configuration files "
"that can be read by doxygen.</center><p>"
"<center>Written by Dimitri van Heesch</center><p>"
- "<center>(c) 2000-2001</center></qt>"
+ "<center>(c) 2000-2002</center></qt>"
);
}
diff --git a/doc/config.doc b/doc/config.doc
index b2f5ebf..8300a84 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -83,6 +83,7 @@ followed by the descriptions of the tags grouped by category.
<li> \refitem cfg_distribute_group_doc DISTRIBUTE_GROUP_DOC
<li> \refitem cfg_doc_abspath DOC_ABSPATH
<li> \refitem cfg_doc_url DOC_URL
+<li> \refitem cfg_dot_image_format DOT_IMAGE_FORMAT
<li> \refitem cfg_dot_path DOT_PATH
<li> \refitem cfg_dotfile_dirs DOTFILE_DIRS
<li> \refitem cfg_enable_preprocessing ENABLE_PREPROCESSING
@@ -1273,6 +1274,13 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
If the \c GRAPHICAL_HIERARCHY and \c HAVE_DOT tags are set to \c YES then
doxygen will graphical hierarchy of all classes instead of a textual one.
+\anchor cfg_dot_image_format
+<dt>\c DOT_IMAGE_FORMAT <dd>
+ \addindex DOT_IMAGE_FORMAT
+ The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+ generated by dot. Possible values are gif, jpg, and png.
+ If left blank gif will be used.
+
\anchor cfg_dot_path
<dt>\c DOT_PATH <dd>
\addindex DOT_PATH
diff --git a/doc/install.doc b/doc/install.doc
index 0f32e75..78a61cf 100644
--- a/doc/install.doc
+++ b/doc/install.doc
@@ -533,9 +533,11 @@ To install doxygen, just copy the binaries from the <code>bin</code> directory
to a location somewhere in the path. Alternatively, you can include
the <code>bin</code> directory of the distribution to the path.
+<!--
For running doxywizard you need to install the non-commercial version of
the Qt library first. This library can be downloaded from
http://www.trolltech.com/products/download/qt-win-noncomm.html
+-->
\subsection build_tools Tools used to develop doxygen
diff --git a/doc/language.doc b/doc/language.doc
index 369bba0..966fc6a 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
-Currently (version 1.2.13-20020203), 25 languages
+Currently (version 1.2.13-20020210), 25 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Chinese, Croatian, Czech, Danish,
Dutch, English, Finnish, French, German,
@@ -108,7 +108,7 @@ when the translator was updated.
<TD>German</TD>
<TD>Jens Seidel<br>Jens Breitenstein</TD>
<TD>jensseidel@NOSPAM.users.sf.net<br>Jens.Breitenstein@NOSPAM.tlc.de</TD>
- <TD>1.2.13</TD>
+ <TD>up-to-date</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Greek</TD>
@@ -230,7 +230,7 @@ when the translator was updated.
\hline
French & Xavier Outhier & {\tt xouthier@yahoo.fr} & up-to-date \\
\hline
- German & Jens Seidel & {\tt jensseidel@users.sf.net} & 1.2.13 \\
+ German & Jens Seidel & {\tt jensseidel@users.sf.net} & up-to-date \\
& Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} & \\
\hline
Greek & Harry Kalogirou & {\tt harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
diff --git a/doc/starting.doc b/doc/starting.doc
index dd68d55..f7578c9 100644
--- a/doc/starting.doc
+++ b/doc/starting.doc
@@ -63,6 +63,12 @@ Makefile. It contains of a number of assignments (tags) of the form:
You can probably leave the values of most tags in a generated template
configuration file to their default value. See section \ref config for
more details about the configuration file.
+
+If you do not like to edit the config file with a text editor, you should
+have a look at \ref doxywizard_usage "doxywizard", which is a GUI
+front-end that can create, read and write doxygen configuration files,
+and allows setting configuration options by entering them via dialogs.
+
For a small project consisting of a few C and/or C++ source
and header files, you can leave
\ref cfg_input "INPUT" tag empty and doxygen will search for sources in
@@ -79,6 +85,9 @@ For recursive parsing of a source tree you must set
the \ref cfg_recursive "RECURSIVE" tag to \c YES. To further fine-tune the
list of files that is parsed the \ref cfg_exclude "EXCLUDE" and
\ref cfg_exclude_patterns "EXCLUDE_PATTERNS" tags can be used.
+To omit all \c test directories from a source tree for instance, one could use:
+\verbatim EXCLUDE_PATTERNS = */test/*
+\endverbatim
If you start using doxygen for an existing project (thus without any
documentation that doxygen is aware of), you can still get an idea of
@@ -94,7 +103,7 @@ a (documented) entity with its definition in the source files. Doxygen will
generate such cross-references if you set
the \ref cfg_source_browser "SOURCE_BROWSER" tag to \c YES.
It can also include the sources directly into the documentation by setting
-\ref cfg_inline_sources "INLINE_SOURCES" to \c YES (this can be handly for
+\ref cfg_inline_sources "INLINE_SOURCES" to \c YES (this can be handy for
code reviews for instance).
\subsection step2 Step 2: Running doxygen
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index e2ed7f0..02ed11e 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,6 +1,6 @@
Summary: A documentation system for C/C++.
Name: doxygen
-Version: 1.2.13_20020210
+Version: 1.2.14
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 396d979..d37ac01 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -1271,17 +1271,11 @@ void ClassDef::writeMemberList(OutputList &ol)
MemberDef *md=mi->memberDef;
ClassDef *cd=md->getClassDef();
Protection prot = mi->prot;
+ Specifier virt=md->virtualness();
//printf("%s: Member %s of class %s md->protection()=%d mi->prot=%d prot=%d inherited=%d\n",
// name().data(),md->name().data(),cd->name().data(),md->protection(),mi->prot,prot,mi->inherited);
- Specifier virt=md->virtualness();
- MemberDef *rmd=md->reimplements();
- while (rmd && virt==Normal)
- {
- virt = rmd->virtualness()==Normal ? Normal : Virtual;
- rmd = rmd->reimplements();
- }
if (cd && !md->name().isEmpty() && md->name()[0]!='@')
{
diff --git a/src/config.l b/src/config.l
index 702f652..14db2c1 100644
--- a/src/config.l
+++ b/src/config.l
@@ -963,6 +963,20 @@ void Config::check()
}
s=aliasList.next();
}
+
+ // check dot image format
+ QCString &dotImageFormat=Config_getEnum("DOT_IMAGE_FORMAT");
+ dotImageFormat=dotImageFormat.stripWhiteSpace();
+ if (dotImageFormat.isEmpty())
+ {
+ dotImageFormat = "gif";
+ }
+ else if (dotImageFormat!="gif" && dotImageFormat!="png" && dotImageFormat!="jpg")
+ {
+ config_err("Invalid value for DOT_IMAGE_FORMAT: `%s'. Using the default.\n",dotImageFormat.data());
+ dotImageFormat = "gif";
+ }
+
// check dot path
QCString &dotPath = Config_getString("DOT_PATH");
@@ -2248,6 +2262,17 @@ void Config::create()
TRUE
);
cb->addDependency("HAVE_DOT");
+ ce = addEnum(
+ "DOT_IMAGE_FORMAT",
+ "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images \n"
+ "generated by dot. Possible values are gif, jpg, and png\n"
+ "If left blank gif will be used. \n",
+ "gif"
+ );
+ ce->addValue("gif");
+ ce->addValue("jpg");
+ ce->addValue("png");
+ ce->addDependency("HAVE_DOT");
cs = addString(
"DOT_PATH",
"The tag DOT_PATH can be used to specify the path where the dot tool can be \n"
diff --git a/src/doc.l b/src/doc.l
index bcef896..24b3b5f 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -727,12 +727,15 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
switch(type)
{
case IT_Html:
+ if (!Config_getBool("GENERATE_HTML")) return result;
outputDir = Config_getString("HTML_OUTPUT");
break;
case IT_Latex:
+ if (!Config_getBool("GENERATE_LATEX")) return result;
outputDir = Config_getString("LATEX_OUTPUT");
break;
case IT_RTF:
+ if (!Config_getBool("GENERATE_RTF")) return result;
outputDir = Config_getString("RTF_OUTPUT");
break;
}
@@ -884,7 +887,7 @@ static void checkArgName(const QCString &name)
return;
}
}
- printf("member type=%d\n",memberDef->memberType());
+ //printf("member type=%d\n",memberDef->memberType());
QCString scope=memberDef->getScopeString();
if (!scope.isEmpty()) scope+="::"; else scope="";
warn(memberDef->docFile(),memberDef->docLine(),
diff --git a/src/dot.cpp b/src/dot.cpp
index af77df0..3c8360d 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -336,7 +336,7 @@ void DotNode::writeBox(QTextStream &t,
t << " Node" << m_number << " [shape=\"box\",label=\""
<< convertLabel(m_label)
<< "\",fontsize=10,height=0.2,width=0.4";
- if (format==GIF) t << ",fontname=\"doxfont\"";
+ if (format==BITMAP) t << ",fontname=\"Helvetica\"";
t << ",color=\"" << labCol << "\"";
if (m_isRoot)
{
@@ -369,7 +369,7 @@ void DotNode::writeArrow(QTextStream &t,
{
t << ",label=\"" << ei->m_label << "\"";
}
- if (format==GIF) t << ",fontname=\"doxfont\"";
+ if (format==BITMAP) t << ",fontname=\"Helvetica\"";
t << "];" << endl;
}
@@ -687,10 +687,11 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
for (dnli.toFirst();(n=dnli.current());++dnli)
{
QCString baseName;
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
baseName.sprintf("inherit_graph_%d",count++);
baseName = convertNameToFile(baseName);
QCString dotName=baseName+".dot";
- QCString gifName=baseName+".gif";
+ QCString imgName=baseName+"."+ imgExt;
QCString mapName=baseName+".map";
QFile f(dotName);
@@ -703,14 +704,15 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
DotNode *node;
for (;(node=dnli2.current());++dnli2)
{
- if (node->m_subgraphId==n->m_subgraphId) node->write(t,GIF,FALSE,TRUE);
+ if (node->m_subgraphId==n->m_subgraphId) node->write(t,BITMAP,FALSE,TRUE);
}
t << "}" << endl;
f.close();
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif \"%s\" -o \"%s\"",dotName.data(),gifName.data());
- //printf("Running: dot -Tgif %s -o %s\n",dotName.data(),gifName.data());
+ dotArgs.sprintf("-T%s \"%s\" -o \"%s\"",
+ imgExt.data(), dotName.data(),imgName.data());
+ //printf("Running: dot -T%s %s -o %s\n",imgExt.data(),dotName.data(),imgName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -726,7 +728,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
return;
}
QCString mapLabel = convertNameToFile(n->m_label);
- out << "<tr><td><img src=\"" << gifName << "\" border=\"0\" usemap=\"#"
+ out << "<tr><td><img src=\"" << imgName << "\" border=\"0\" usemap=\"#"
<< mapLabel << "_map\"></td></tr>" << endl;
out << "<map name=\"" << mapLabel << "_map\">" << endl;
convertMapFile(out,mapName);
@@ -1294,11 +1296,12 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
findMaximalDotGraph(m_startNode,m_maxDistance,baseName,
thisDir,format,!isTBRank,m_graphType==Inheritance);
- if (format==GIF) // run dot to create a .gif image
+ if (format==BITMAP) // run dot to create a bitmap image
{
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif \"%s.dot\" -o \"%s.gif\"",
- baseName.data(),baseName.data());
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"",
+ imgExt.data(),baseName.data(),baseName.data(),imgExt.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Error: Problems running dot. Check your installation!\n");
@@ -1316,7 +1319,8 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
return baseName;
}
QCString mapLabel = convertNameToFile(m_startNode->m_label+"_"+mapName);
- out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
+ out << "<p><center><img src=\"" << baseName << "."
+ << imgExt << "\" border=\"0\" usemap=\"#"
<< mapLabel << "\" alt=\"";
switch (m_graphType)
{
@@ -1520,12 +1524,13 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
findMaximalDotGraph(m_startNode,m_maxDistance,baseName,thisDir,format,
FALSE,FALSE,!m_inverse);
- if (format==GIF)
+ if (format==BITMAP)
{
- // run dot to create a .gif image
+ // run dot to create a bitmap image
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif \"%s.dot\" -o \"%s.gif\"",
- baseName.data(),baseName.data());
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"",
+ imgExt.data(),baseName.data(),baseName.data(),imgExt.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -1545,8 +1550,9 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
return baseName;
}
- out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
- << mapName << "_map\" alt=\"";
+ out << "<p><center><img src=\"" << baseName << "."
+ << imgExt << "\" border=\"0\" usemap=\"#"
+ << mapName << "_map\" alt=\"";
if (m_inverse) out << "Included by dependency graph"; else out << "Include dependency graph";
out << "\">";
out << "</center>" << endl;
@@ -1633,43 +1639,25 @@ void generateGraphLegend(const char *path)
return;
}
QTextStream dotText(&dotFile);
-#if 0
- dotText << "digraph inheritance\n";
- dotText << "{\n";
- dotText << " Node7 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
- dotText << " Node8 -> Node7 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node8 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_publicbase" << htmlFileExtension << "\"];\n";
- dotText << " Node9 -> Node8 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node9 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"red\",URL=\"$class_truncated" << htmlFileExtension << "\"];\n";
- dotText << " Node11 -> Node7 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node11 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_protectedbase" << htmlFileExtension << "\"];\n";
- dotText << " Node12 -> Node7 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node12 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_privatebase" << htmlFileExtension << "\"];\n";
- dotText << " Node13 -> Node7 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node13 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"grey75\"];\n";
- dotText << " Node14 -> Node7 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"doxfont\"];\n";
- dotText << " Node14 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_used" << htmlFileExtension << "\"];\n";
- dotText << "}\n";
-#endif
dotText << "digraph inheritance\n";
dotText << "{\n";
- dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
- dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n";
- dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n";
- dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n";
- dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n";
- dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"grey75\"];\n";
- dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
- dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"doxfont\"];\n";
- dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
- dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"doxfont\"];\n";
- dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n";
+ dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
+ dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n";
+ dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n";
+ dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n";
+ dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n";
+ dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"grey75\"];\n";
+ dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
+ dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"Helvetica\"];\n";
+ dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
+ dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"Helvetica\"];\n";
+ dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n";
dotText << "}\n";
dotFile.close();
@@ -1683,9 +1671,10 @@ void generateGraphLegend(const char *path)
// go to the html output directory (i.e. path)
QDir::setCurrent(d.absPath());
- // run dot to generate the a .gif image from the graph
+ // run dot to generate the a bitmap image from the graph
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif graph_legend.dot -o graph_legend.gif");
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ dotArgs.sprintf("-T%s graph_legend.dot -o graph_legend.%s",imgExt.data(),imgExt.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -1700,9 +1689,11 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile,
GraphOutputFormat format)
{
QCString dotArgs(4096);
- if (format==GIF)
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ if (format==BITMAP)
{
- dotArgs.sprintf("-Tgif \"%s\" -o \"%s.gif\"",inFile,outFile);
+ dotArgs.sprintf("-T%s \"%s\" -o \"%s.%s\"",imgExt.data(),
+ inFile,outFile,imgExt.data());
}
else // format==EPS
{
diff --git a/src/dot.h b/src/dot.h
index 59d5caa..9096584 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -27,7 +27,7 @@ class QTextStream;
class DotNodeList;
class ClassSDict;
-enum GraphOutputFormat { GIF , EPS };
+enum GraphOutputFormat { BITMAP , EPS };
struct EdgeInfo
{
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index dd39762..1168e25 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * $Id$
+ *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
@@ -1294,9 +1294,14 @@ static MemberDef *addVariableToFile(
MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
{
- if ((nd==0 && md->getFileDef() &&
- root->fileName==md->getFileDef()->absFilePath())
- || (nd!=0 && md->getNamespaceDef()==nd))
+ if (
+ ((nd==0 && md->getFileDef() &&
+ root->fileName==md->getFileDef()->absFilePath()
+ )
+ || (nd!=0 && md->getNamespaceDef()==nd)
+ )
+ && !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables
+ )
// variable already in the scope
{
addMemberDocs(root,md,def,0,FALSE);
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 35002c5..747902d 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -755,8 +755,6 @@ void HtmlGenerator::startMemberDescription()
DBG_HTML(t << "<!-- startMemberDescription -->" << endl)
if (Config_getBool("HTML_ALIGN_MEMBERS"))
{
- //t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>"
- // "<td></td><td><font size=-1><em>";
t << "<tr><td>&nbsp;</td><td><font size=-1><em>";
}
else
@@ -922,9 +920,11 @@ void HtmlGenerator::startDotFile(const char *name,bool hasCaption)
"/"
#endif
+baseName;
- writeDotGraphFromFile(name,outName,GIF);
+ writeDotGraphFromFile(name,outName,BITMAP);
t << "<div align=\"center\">" << endl;
- t << "<img src=\"" << baseName << ".gif\" alt=\"" << baseName << "\">" << endl;
+ t << "<img src=\"" << baseName << "."
+ << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\""
+ << baseName << "\">" << endl;
if (hasCaption)
{
t << "<p><strong>";
@@ -1068,7 +1068,7 @@ void HtmlGenerator::startDotGraph()
void HtmlGenerator::endDotGraph(DotClassGraph &g)
{
- g.writeGraph(t,GIF,Config_getString("HTML_OUTPUT"));
+ g.writeGraph(t,BITMAP,Config_getString("HTML_OUTPUT"));
}
void HtmlGenerator::startInclDepGraph()
@@ -1077,7 +1077,7 @@ void HtmlGenerator::startInclDepGraph()
void HtmlGenerator::endInclDepGraph(DotInclDepGraph &g)
{
- g.writeGraph(t,GIF,Config_getString("HTML_OUTPUT"));
+ g.writeGraph(t,BITMAP,Config_getString("HTML_OUTPUT"));
}
void HtmlGenerator::writeGraphicalHierarchy(DotGfxHierarchyTable &g)
diff --git a/src/logos.cpp b/src/logos.cpp
index 293f1bd..56ae8bd 100644
--- a/src/logos.cpp
+++ b/src/logos.cpp
@@ -3180,7 +3180,7 @@ void writeSearchButton(const char *dir)
void writeDoxFont(const char *dir)
{
- QCString fileName=(QCString)dir+"/doxfont.ttf";
+ QCString fileName=(QCString)dir+"/Helvetica.ttf";
QFile f(fileName);
if (f.open(IO_WriteOnly))
f.writeBlock((char *)doxfont_data,doxfont_len);
@@ -3194,5 +3194,5 @@ void writeDoxFont(const char *dir)
void removeDoxFont(const char *dir)
{
QDir d(dir);
- d.remove("doxfont.ttf");
+ d.remove("Helvetica.ttf");
}
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 303d8f3..69bcf9f 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1114,12 +1114,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
}
Specifier lvirt=virtualness();
- MemberDef *rmd=reimplements();
- while (rmd && lvirt==Normal)
- {
- lvirt = rmd->virtualness()==Normal ? Normal : Virtual;
- rmd = rmd->reimplements();
- }
if (protection()!=Public || lvirt!=Normal ||
isFriend() || isRelated() || isExplicit() ||
@@ -1725,3 +1719,15 @@ void MemberDef::setSectionList(Definition *d, MemberList *sl)
classSectionSDict->append((int)d,sl);
}
+Specifier MemberDef::virtualness() const
+{
+ Specifier v = virt;
+ MemberDef *rmd = reimplements();
+ while (rmd && v==Normal)
+ {
+ v = rmd->virtualness()==Normal ? Normal : Virtual;
+ rmd = rmd->reimplements();
+ }
+ return v;
+}
+
diff --git a/src/memberdef.h b/src/memberdef.h
index acbcb8c..78818b9 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -99,7 +99,7 @@ class MemberDef : public Definition
// direct kind info
Protection protection() const { return prot; }
- Specifier virtualness() const { return virt; }
+ Specifier virtualness() const;
MemberType memberType() const { return mtype; }
// convenience methods
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index 228232e..ffc5631 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -449,7 +449,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{
//printf("Member group has docs!\n");
ol.startMemberGroupDocs();
- parseDoc(ol,"<generated>",1,0,0,mg->documentation());
+ parseDoc(ol,"<generated>",1,0,0,mg->documentation()+"\n");
ol.endMemberGroupDocs();
}
ol.startMemberGroup();
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index bd09fc6..d83711a 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2275,7 +2275,7 @@ void RTFGenerator::startDotFile(const char *name,bool)
"/"
#endif
+baseName;
- writeDotGraphFromFile(name,outName,GIF);
+ writeDotGraphFromFile(name,outName,BITMAP);
newParagraph();
t << "{" << endl;
t << Rtf_Style_Reset << endl;
@@ -2631,13 +2631,13 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
newParagraph();
QCString fileName =
- g.writeGraph(t,GIF,Config_getString("RTF_OUTPUT"),TRUE,FALSE);
+ g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),TRUE,FALSE);
// display the file
t << "{" << endl;
t << Rtf_Style_Reset << endl;
t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
- t << fileName << ".gif";
+ t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl;
}
@@ -2650,13 +2650,13 @@ void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
{
newParagraph();
- QCString fileName = g.writeGraph(t,GIF,Config_getString("RTF_OUTPUT"),FALSE);
+ QCString fileName = g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),FALSE);
// display the file
t << "{" << endl;
t << Rtf_Style_Reset << endl;
t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
- t << fileName << ".gif";
+ t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl;
}
diff --git a/src/scanner.l b/src/scanner.l
index b644c96..e3ca3da 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -2090,6 +2090,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN( CopyArgComment );
}
}
+<CopyArgComment>^{B}*"*"+/{BN}+
<CopyArgComment>[^\n\*]+ { fullArgString+=yytext; }
<CopyArgComment>"*/" { fullArgString+=yytext;
if (lastCopyArgChar!=0)
@@ -3445,7 +3446,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<SkipCode>"//" {
*pSkipDoc+=yytext;
}
-<SkipCode>"/*" {
+<SkipCode>"/*"|"*/" {
*pSkipDoc+=yytext;
}
<SkipCode>[^ \<\*\t\/\\\n]+ {
@@ -3571,7 +3572,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(lastFormulaContext);
}
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
-<ExampleDoc,PageDoc,ClassDocBrief,SkipCode,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
+<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs();
//printf("current->section=%x\n",current->section);
if (YY_START==SkipCode) // premature end of code block
diff --git a/src/translator_de.h b/src/translator_de.h
index 082ac9d..7eaf6c0 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -58,15 +58,17 @@
// - trCompoundReference(), trLegendDocs() updated
// - Removed some TODO's
//
+// 2002/02/13 Oliver Brandt (o.brandt@tu-bs.de)
+// - Updated for "new since 1.2.13" version
+// - Removed some TODO's
+//
// Todo:
-// - translation of all Config_getBool("OPTIMIZE_OUTPUT_FOR_C")
-// strings (see translator_en.h)
// - see FIXME
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
-class TranslatorGerman : public TranslatorAdapter_1_2_13
+class TranslatorGerman : public Translator
{
public:
@@ -123,7 +125,9 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
/* header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
- { return "Dokumentation der Datenelemente"; }
+ { /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
+ return "Dokumentation der Datenelemente";
+ }
/* this is the text of a link put after brief descriptions. */
virtual QCString trMore()
@@ -215,6 +219,7 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
/* This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
+ /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
{ return "Datei-Elemente"; }
/* This is put above each page as a link to all related pages. */
@@ -340,11 +345,9 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
* annotated compound index.
*/
virtual QCString trCompoundIndex()
+ /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
{
- if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- return "Datenstruktur-Verzeichnis";
- else
- return "Datenstruktur-Verzeichnis";
+ return "Datenstruktur-Verzeichnis";
}
/* This is used in LaTeX as the title of the chapter with the
@@ -1341,7 +1344,7 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global")); // FIXME
- if (!singular) result+="s";
+ if (!singular) result+="";
return result;
}
@@ -1368,7 +1371,27 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
virtual QCString trReferences()
{
return "Benutzt";
- }
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.13
+//////////////////////////////////////////////////////////////////////////
+ /* used in member documentation blocks to produce a list of
+ * members that are implemented by this one.
+ */
+ virtual QCString trImplementedFromList(int numEntries)
+ {
+ return "Implementiert " + trWriteList(numEntries) + ".";
+ }
+
+ /* used in member documentation blocks to produce a list of
+ * all members that implement this abstract member.
+ */
+ virtual QCString trImplementedInList(int numEntries)
+ {
+ return "Implementiert in " + trWriteList(numEntries) + ".";
+ }
+
};
#endif
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 5a4a9d3..9273f63 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1309,6 +1309,50 @@ static void writeTemplateLists(Definition *d,QTextStream &t)
}
}
+static void writeListOfAllMember(ClassDef *cd,QTextStream &t)
+{
+ t << " <listofallmembers>" << endl;
+ MemberNameInfoSDict::Iterator mnii(*cd->memberNameInfoSDict());
+ MemberNameInfo *mni;
+ for (mnii.toFirst();(mni=mnii.current());++mnii)
+ {
+ MemberNameInfoIterator mii(*mni);
+ MemberInfo *mi;
+ for (mii.toFirst();(mi=mii.current());++mii)
+ {
+ MemberDef *md=mi->memberDef;
+ ClassDef *cd=md->getClassDef();
+ Definition *d=md->getGroupDef();
+ if (d==0) d = cd;
+ Protection prot = mi->prot;
+ Specifier virt=md->virtualness();
+ t << " <member refid=\"" << d->getOutputFileBase() << "_" <<
+ md->anchor() << "\" prot=\"";
+ switch (prot)
+ {
+ case Public: t << "public"; break;
+ case Protected: t << "protected"; break;
+ case Private: t << "private"; break;
+ }
+ t << "\" virt=\"";
+ switch(virt)
+ {
+ case Normal: t << "non-virtual"; break;
+ case Virtual: t << "virtual"; break;
+ case Pure: t << "pure-virtual"; break;
+ }
+ t << "\"";
+ if (!mi->ambiguityResolutionScope.isEmpty())
+ {
+ t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\"";
+ }
+ t << "><scope>" << cd->name() << "</scope><name>" <<
+ md->name() << "</name></member>" << endl;
+ }
+ }
+ t << " </listofallmembers>" << endl;
+}
+
static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
{
// + brief description
@@ -1415,6 +1459,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
}
}
writeTemplateLists(cd,t);
+ writeListOfAllMember(cd,t);
MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)