summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2001-11-11 19:20:29 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2001-11-11 19:20:29 (GMT)
commit621bb644049ff3957b4b69a02f3d42da89eefad0 (patch)
tree7d80c173dcecb625806ece76ccd2210dca925e13
parent7f95c8f5a256da0fafba27d5188d700e3c118dd1 (diff)
downloadDoxygen-621bb644049ff3957b4b69a02f3d42da89eefad0.zip
Doxygen-621bb644049ff3957b4b69a02f3d42da89eefad0.tar.gz
Doxygen-621bb644049ff3957b4b69a02f3d42da89eefad0.tar.bz2
Release-1.2.11-20011111
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--addon/xmlparse/compoundhandler.cpp12
-rw-r--r--addon/xmlparse/compoundhandler.h3
-rw-r--r--addon/xmlparse/dochandler.cpp287
-rw-r--r--addon/xmlparse/dochandler.h171
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/code.l75
-rw-r--r--src/definition.cpp6
-rw-r--r--src/definition.h2
-rw-r--r--src/doc.l2
-rw-r--r--src/doxygen.cpp27
-rw-r--r--src/filedef.cpp36
-rw-r--r--src/formula.cpp7
-rw-r--r--src/htmlgen.cpp12
-rw-r--r--src/htmlhelp.cpp5
-rw-r--r--src/memberdef.cpp1
-rw-r--r--src/memberdef.h7
-rw-r--r--src/translator_adapter.h42
-rw-r--r--src/translator_cz.h16
-rw-r--r--src/translator_ru.h27
-rw-r--r--src/xmlgen.cpp16
23 files changed, 627 insertions, 139 deletions
diff --git a/INSTALL b/INSTALL
index 77384f2..34cab88 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
-DOXYGEN Version 1.2.11-20011104
+DOXYGEN Version 1.2.11-20011111
Please read the installation section of the manual for instructions.
--------
-Dimitri van Heesch (04 November 2001)
+Dimitri van Heesch (11 November 2001)
diff --git a/README b/README
index 6764dab..6daabac 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.2.11_20011104
+DOXYGEN Version 1.2.11_20011111
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) (04 November 2001)
+Dimitri van Heesch (dimitri@stack.nl) (11 November 2001)
diff --git a/VERSION b/VERSION
index dd35960..e21db4c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.11-20011104
+1.2.11-20011111
diff --git a/addon/xmlparse/compoundhandler.cpp b/addon/xmlparse/compoundhandler.cpp
index 9763e9d..0b22ef2 100644
--- a/addon/xmlparse/compoundhandler.cpp
+++ b/addon/xmlparse/compoundhandler.cpp
@@ -18,7 +18,7 @@
#include "dochandler.h"
CompoundHandler::CompoundHandler(IBaseHandler *parent)
- : m_parent(parent), m_brief(0), m_detailed(0)
+ : m_parent(parent), m_brief(0), m_detailed(0), m_programListing(0)
{
m_superClasses.setAutoDelete(TRUE);
m_subClasses.setAutoDelete(TRUE);
@@ -43,12 +43,15 @@ CompoundHandler::CompoundHandler(IBaseHandler *parent)
addStartHandler("location",this,&CompoundHandler::startLocation);
addEndHandler("location");
+
+ addStartHandler("programlisting",this,&CompoundHandler::startProgramListing);
}
CompoundHandler::~CompoundHandler()
{
delete m_brief;
delete m_detailed;
+ delete m_programListing;
}
void CompoundHandler::startSection(const QXmlAttributes& attrib)
@@ -72,6 +75,13 @@ void CompoundHandler::startDetailedDesc(const QXmlAttributes& attrib)
m_detailed = docHandler;
}
+void CompoundHandler::startProgramListing(const QXmlAttributes& attrib)
+{
+ ProgramListingHandler *plHandler = new ProgramListingHandler(this);
+ plHandler->startProgramListing(attrib);
+ m_programListing = plHandler;
+}
+
void CompoundHandler::startCompound(const QXmlAttributes& attrib)
{
m_parent->setDelegate(this);
diff --git a/addon/xmlparse/compoundhandler.h b/addon/xmlparse/compoundhandler.h
index 420cac6..5191a2f 100644
--- a/addon/xmlparse/compoundhandler.h
+++ b/addon/xmlparse/compoundhandler.h
@@ -24,6 +24,7 @@
#include "doxmlintf.h"
class DocHandler;
+class ProgramListingHandler;
class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
{
@@ -37,6 +38,7 @@ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
virtual void startBriefDesc(const QXmlAttributes& attrib);
virtual void startDetailedDesc(const QXmlAttributes& attrib);
virtual void startLocation(const QXmlAttributes& attrib);
+ virtual void startProgramListing(const QXmlAttributes& attrib);
CompoundHandler(IBaseHandler *parent);
virtual ~CompoundHandler();
@@ -72,6 +74,7 @@ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
IBaseHandler *m_parent;
DocHandler *m_brief;
DocHandler *m_detailed;
+ ProgramListingHandler *m_programListing;
QString m_id;
QString m_kind;
QString m_name;
diff --git a/addon/xmlparse/dochandler.cpp b/addon/xmlparse/dochandler.cpp
index 53a300a..5dff81a 100644
--- a/addon/xmlparse/dochandler.cpp
+++ b/addon/xmlparse/dochandler.cpp
@@ -540,7 +540,7 @@ void RefHandler::endRef()
{
m_linkText = m_curString;
m_parent->setDelegate(0);
- printf("End ref\n");
+ printf("End ref: text=`%s'\n",m_linkText.data());
}
@@ -745,6 +745,83 @@ void VariableListHandler::startListItem(const QXmlAttributes& attrib)
}
//----------------------------------------------------------------------
+// AnchorHandler
+//----------------------------------------------------------------------
+
+AnchorHandler::AnchorHandler(IBaseHandler *parent)
+ : DocNode(Anchor), m_parent(parent)
+{
+ m_children.setAutoDelete(TRUE);
+ addEndHandler("anchor",this,&AnchorHandler::endAnchor);
+ addStartHandler("ref",this,&AnchorHandler::startRef);
+}
+
+AnchorHandler::~AnchorHandler()
+{
+}
+
+void AnchorHandler::startAnchor(const QXmlAttributes& attrib)
+{
+ m_id = attrib.value("id");
+ m_curString="";
+ m_parent->setDelegate(this);
+}
+
+void AnchorHandler::endAnchor()
+{
+ addTextNode();
+ printf("anchor id=`%s'\n",m_id.data());
+ m_parent->setDelegate(0);
+}
+
+void AnchorHandler::startRef(const QXmlAttributes& attrib)
+{
+ addTextNode();
+ RefHandler *rh = new RefHandler(this);
+ m_children.append(rh);
+ rh->startRef(attrib);
+}
+
+void AnchorHandler::addTextNode()
+{
+ if (!m_curString.isEmpty())
+ {
+ m_children.append(new TextNode(m_curString,DocNode::Normal));
+ printf("addTextNode() text=\"%s\"\n",
+ m_curString.data());
+ m_curString="";
+ }
+}
+
+//----------------------------------------------------------------------
+// HighlightHandler
+//----------------------------------------------------------------------
+
+HighlightHandler::HighlightHandler(IBaseHandler *parent)
+ : DocNode(Highlight), m_parent(parent)
+{
+ addEndHandler("highlight",this,&HighlightHandler::endHighlight);
+}
+
+HighlightHandler::~HighlightHandler()
+{
+}
+
+void HighlightHandler::startHighlight(const QXmlAttributes& attrib)
+{
+ m_class = attrib.value("class");
+ m_curString="";
+ m_parent->setDelegate(this);
+}
+
+void HighlightHandler::endHighlight()
+{
+ m_text = m_curString;
+ printf("highlight class=`%s' text=`%s'\n",m_class.data(),m_text.data());
+ m_parent->setDelegate(0);
+}
+
+//----------------------------------------------------------------------
// CodeLineHandler
//----------------------------------------------------------------------
@@ -754,6 +831,9 @@ CodeLineHandler::CodeLineHandler(IBaseHandler *parent)
m_children.setAutoDelete(TRUE);
addEndHandler("codeline",this,&CodeLineHandler::endCodeLine);
addEndHandler("linenumber",this,&CodeLineHandler::endLineNumber);
+ addStartHandler("highlight",this,&CodeLineHandler::startHighlight);
+ addStartHandler("ref",this,&CodeLineHandler::startRef);
+ addStartHandler("anchor",this,&CodeLineHandler::startAnchor);
}
CodeLineHandler::~CodeLineHandler()
@@ -768,6 +848,7 @@ void CodeLineHandler::startCodeLine(const QXmlAttributes& /*attrib*/)
void CodeLineHandler::endCodeLine()
{
+ addTextNode();
printf("end codeline\n");
m_parent->setDelegate(0);
}
@@ -780,10 +861,46 @@ void CodeLineHandler::startLineNumber(const QXmlAttributes& /*attrib*/)
void CodeLineHandler::endLineNumber()
{
+ addTextNode();
printf("end linenumber\n");
m_parent->setDelegate(0);
}
+void CodeLineHandler::startHighlight(const QXmlAttributes& attrib)
+{
+ addTextNode();
+ HighlightHandler *hlh = new HighlightHandler(this);
+ m_children.append(hlh);
+ hlh->startHighlight(attrib);
+}
+
+void CodeLineHandler::startAnchor(const QXmlAttributes& attrib)
+{
+ addTextNode();
+ AnchorHandler *ah = new AnchorHandler(this);
+ m_children.append(ah);
+ ah->startAnchor(attrib);
+}
+
+void CodeLineHandler::startRef(const QXmlAttributes& attrib)
+{
+ addTextNode();
+ RefHandler *rh = new RefHandler(this);
+ m_children.append(rh);
+ rh->startRef(attrib);
+}
+
+void CodeLineHandler::addTextNode()
+{
+ if (!m_curString.isEmpty())
+ {
+ m_children.append(new TextNode(m_curString,DocNode::Normal));
+ printf("addTextNode() text=\"%s\"\n",
+ m_curString.data());
+ m_curString="";
+ }
+}
+
//----------------------------------------------------------------------
// ProgramListingHandler
//----------------------------------------------------------------------
@@ -841,6 +958,142 @@ void ProgramListingHandler::startCodeLine(const QXmlAttributes& attrib)
}
//----------------------------------------------------------------------
+// FormulaHandler
+//----------------------------------------------------------------------
+
+FormulaHandler::FormulaHandler(IBaseHandler *parent)
+ : DocNode(Formula), m_parent(parent)
+{
+ addEndHandler("formula",this,&FormulaHandler::endFormula);
+}
+
+FormulaHandler::~FormulaHandler()
+{
+}
+
+void FormulaHandler::startFormula(const QXmlAttributes& attrib)
+{
+ m_id = attrib.value("id");
+ m_curString="";
+ m_parent->setDelegate(this);
+}
+
+void FormulaHandler::endFormula()
+{
+ m_text = m_curString;
+ printf("formula id=`%s' text=`%s'\n",m_id.data(),m_text.data());
+ m_parent->setDelegate(0);
+}
+
+//----------------------------------------------------------------------
+// ImageHandler
+//----------------------------------------------------------------------
+
+ImageHandler::ImageHandler(IBaseHandler *parent)
+ : DocNode(Image), m_parent(parent)
+{
+ addEndHandler("image",this,&ImageHandler::endImage);
+}
+
+ImageHandler::~ImageHandler()
+{
+}
+
+void ImageHandler::startImage(const QXmlAttributes& attrib)
+{
+ m_name = attrib.value("name");
+ m_curString="";
+ m_parent->setDelegate(this);
+}
+
+void ImageHandler::endImage()
+{
+ m_caption = m_curString;
+ printf("image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data());
+ m_parent->setDelegate(0);
+}
+
+//----------------------------------------------------------------------
+// DotFileHandler
+//----------------------------------------------------------------------
+
+DotFileHandler::DotFileHandler(IBaseHandler *parent)
+ : DocNode(DotFile), m_parent(parent)
+{
+ addEndHandler("image",this,&DotFileHandler::endDotFile);
+}
+
+DotFileHandler::~DotFileHandler()
+{
+}
+
+void DotFileHandler::startDotFile(const QXmlAttributes& attrib)
+{
+ m_name = attrib.value("name");
+ m_curString="";
+ m_parent->setDelegate(this);
+}
+
+void DotFileHandler::endDotFile()
+{
+ m_caption = m_curString;
+ printf("image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data());
+ m_parent->setDelegate(0);
+}
+
+//----------------------------------------------------------------------
+// IndexEntryHandler
+//----------------------------------------------------------------------
+
+IndexEntryHandler::IndexEntryHandler(IBaseHandler *parent)
+ : DocNode(IndexEntry), m_parent(parent)
+{
+ addEndHandler("indexentry",this,&IndexEntryHandler::endIndexEntry);
+ addStartHandler("primaryie",this,&IndexEntryHandler::startPrimaryIE);
+ addEndHandler("primaryie",this,&IndexEntryHandler::endPrimaryIE);
+ addStartHandler("secondaryie",this,&IndexEntryHandler::startSecondaryIE);
+ addEndHandler("secondaryie",this,&IndexEntryHandler::endSecondaryIE);
+}
+
+IndexEntryHandler::~IndexEntryHandler()
+{
+}
+
+void IndexEntryHandler::startIndexEntry(const QXmlAttributes& /*attrib*/)
+{
+ printf("start index entry\n");
+ m_parent->setDelegate(this);
+}
+
+void IndexEntryHandler::endIndexEntry()
+{
+ printf("index entry primary=`%s' secondary=`%s'\n",
+ m_primary.data(),m_secondary.data());
+ m_parent->setDelegate(0);
+}
+
+void IndexEntryHandler::startPrimaryIE(const QXmlAttributes& /*attrib*/)
+{
+ m_curString="";
+}
+
+void IndexEntryHandler::endPrimaryIE()
+{
+ m_primary = m_curString;
+}
+
+void IndexEntryHandler::startSecondaryIE(const QXmlAttributes& /*attrib*/)
+{
+ m_curString="";
+}
+
+void IndexEntryHandler::endSecondaryIE()
+{
+ m_secondary = m_curString;
+}
+
+
+//----------------------------------------------------------------------
// ParagraphHandler
//----------------------------------------------------------------------
@@ -866,6 +1119,10 @@ ParagraphHandler::ParagraphHandler(IBaseHandler *parent)
addStartHandler("email",this,&ParagraphHandler::startEMail);
addStartHandler("link",this,&ParagraphHandler::startLink);
addStartHandler("programlisting",this,&ParagraphHandler::startProgramListing);
+ addStartHandler("formula",this,&ParagraphHandler::startFormula);
+ addStartHandler("image",this,&ParagraphHandler::startImage);
+ addStartHandler("dotfile",this,&ParagraphHandler::startDotFile);
+ addStartHandler("indexentry",this,&ParagraphHandler::startIndexEntry);
}
ParagraphHandler::~ParagraphHandler()
@@ -974,6 +1231,34 @@ void ParagraphHandler::startProgramListing(const QXmlAttributes& attrib)
m_children.append(pl);
}
+void ParagraphHandler::startFormula(const QXmlAttributes& attrib)
+{
+ FormulaHandler *fh = new FormulaHandler(this);
+ fh->startFormula(attrib);
+ m_children.append(fh);
+}
+
+void ParagraphHandler::startImage(const QXmlAttributes& attrib)
+{
+ ImageHandler *ih = new ImageHandler(this);
+ ih->startImage(attrib);
+ m_children.append(ih);
+}
+
+void ParagraphHandler::startDotFile(const QXmlAttributes& attrib)
+{
+ DotFileHandler *df = new DotFileHandler(this);
+ df->startDotFile(attrib);
+ m_children.append(df);
+}
+
+void ParagraphHandler::startIndexEntry(const QXmlAttributes& attrib)
+{
+ IndexEntryHandler *df = new IndexEntryHandler(this);
+ df->startIndexEntry(attrib);
+ m_children.append(df);
+}
+
void ParagraphHandler::addTextNode()
{
if (!m_curString.isEmpty())
diff --git a/addon/xmlparse/dochandler.h b/addon/xmlparse/dochandler.h
index 688fcf7..a5b7b8c 100644
--- a/addon/xmlparse/dochandler.h
+++ b/addon/xmlparse/dochandler.h
@@ -64,7 +64,13 @@ class DocNode
EMail,
Link,
ProgramListing,
- CodeLine
+ CodeLine,
+ Highlight,
+ Anchor,
+ Formula,
+ Image,
+ DotFile,
+ IndexEntry
};
DocNode(NodeKind k) : m_kind(k) {}
virtual ~DocNode() {}
@@ -343,9 +349,9 @@ class RefHandler : public DocNode, public BaseHandler<RefHandler>
void endRef();
private:
IBaseHandler *m_parent;
- QCString m_refId;
- QCString m_anchor;
- QCString m_linkText;
+ QString m_refId;
+ QString m_anchor;
+ QString m_linkText;
};
//-----------------------------------------------------------------------------
@@ -451,6 +457,52 @@ class VariableListHandler : public DocNode, public BaseHandler<VariableListHandl
//-----------------------------------------------------------------------------
+/*! \brief Node representing a text anchor
+ *
+ */
+// children: ref
+class AnchorHandler : public DocNode, public BaseHandler<AnchorHandler>
+{
+ public:
+ AnchorHandler(IBaseHandler *parent);
+ virtual ~AnchorHandler();
+ void startAnchor(const QXmlAttributes& attrib);
+ void endAnchor();
+ void startRef(const QXmlAttributes& attrib);
+
+ private:
+ void addTextNode();
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ QString m_id;
+};
+
+//-----------------------------------------------------------------------------
+
+/*! \brief Node representing a highlighted text fragment.
+ *
+ */
+// children: -
+class HighlightHandler : public DocNode, public BaseHandler<HighlightHandler>
+{
+ public:
+ HighlightHandler(IBaseHandler *parent);
+ virtual ~HighlightHandler();
+ void startHighlight(const QXmlAttributes& attrib);
+ void endHighlight();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_class;
+ QString m_text;
+};
+
+//-----------------------------------------------------------------------------
+
+/*! \brief Node representing a line of code.
+ *
+ */
+// children: linenumber, highlight, anchor, ref
class CodeLineHandler : public DocNode, public BaseHandler<CodeLineHandler>
{
public:
@@ -459,10 +511,16 @@ class CodeLineHandler : public DocNode, public BaseHandler<CodeLineHandler>
virtual void endCodeLine();
virtual void startLineNumber(const QXmlAttributes&);
virtual void endLineNumber();
+ virtual void startHighlight(const QXmlAttributes&);
+ virtual void startAnchor(const QXmlAttributes&);
+ virtual void startRef(const QXmlAttributes&);
CodeLineHandler(IBaseHandler *parent);
virtual ~CodeLineHandler();
+
private:
+ void addTextNode();
+
IBaseHandler *m_parent;
int m_lineNumber;
QString m_anchor;
@@ -475,6 +533,7 @@ class CodeLineHandler : public DocNode, public BaseHandler<CodeLineHandler>
/*! \brief Node representing a program listing
*
*/
+// children: codeline, linenumber
class ProgramListingHandler : public DocNode, public BaseHandler<ProgramListingHandler>
{
public:
@@ -486,25 +545,109 @@ class ProgramListingHandler : public DocNode, public BaseHandler<ProgramListingH
ProgramListingHandler(IBaseHandler *parent);
virtual ~ProgramListingHandler();
private:
- IBaseHandler *m_parent;
- QList<CodeLineHandler> m_children;
+ IBaseHandler *m_parent;
+ QList<CodeLineHandler> m_children;
bool m_hasLineNumber;
};
//-----------------------------------------------------------------------------
+/*! \brief Node representing a formula.
+ *
+ */
+// children: -
+class FormulaHandler : public DocNode, public BaseHandler<FormulaHandler>
+{
+ public:
+ FormulaHandler(IBaseHandler *parent);
+ virtual ~FormulaHandler();
+ void startFormula(const QXmlAttributes& attrib);
+ void endFormula();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_id;
+ QString m_text;
+};
+
+//-----------------------------------------------------------------------------
+
+/*! \brief Node representing an image.
+ *
+ */
+// children: -
+class ImageHandler : public DocNode, public BaseHandler<ImageHandler>
+{
+ public:
+ ImageHandler(IBaseHandler *parent);
+ virtual ~ImageHandler();
+ void startImage(const QXmlAttributes& attrib);
+ void endImage();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_name;
+ QString m_caption;
+};
+
+//-----------------------------------------------------------------------------
+
+/*! \brief Node representing a dot file.
+ *
+ */
+// children: -
+class DotFileHandler : public DocNode, public BaseHandler<DotFileHandler>
+{
+ public:
+ DotFileHandler(IBaseHandler *parent);
+ virtual ~DotFileHandler();
+ void startDotFile(const QXmlAttributes& attrib);
+ void endDotFile();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_name;
+ QString m_caption;
+};
+
+//-----------------------------------------------------------------------------
+
+/*! \brief Node representing an entry in the index.
+ *
+ */
+// children: -
+class IndexEntryHandler : public DocNode, public BaseHandler<IndexEntryHandler>
+{
+ public:
+ IndexEntryHandler(IBaseHandler *parent);
+ virtual ~IndexEntryHandler();
+ void startIndexEntry(const QXmlAttributes& attrib);
+ void endIndexEntry();
+ void startPrimaryIE(const QXmlAttributes& attrib);
+ void endPrimaryIE();
+ void startSecondaryIE(const QXmlAttributes& attrib);
+ void endSecondaryIE();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_primary;
+ QString m_secondary;
+};
+
+//-----------------------------------------------------------------------------
+
/*! \brief Node representing a paragraph of text and commands.
*
*/
// children: itemizedlist, orderedlist, parameterlist, simplesect, ref,
// variablelist, hruler, linebreak, ulink, email, link
-// TODO:
-// programlisting,
-// table,
-// indexentry, formula, image, dotfile
+// programlisting, formula, image, dotfile, indexentry
+//
// children handled by MarkupHandler:
// bold, computeroutput, emphasis, center,
// small, subscript, superscript.
+// TODO:
+// table
class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
{
public:
@@ -522,6 +665,10 @@ class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
virtual void startEMail(const QXmlAttributes& attrib);
virtual void startLink(const QXmlAttributes& attrib);
virtual void startProgramListing(const QXmlAttributes& attrib);
+ virtual void startFormula(const QXmlAttributes& attrib);
+ virtual void startImage(const QXmlAttributes& attrib);
+ virtual void startDotFile(const QXmlAttributes& attrib);
+ virtual void startIndexEntry(const QXmlAttributes& attrib);
ParagraphHandler(IBaseHandler *parent);
virtual ~ParagraphHandler();
@@ -538,7 +685,8 @@ class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
/*! \brief Node representing a documentation block.
*
*/
-// children: para, title, sect1, sect2, sect3
+// children: para
+// TODO: title, sect1, sect2, sect3
class DocHandler : public BaseHandler<DocHandler>
{
public:
@@ -548,6 +696,7 @@ class DocHandler : public BaseHandler<DocHandler>
DocHandler(IBaseHandler *parent);
virtual ~DocHandler();
+
private:
IBaseHandler *m_parent;
QList<DocNode> m_children;
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index d4487da..1bd867c 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,5 +1,5 @@
Name: doxygen
-Version: 1.2.11_20011104
+Version: 1.2.11_20011111
Summary: documentation system for C, C++ and IDL
Release: 4
Source: doxygen-%{version}.src.tar.gz
diff --git a/src/code.l b/src/code.l
index fe7e3a2..d6ae4aa 100644
--- a/src/code.l
+++ b/src/code.l
@@ -163,6 +163,14 @@ void VariableContext::addVariable(const QCString &type,const QCString &name)
{
QCString ltype = type.simplifyWhiteSpace();
QCString lname = name.simplifyWhiteSpace();
+ if (ltype.left(7)=="struct ")
+ {
+ ltype = ltype.right(ltype.length()-7);
+ }
+ else if (ltype.left(6)=="union ")
+ {
+ ltype = ltype.right(ltype.length()-6);
+ }
if (ltype.isEmpty() || lname.isEmpty()) return;
DBG_CTX((stderr,"** AddVariable trying: type=%s name=%s\n",ltype.data(),lname.data()));
Scope *scope = m_scopes.count()==0 ? &m_globalScope : m_scopes.getLast();
@@ -338,7 +346,7 @@ static void startCodeLine()
g_realScope = d->name().copy();
//printf("Real scope: `%s'\n",g_realScope.data());
g_bodyCurlyCount = 0;
- if (g_currentMemberDef) anchor=g_currentMemberDef->anchor();
+ if (g_currentMemberDef) anchor=g_currentMemberDef->getBodyAnchor();
g_code->startCodeAnchor(lineAnchor);
g_code->writeCodeLink(d->getReference(),d->getOutputFileBase(),
anchor,lineNumber);
@@ -562,15 +570,25 @@ static MemberDef *setCallContextForVar(const QCString &name)
static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *clNameLen=0)
{
int i=0;
+ if (*clName=='~') // correct for matching negated values i.s.o. destructors.
+ {
+ g_code->codify("~");
+ clName++;
+ }
QCString className=clName;
if (clNameLen) *clNameLen=0;
if (className.isEmpty()) return;
- ClassDef *cd=getResolvedClass(g_currentDefinition,className);
- if (cd==0 && (i=className.find('<'))!=-1)
+ ClassDef *cd=0;
+
+ if (!g_theVarContext.findVariable(className)) // not a local variable
{
- cd=getResolvedClass(g_currentDefinition,className.left(i));
+ cd = getResolvedClass(g_currentDefinition,className);
+ if (cd==0 && (i=className.find('<'))!=-1)
+ {
+ cd=getResolvedClass(g_currentDefinition,className.left(i));
+ }
}
- if (cd && cd->isLinkable())
+ if (cd && cd->isLinkable()) // is it a linkable class
{
if (g_exampleBlock)
{
@@ -598,17 +616,18 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c
MemberDef *md = setCallContextForVar(clName);
if (md)
{
- Definition *d=md->getOuterScope();
- if (d && md->isLinkable())
+ Definition *d = md->getOuterScope()==Doxygen::globalScope ?
+ md->getBodyDef() : md->getOuterScope();
+ if (d && d->isLinkable() && md->isLinkable())
{
- writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->anchor(),clName);
+ writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName);
if (g_currentMemberDef)
{
- if (Config_getBool("REFERENCED_BY_RELATION"))
+ if (Config_getBool("REFERENCED_BY_RELATION") && g_currentMemberDef->isFunction())
{
md->addSourceReferencedBy(g_currentMemberDef);
}
- if (Config_getBool("REFERENCES_RELATION"))
+ if (Config_getBool("REFERENCES_RELATION") && g_currentMemberDef->isFunction())
{
g_currentMemberDef->addSourceReferences(md);
}
@@ -666,11 +685,11 @@ static bool getLink(const char *className,
if (g_currentDefinition && g_currentMemberDef &&
md!=g_currentMemberDef && g_insideBody)
{
- if (Config_getBool("REFERENCED_BY_RELATION"))
+ if (Config_getBool("REFERENCED_BY_RELATION") && g_currentMemberDef->isFunction())
{
md->addSourceReferencedBy(g_currentMemberDef);
}
- if (Config_getBool("REFERENCES_RELATION"))
+ if (Config_getBool("REFERENCES_RELATION") && g_currentMemberDef->isFunction())
{
g_currentMemberDef->addSourceReferences(md);
}
@@ -678,7 +697,7 @@ static bool getLink(const char *className,
//printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data());
writeMultiLineCodeLink(result,d->getReference(),d->getOutputFileBase(),
- md->anchor(),text ? text : memberName);
+ md->getBodyAnchor(),text ? text : memberName);
return TRUE;
}
}
@@ -702,7 +721,8 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
g_theCallContext.setClass(stripClassName(xmd->typeString()));
- Definition *xd = xmd->getOuterScope();
+ Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ?
+ xmd->getBodyDef() : xmd->getOuterScope();
if (xd)
{
@@ -710,11 +730,11 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
if (g_currentDefinition && g_currentMemberDef &&
xmd!=g_currentMemberDef && g_insideBody)
{
- if (Config_getBool("REFERENCED_BY_RELATION"))
+ if (Config_getBool("REFERENCED_BY_RELATION") && g_currentMemberDef->isFunction())
{
xmd->addSourceReferencedBy(g_currentMemberDef);
}
- if (Config_getBool("REFERENCES_RELATION"))
+ if (Config_getBool("REFERENCES_RELATION") && g_currentMemberDef->isFunction())
{
g_currentMemberDef->addSourceReferences(xmd);
}
@@ -722,7 +742,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
// write the actual link
writeMultiLineCodeLink(ol,xd->getReference(),
- xd->getOutputFileBase(),xmd->anchor(),memName);
+ xd->getOutputFileBase(),xmd->getBodyAnchor(),memName);
return TRUE;
}
}
@@ -1068,11 +1088,16 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
generateClassOrGlobalLink(*g_code,yytext);
BEGIN( ClassVar );
}
+<ClassVar>"=" {
+ g_code->codify(yytext);
+ unput(*yytext);
+ BEGIN( Body );
+ }
<ClassVar>{ID} {
g_type = g_curClassName.copy();
g_name = yytext;
g_theVarContext.addVariable(g_type,g_name);
- g_code->codify(yytext);
+ generateClassOrGlobalLink(*g_code,yytext);
}
<ClassName,ClassVar>[ \t\n]*":"[ \t\n]* {
codifyLines(yytext);
@@ -1501,10 +1526,18 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_scopeStack.push(INNERBLOCK);
}
g_code->codify(")");
- startFontClass("keyword");
yytext[yyleng-1]='\0';
- codifyLines(yytext+1);
- endFontClass();
+ QCString cv(yytext+1);
+ if (!cv.stripWhiteSpace().isEmpty())
+ {
+ startFontClass("keyword");
+ codifyLines(yytext+1);
+ endFontClass();
+ }
+ else // just whitespace
+ {
+ codifyLines(yytext+1);
+ }
g_code->codify("{");
if (g_searchingForBody)
{
diff --git a/src/definition.cpp b/src/definition.cpp
index 7597ead..dcd1517 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -347,7 +347,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
* definition is used.
*/
void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
- const QCString &text,MemberSDict *members)
+ const QCString &text,MemberSDict *members,bool /*funcOnly*/)
{
ol.pushGeneratorState();
if (Config_getBool("SOURCE_BROWSER") && members)
@@ -425,12 +425,12 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
void Definition::writeSourceReffedBy(OutputList &ol,const char *scopeName)
{
- writeSourceRefList(ol,scopeName,theTranslator->trReferencedBy(),m_sourceRefByDict);
+ writeSourceRefList(ol,scopeName,theTranslator->trReferencedBy(),m_sourceRefByDict,FALSE);
}
void Definition::writeSourceRefs(OutputList &ol,const char *scopeName)
{
- writeSourceRefList(ol,scopeName,theTranslator->trReferences(),m_sourceRefsDict);
+ writeSourceRefList(ol,scopeName,theTranslator->trReferences(),m_sourceRefsDict,TRUE);
}
bool Definition::hasDocumentation() const
diff --git a/src/definition.h b/src/definition.h
index b98f0f2..0b9d4ff 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -141,7 +141,7 @@ class Definition
private:
void writeSourceRefList(OutputList &ol,const char *scopeName,
- const QCString &text,MemberSDict *members);
+ const QCString &text,MemberSDict *members,bool);
//QCString m_qualifiedName; // name of the definition
QCString m_brief; // brief description
QCString m_doc; // detailed description
diff --git a/src/doc.l b/src/doc.l
index 86a2d3f..ab8ab2f 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -1135,7 +1135,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
if (formula)
{
QCString formName;
- formName.sprintf("form-%d.gif",formula->getId());
+ formName.sprintf("form_%d",formula->getId());
outDoc->writeFormula(formName,formula->getFormulaText());
}
}
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 005fb56..6db5d5d 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -2101,11 +2101,13 @@ static void findFriends()
{
mmd->setBodySegment(fmd->getStartBodyLine(),fmd->getEndBodyLine());
mmd->setBodyDef(fmd->getBodyDef());
+ mmd->setBodyMember(fmd);
}
else if (mmd->getStartBodyLine()!=-1 && fmd->getStartBodyLine()==-1)
{
fmd->setBodySegment(mmd->getStartBodyLine(),mmd->getEndBodyLine());
fmd->setBodyDef(mmd->getBodyDef());
+ fmd->setBodyMember(mmd);
}
}
}
@@ -2180,12 +2182,14 @@ static void transferFunctionDocumentation()
if (mdec->getStartBodyLine()!=-1 && mdef->getStartBodyLine()==-1)
{
mdef->setBodySegment(mdec->getStartBodyLine(),mdec->getEndBodyLine());
- mdef->setBodyDef(mdec->getFileDef());
+ mdef->setBodyDef(mdec->getBodyDef());
+ mdef->setBodyMember(mdec);
}
else if (mdef->getStartBodyLine()!=-1 && mdec->getStartBodyLine()==-1)
{
mdec->setBodySegment(mdef->getStartBodyLine(),mdef->getEndBodyLine());
- mdec->setBodyDef(mdef->getFileDef());
+ mdec->setBodyDef(mdef->getBodyDef());
+ mdec->setBodyMember(mdef);
}
mdec->mergeMemberSpecifiers(mdef->getMemberSpecifiers());
mdef->mergeMemberSpecifiers(mdec->getMemberSpecifiers());
@@ -6194,7 +6198,12 @@ static int readFileOrDirectory(const char *s,
bool errorIfNotExist=TRUE
)
{
- QFileInfo fi(s);
+ // strip trailing slashes
+ QCString fs = s;
+ char lc = fs.at(fs.length()-1);
+ if (lc=='/' || lc=='\\') fs = fs.left(fs.length()-1);
+
+ QFileInfo fi(fs);
//printf("readFileOrDirectory(%s)\n",s);
int totalSize=0;
{
@@ -6666,12 +6675,12 @@ void parseInput()
s=imagePathList.next();
}
- QDictIterator<FileName> fndi(*Doxygen::imageNameDict);
- FileName *fn;
- for (;(fn=fndi.current());++fndi)
- {
- printf("File Name %s\n",fn->fileName());
- }
+ //QDictIterator<FileName> fndi(*Doxygen::imageNameDict);
+ //FileName *fn;
+ //for (;(fn=fndi.current());++fndi)
+ //{
+ // printf("File Name %s\n",fn->fileName());
+ //}
msg("Searching for dot files...\n");
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 9384952..56b9fa2 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -425,48 +425,18 @@ void FileDef::writeSource(OutputList &ol)
initParseCodeContext();
ol.startCodeFragment();
+ //if (name().left(9)=="memory.c")
+ //{
parseCode(ol,0,
fileToString(absFilePath(),Config_getBool("FILTER_SOURCE_FILES")),
FALSE,0,this
);
+ //}
ol.endCodeFragment();
endFile(ol);
ol.enableAll();
}
-#if 0
-/*! Adds a member \a md to the member group with id \a groupId.
- */
-void FileDef::addMemberListToGroup(MemberList *ml,
- bool (MemberDef::*func)() const)
-{
- MemberListIterator mli(*ml);
- MemberDef *md;
- for (;(md=mli.current());++mli)
- {
- int groupId=md->getMemberGroupId();
- if ((md->*func)() && groupId!=-1)
- {
- QCString *pGrpHeader = Doxygen::memberHeaderDict[groupId];
- QCString *pDocs = Doxygen::memberDocDict[groupId];
- //printf("Member `%s' pGrpHeader=%p\n",md->name().data(),pGrpHeader);
- if (pGrpHeader)
- {
- MemberGroup *mg = memberGroupDict->find(groupId);
- if (mg==0)
- {
- mg = new MemberGroup(groupId,*pGrpHeader,pDocs ? pDocs->data() : 0);
- memberGroupDict->insert(groupId,mg);
- memberGroupList->append(mg);
- }
- //printf("insert member %s in group %s\n",md->name().data(),pGrpHeader->data());
- mg->insertMember(md);
- md->setMemberGroup(mg);
- }
- }
- }
-}
-#endif
void FileDef::addMembersToMemberGroup()
{
diff --git a/src/formula.cpp b/src/formula.cpp
index f7c77b8..96d2137 100644
--- a/src/formula.cpp
+++ b/src/formula.cpp
@@ -85,7 +85,7 @@ void FormulaList::generateBitmaps(const char *path)
for (fli.toFirst();(formula=fli.current());++fli)
{
QCString resultName;
- resultName.sprintf("form-%d.gif",formula->getId());
+ resultName.sprintf("form_%d.gif",formula->getId());
// only formulas for which no image exists are generated
QFileInfo fi(resultName);
if (!fi.exists())
@@ -116,7 +116,7 @@ void FormulaList::generateBitmaps(const char *path)
for (;(pagePtr=pli.current());++pli,++pageIndex)
{
int pageNum=*pagePtr;
- msg("Generating image form-%d.gif for formula\n",pageNum);
+ msg("Generating image form_%d.gif for formula\n",pageNum);
char dviArgs[4096];
QCString formBase;
formBase.sprintf("_form%d",pageNum);
@@ -269,6 +269,7 @@ void FormulaList::generateBitmaps(const char *path)
}
// down-sample the image to 1/16th of the area using 16 gray scale
// colors.
+ // TODO: optimize this code.
for (y=0;y<dstImage.getHeight();y++)
{
for (x=0;x<dstImage.getWidth();x++)
@@ -298,7 +299,7 @@ void FormulaList::generateBitmaps(const char *path)
}
// save the result as a gif
QCString resultName;
- resultName.sprintf("form-%d.gif",pageNum);
+ resultName.sprintf("form_%d.gif",pageNum);
// the option parameter 1 is used here as a temporary hack
// to select the right color palette!
dstImage.save(resultName,1);
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 3bf5fb3..6193223 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -637,14 +637,14 @@ void HtmlGenerator::writeFormula(const char *n,const char *text)
{
if (text && text[0]=='\\') t << "<p><center>" << endl;
t << "<img align=";
-//#if !defined(_WIN32)
-// t << "\"top\""; // assume Unix users use Netscape 4.x which does
-// // not seem to support align == "middle" :-((
-//#else
+#if !defined(_WIN32)
+ t << "\"top\""; // assume Unix users use Netscape 4.x which does
+ // not seem to support align == "middle" :-((
+#else
t << "\"middle\""; // assume Windows users use IE or HtmlHelp which only
// displays formulas nicely with align == "middle"
-//#endif
- t << " src=\"" << n << "\">" << endl;
+#endif
+ t << " src=\"" << n << ".gif\">" << endl;
if (text && text[0]=='\\') t << "</center><p>" << endl;
}
diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp
index e024585..ee2863c 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -315,7 +315,8 @@ void HtmlHelp::createProjectFile()
"Contents file=index.hhc\n"
"Default Window=main\n"
"Default topic=" << indexName << "\n"
- "Index file=index.hhk\n";
+ "Index file=index.hhk\n"
+ "Language=0x409 English (United States)\n";
if (Config_getBool("BINARY_TOC")) t << "Binary TOC=YES\n";
if (Config_getBool("GENERATE_CHI")) t << "Create CHI file=YES\n";
t << "Title=" << Config_getString("PROJECT_NAME") << endl << endl;
@@ -323,7 +324,7 @@ void HtmlHelp::createProjectFile()
t << "[WINDOWS]" << endl;
t << "main=\"" << Config_getString("PROJECT_NAME") << "\",\"index.hhc\","
"\"index.hhk\",\"" << indexName << "\",\"" <<
- indexName << "\",,,,,0x23520,,0x3006,,,,,,,,0" << endl << endl;
+ indexName << "\",,,,,0x23520,,0x387e,,,,,,,,0" << endl << endl;
t << "[FILES]" << endl;
char *s = indexFiles.first();
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index f0e4d5f..8ed96af 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -305,6 +305,7 @@ MemberDef::MemberDef(const char *df,int dl,
annEnumType=0;
indDepth=0;
section=0;
+ bodyMemb=0;
explExt=FALSE;
cachedAnonymousType=0;
maxInitLines=Config_getInt("MAX_INITIALIZER_LINES");
diff --git a/src/memberdef.h b/src/memberdef.h
index 64cb11f..a0d15b7 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -231,6 +231,12 @@ class MemberDef : public Definition
ArgumentList *actualArgs);
void setTemplateMaster(MemberDef *mt) { m_templateMaster=mt; }
void addListReference(Definition *d);
+
+ QCString getBodyAnchor() const
+ {
+ return bodyMemb ? bodyMemb->anchor() : anchor();
+ }
+ void setBodyMember(MemberDef *md) { bodyMemb = md; }
bool visited;
@@ -260,6 +266,7 @@ class MemberDef : public Definition
//int declLine; // line where the declaration was found
QCString def; // member definition in code (fully qualified name)
QCString anc; // HTML anchor name
+ MemberDef *bodyMemb; // Member containing the definition
Specifier virt; // normal/virtual/pure virtual
Protection prot; // protection type [Public/Protected/Private]
bool related; // is this a member that is only related to a class
diff --git a/src/translator_adapter.h b/src/translator_adapter.h
index 1b9a7d6..136cc75 100644
--- a/src/translator_adapter.h
+++ b/src/translator_adapter.h
@@ -5,10 +5,12 @@
/*! \brief Base of the translator adapter tree
*
- * This class provides access to the english translations, to be used
- * as a substitute for not implemented local translations.
+
+ * This abstract class provides access to the english
+ * translations, to be used as a substitute for not implemented
+ * local translations.
*/
-class TranslatorAdapterCVS : public Translator
+class TranslatorAdapterBase : public Translator
{
protected:
TranslatorEnglish english;
@@ -27,35 +29,17 @@ class TranslatorAdapterCVS : public Translator
}
public:
- /*! A method to generate a warning message to signal the user
- * that the translation of his/her language of choice needs
- * updating.
+ /*! This method is used to generate a warning message to signal
+ * the user that the translation of his/her language of choice
+ * needs updating. It must be implemented by the translator
+ * adapter class (pure virtual).
+ *
+ * \sa createUpdateNeededMessage()
*/
- virtual QCString updateNeededMessage()
- {
- QCString vs("CVS release ");
- vs += versionString; // the one from the version.cpp
- return createUpdateNeededMessage(idLanguage(), vs);
- }
-//-----------------------------------------------------------------------
-// The things below this line should go to the new
-// TranslatorAdapter_1_2_x, as public methods. The things above
-// should stay in TranslatorAdapterCVS and need not to be touched.
-// The first five lines below should be uncommented, and the
-// release number at the fifth of those lines should be set.
-
-// class TranslatorAdapter_1_2_x : public TranslatorAdapterCVS
-// {
-// public:
-// virtual QCString updateNeededMessage()
-// { return createUpdateNeededMessage(idLanguage(),"release 1.2.x"); }
-
- // Put new adapter methods below...
- //
-
+ virtual QCString updateNeededMessage() = 0;
};
-class TranslatorAdapter_1_2_11 : public TranslatorAdapterCVS
+class TranslatorAdapter_1_2_11 : public TranslatorAdapterBase
{
public:
virtual QCString updateNeededMessage()
diff --git a/src/translator_cz.h b/src/translator_cz.h
index 36e785c..5972f42 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -128,6 +128,9 @@
// 2001/07/16
// - trClassDocumentation() updated as in the English translator.
//
+// 2001/11/06
+// - trReferences() implemented.
+//
//
// Todo
// ----
@@ -148,7 +151,7 @@
// probably slightly faster.
-class TranslatorCzech : public TranslatorAdapter_1_2_11
+class TranslatorCzech : public Translator
{
private:
/*! The decode() inline assumes the source written in the
@@ -1465,6 +1468,17 @@ class TranslatorCzech : public TranslatorAdapter_1_2_11
return decode(result);
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.11
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is put before the list of members referenced by a member
+ */
+ virtual QCString trReferences()
+ {
+ return decode("Odkazuje se na");
+ }
+
};
#endif // TRANSLATOR_CZ_H
diff --git a/src/translator_ru.h b/src/translator_ru.h
index c96bdae..524a395 100644
--- a/src/translator_ru.h
+++ b/src/translator_ru.h
@@ -50,7 +50,7 @@
#ifndef TRANSLATOR_RU_H
#define TRANSLATOR_RU_H
-class TranslatorRussian : public TranslatorAdapter_1_2_11
+class TranslatorRussian : public Translator
{
private:
/*! The Decode() inline assumes the source written in the
@@ -146,7 +146,7 @@ class TranslatorRussian : public TranslatorAdapter_1_2_11
/*! this is the first part of a sentence that is followed by a class name */
/* Dosn't use when optimization for C is on. */
virtual QCString trThisIsTheListOfAllMembers()
- { return decode("Полный список членов класса"); }
+ { return decode("Полный список членов класса "); }
/*! this is the remainder of the sentence after the class name */
/* Dosn't use when optimization for C is on. */
@@ -628,7 +628,7 @@ class TranslatorRussian : public TranslatorAdapter_1_2_11
*/
virtual QCString trRelatedFunctionDocumentation()
{ return decode("Документация по друзьям класса и функциям отноносящихся"
- "к классу"); }
+ " к классу"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
@@ -1357,6 +1357,27 @@ class TranslatorRussian : public TranslatorAdapter_1_2_11
if (!singular) result+="ы";
return decode(result);
}
+
+ /*! This text is generated when the \\requirements command is used
+ */
+ virtual QCString trRequirements(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Требовани" : "требовани"));
+ if (!singular) result+="я"; else result+="е";
+ return decode(result);
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.11
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is put before the list of members referenced by a member
+ */
+ virtual QCString trReferences()
+ {
+ return "Перекрестные ссылки";
+ }
+
};
#endif
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 9ff6199..463d16a 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -579,21 +579,21 @@ class XMLGenerator : public OutputDocInterface
docify(text);
m_t << "</formula>";
}
- void startImage(const char *name,const char *size,bool caption)
+ void startImage(const char *name,const char *size,bool /*caption*/)
{
startParMode();
- m_t << "<image name=\"" << name << "\" size=\"" << size
- << "\" caption=\"" << (caption ? "1" : "0") << "\">"; // non docbook
+ m_t << "<image name=\"" << name << "\"";
+ if (size) m_t << " size=\"" << size << "\"";
+ m_t << ">"; // non docbook
}
void endImage(bool)
{
m_t << "</image>";
}
- void startDotFile(const char *name,bool caption)
+ void startDotFile(const char *name,bool /*caption*/)
{
startParMode();
- m_t << "<dotfile name=\"" << name << "\" "
- << "caption=\"" << (caption ? "1" : "0") << "\">"; // non docbook
+ m_t << "<dotfile name=\"" << name << "\">"; // non docbook
}
void endDotFile(bool)
{
@@ -1176,9 +1176,9 @@ void generateXMLForFile(FileDef *fd,QTextStream &t)
t << " <detaileddescription>" << endl;
writeXMLDocBlock(t,fd->getDefFileName(),fd->getDefLine(),0,0,fd->documentation());
t << " </detaileddescription>" << endl;
- t << " <sourcecode>" << endl;
+ t << " <programlisting>" << endl;
writeXMLCodeBlock(t,fd);
- t << " </sourcecode>" << endl;
+ t << " </programlisting>" << endl;
t << " <location file=\""
<< fd->getDefFileName() << "\" line=\""
<< fd->getDefLine() << "\"/>" << endl;