Commit 4fbc3452 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.2.18-20021106

parent afc47efd
DOXYGEN Version 1.2.18-20021030
DOXYGEN Version 1.2.18-20021106
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (30 October 2002)
Dimitri van Heesch (06 November 2002)
DOXYGEN Version 1.2.18_20021030
DOXYGEN Version 1.2.18_20021106
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) (30 October 2002)
Dimitri van Heesch (dimitri@stack.nl) (06 November 2002)
1.2.18-20021030
1.2.18-20021106
......@@ -159,10 +159,13 @@ class IDoc
Row, // 27 -> IDocRow
Entry, // 28 -> IDocEntry
Section, // 29 -> IDocSection
Preformatted, // 30 -> IDocPreformatted
Verbatim, // 31 -> IDocVerbatim
Symbol, // 32 -> IDocSymbol
Root // 33 -> IDocRoot
Verbatim, // 30 -> IDocVerbatim
Copy, // 31 -> IDocCopy
TocList, // 32 -> IDocTocList
TocItem, // 33 -> IDocTocItem
Anchor, // 34 -> IDocAnchor
Symbol, // 35 -> IDocSymbol
Root // 36 -> IDocRoot
};
virtual Kind kind() const = 0;
};
......@@ -172,14 +175,16 @@ class IDocMarkup : public IDoc
public:
enum Markup
{
Normal = 0x00,
Bold = 0x01,
Emphasis = 0x02,
ComputerOutput = 0x04,
Subscript = 0x08,
Superscript = 0x10,
SmallFont = 0x20,
Center = 0x40
Normal = 0x000,
Bold = 0x001,
Emphasis = 0x002,
ComputerOutput = 0x004,
Subscript = 0x008,
Superscript = 0x010,
SmallFont = 0x020,
Center = 0x040,
Preformatted = 0x080,
Heading = 0x100
};
};
......@@ -194,6 +199,7 @@ class IDocText : public IDocMarkup
public:
virtual const IString * text() const = 0;
virtual int markup() const = 0;
virtual int headingLevel() const = 0;
};
class IDocMarkupModifier : public IDoc
......@@ -201,6 +207,7 @@ class IDocMarkupModifier : public IDoc
public:
virtual bool enabled() const = 0;
virtual int markup() const = 0;
virtual int headingLevel() const = 0;
};
class IDocItemizedList : public IDoc
......@@ -278,7 +285,7 @@ class IDocVariableList : public IDoc
class IDocVariableListEntry : public IDoc
{
public:
virtual const IString * term() const = 0;
virtual ILinkedTextIterator * term() const = 0;
virtual IDocPara *description() const = 0;
};
......@@ -393,7 +400,20 @@ class IDocSection : public IDoc
virtual IDocIterator *title() const = 0;
};
class IDocPreformatted : public IDoc
class IDocTocList : public IDoc
{
public:
virtual IDocIterator *elements() const = 0;
};
class IDocTocItem : public IDoc
{
public:
virtual const IString *id() const = 0;
virtual const IString *title() const = 0;
};
class IDocCopy : public IDoc
{
public:
virtual IDocIterator *contents() const = 0;
......@@ -402,7 +422,15 @@ class IDocPreformatted : public IDoc
class IDocVerbatim : public IDoc
{
public:
enum Types { Invalid = 0, HtmlOnly, LatexOnly, Verbatim };
virtual const IString *text() const = 0;
virtual Types type() const = 0;
};
class IDocAnchor : public IDoc
{
public:
virtual const IString *id() const = 0;
};
class IDocSymbol : public IDoc
......
......@@ -19,7 +19,9 @@
#include "debug.h"
#include "graphhandler.h"
#include "sectionhandler.h"
#include "paramhandler.h"
#include "loamhandler.h"
#include "memberhandler.h"
//----------------------------------------------------------------------------
......
This diff is collapsed.
This diff is collapsed.
......@@ -159,10 +159,13 @@ class IDoc
Row, // 27 -> IDocRow
Entry, // 28 -> IDocEntry
Section, // 29 -> IDocSection
Preformatted, // 30 -> IDocPreformatted
Verbatim, // 31 -> IDocVerbatim
Symbol, // 32 -> IDocSymbol
Root // 33 -> IDocRoot
Verbatim, // 30 -> IDocVerbatim
Copy, // 31 -> IDocCopy
TocList, // 32 -> IDocTocList
TocItem, // 33 -> IDocTocItem
Anchor, // 34 -> IDocAnchor
Symbol, // 35 -> IDocSymbol
Root // 36 -> IDocRoot
};
virtual Kind kind() const = 0;
};
......@@ -172,14 +175,16 @@ class IDocMarkup : public IDoc
public:
enum Markup
{
Normal = 0x00,
Bold = 0x01,
Emphasis = 0x02,
ComputerOutput = 0x04,
Subscript = 0x08,
Superscript = 0x10,
SmallFont = 0x20,
Center = 0x40
Normal = 0x000,
Bold = 0x001,
Emphasis = 0x002,
ComputerOutput = 0x004,
Subscript = 0x008,
Superscript = 0x010,
SmallFont = 0x020,
Center = 0x040,
Preformatted = 0x080,
Heading = 0x100
};
};
......@@ -194,6 +199,7 @@ class IDocText : public IDocMarkup
public:
virtual const IString * text() const = 0;
virtual int markup() const = 0;
virtual int headingLevel() const = 0;
};
class IDocMarkupModifier : public IDoc
......@@ -201,6 +207,7 @@ class IDocMarkupModifier : public IDoc
public:
virtual bool enabled() const = 0;
virtual int markup() const = 0;
virtual int headingLevel() const = 0;
};
class IDocItemizedList : public IDoc
......@@ -278,7 +285,7 @@ class IDocVariableList : public IDoc
class IDocVariableListEntry : public IDoc
{
public:
virtual const IString * term() const = 0;
virtual ILinkedTextIterator * term() const = 0;
virtual IDocPara *description() const = 0;
};
......@@ -393,7 +400,20 @@ class IDocSection : public IDoc
virtual IDocIterator *title() const = 0;
};
class IDocPreformatted : public IDoc
class IDocTocList : public IDoc
{
public:
virtual IDocIterator *elements() const = 0;
};
class IDocTocItem : public IDoc
{
public:
virtual const IString *id() const = 0;
virtual const IString *title() const = 0;
};
class IDocCopy : public IDoc
{
public:
virtual IDocIterator *contents() const = 0;
......@@ -402,7 +422,15 @@ class IDocPreformatted : public IDoc
class IDocVerbatim : public IDoc
{
public:
enum Types { Invalid = 0, HtmlOnly, LatexOnly, Verbatim };
virtual const IString *text() const = 0;
virtual Types type() const = 0;
};
class IDocAnchor : public IDoc
{
public:
virtual const IString *id() const = 0;
};
class IDocSymbol : public IDoc
......
......@@ -18,6 +18,8 @@
#include "compoundhandler.h"
#include "sectionhandler.h"
#include "graphhandler.h"
#include "dochandler.h"
#include "memberhandler.h"
#include "debug.h"
......
......@@ -17,11 +17,11 @@
#define _MAINHANDLER_H
#include <qlist.h>
#include "basehandler.h"
#include "compoundhandler.h"
#include <doxmlintf.h>
#include "memberhandler.h"
#include "basehandler.h"
class CompoundHandler;
struct CompoundEntry;
struct IndexEntry
......
......@@ -18,6 +18,8 @@
#include "dochandler.h"
#include "mainhandler.h"
#include "linkedtexthandler.h"
#include "paramhandler.h"
#include "compoundhandler.h"
#include "debug.h"
//------------------------------------------------------------------------------
......@@ -451,4 +453,60 @@ IMemberIterator *MemberHandler::enumValues() const
return new MemberIterator(m_enumValues);
}
ILinkedTextIterator *MemberHandler::type() const
{
return new LinkedTextIterator(m_type);
}
const IString *MemberHandler::typeString() const
{
MemberHandler *that = (MemberHandler *)this;
that->m_typeString = LinkedTextHandler::toString(m_type);
return &m_typeString;
}
IParamIterator *MemberHandler::parameters() const
{
return new ParamIterator(m_params);
}
IParamIterator *MemberHandler::templateParameters() const
{
return m_hasTemplateParamList ? new ParamIterator(m_templateParams) : 0;
}
IMemberReferenceIterator *MemberHandler::references() const
{
return new MemberReferenceIterator(m_references);
}
IMemberReferenceIterator *MemberHandler::referencedBy() const
{
return new MemberReferenceIterator(m_referencedBy);
}
ILinkedTextIterator *MemberHandler::initializer() const
{
return new LinkedTextIterator(m_initializer);
}
ILinkedTextIterator *MemberHandler::exceptions() const
{
return new LinkedTextIterator(m_exception);
}
IMemberReferenceIterator *MemberHandler::reimplementedBy() const
{
return new MemberReferenceIterator(m_reimplementedBy);
}
IDocRoot *MemberHandler::briefDescription() const
{
return m_brief;
}
IDocRoot *MemberHandler::detailedDescription() const
{
return m_detailed;
}
......@@ -23,14 +23,15 @@
#include "basehandler.h"
#include "baseiterator.h"
#include "paramhandler.h"
#include "linkedtexthandler.h"
#include "dochandler.h"
#include "stringimpl.h"
class MainHandler;
class CompoundHandler;
class SectionHandler;
class ParamHandler;
class LinkedTextImpl;
class LinkedTextHandler;
class DocHandler;
struct MemberReference : public IMemberReference
{
......@@ -159,25 +160,14 @@ class MemberHandler : public IDefine,
{ return m_isConst; }
virtual bool isVolatile() const
{ return m_isVolatile; }
virtual ILinkedTextIterator *type() const
{ return new LinkedTextIterator(m_type); }
virtual const IString *typeString() const
{ MemberHandler *that = (MemberHandler *)this;
that->m_typeString = LinkedTextHandler::toString(m_type);
return &m_typeString;
}
virtual IParamIterator *parameters() const
{ return new ParamIterator(m_params); }
virtual IParamIterator *templateParameters() const
{ return m_hasTemplateParamList ? new ParamIterator(m_templateParams) : 0; }
virtual IMemberReferenceIterator *references() const
{ return new MemberReferenceIterator(m_references); }
virtual IMemberReferenceIterator *referencedBy() const
{ return new MemberReferenceIterator(m_referencedBy); }
virtual ILinkedTextIterator *initializer() const
{ return new LinkedTextIterator(m_initializer); }
virtual ILinkedTextIterator *exceptions() const
{ return new LinkedTextIterator(m_exception); }
virtual ILinkedTextIterator *type() const;
virtual const IString *typeString() const;
virtual IParamIterator *parameters() const;
virtual IParamIterator *templateParameters() const;
virtual IMemberReferenceIterator *references() const;
virtual IMemberReferenceIterator *referencedBy() const;
virtual ILinkedTextIterator *initializer() const;
virtual ILinkedTextIterator *exceptions() const;
virtual int bodyStart() const
{ return m_bodyStart; }
virtual int bodyEnd() const
......@@ -188,12 +178,9 @@ class MemberHandler : public IDefine,
{ return m_defLine; }
virtual IMemberReference *reimplements() const
{ return m_reimplements; }
virtual IMemberReferenceIterator *reimplementedBy() const
{ return new MemberReferenceIterator(m_reimplementedBy); }
virtual IDocRoot *briefDescription() const
{ return m_brief; }
virtual IDocRoot *detailedDescription() const
{ return m_detailed; }
virtual IMemberReferenceIterator *reimplementedBy() const;
virtual IDocRoot *briefDescription() const;
virtual IDocRoot *detailedDescription() const;
// IEnum
virtual IMemberIterator *enumValues() const;
......
......@@ -15,6 +15,7 @@
#include "paramhandler.h"
#include "memberhandler.h"
#include "linkedtexthandler.h"
#include "debug.h"
TemplateParamListHandler::TemplateParamListHandler(IBaseHandler *parent) : m_parent(parent)
......@@ -127,5 +128,14 @@ void ParamHandler::startDefVal(const QXmlAttributes& /*attrib*/)
debug(2,"member defVal\n");
}
ILinkedTextIterator *ParamHandler::type() const
{
return new LinkedTextIterator(m_type);
}
ILinkedTextIterator *ParamHandler::defaultValue() const
{
return new LinkedTextIterator(m_defVal);
}
......@@ -24,7 +24,9 @@
#include "stringimpl.h"
#include "basehandler.h"
#include "baseiterator.h"
#include "linkedtexthandler.h"
class LinkedTextImpl;
class LinkedTextHandler;
class ParamHandler : public IParam, public BaseHandler<ParamHandler>
......@@ -43,14 +45,12 @@ class ParamHandler : public IParam, public BaseHandler<ParamHandler>
virtual ~ParamHandler();
// IParam
virtual ILinkedTextIterator *type() const
{ return new LinkedTextIterator(m_type); }
virtual ILinkedTextIterator *type() const;
virtual const IString * declarationName() const { return &m_declName; }
virtual const IString * definitionName() const { return &m_defName; }
virtual const IString * attrib() const { return &m_attrib; }
virtual const IString * arraySpecifier() const { return &m_array; }
virtual ILinkedTextIterator *defaultValue() const
{ return new LinkedTextIterator(m_defVal); }
virtual ILinkedTextIterator *defaultValue() const;
private:
IBaseHandler *m_parent;
......
......@@ -16,6 +16,7 @@
#include "mainhandler.h"
#include "compoundhandler.h"
#include "sectionhandler.h"
#include "memberhandler.h"
#include "debug.h"
class SectionTypeMap
......@@ -126,4 +127,8 @@ void SectionHandler::initialize(CompoundHandler *ch)
}
}
IMemberIterator *SectionHandler::members() const
{
return new MemberIterator(m_members);
}
......@@ -22,7 +22,6 @@
#include <doxmlintf.h>
#include "basehandler.h"
#include "memberhandler.h"
class MainHandler;
......@@ -50,8 +49,7 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
{ return &m_kindString; }
virtual SectionKind kind() const
{ return m_kind; }
virtual IMemberIterator *members() const
{ return new MemberIterator(m_members); }
virtual IMemberIterator *members() const;
virtual bool isStatic() const
{
return m_kind==PubStatFuncs || m_kind==PubStatAttribs ||
......
......@@ -73,14 +73,16 @@ void DumpDoc(IDoc *doc,int level)
{
IDocText *txt = dynamic_cast<IDocText*>(doc);
ASSERT(txt!=0);
InPrint(("<text value=`%s' markup=%d/>\n",txt->text()->latin1(),txt->markup()));
InPrint(("<text value=`%s' markup=%d headingLevel=%d/>\n",
txt->text()->latin1(),txt->markup(),txt->headingLevel()));
}
break;
case IDoc::MarkupModifier:
{
IDocMarkupModifier *md = dynamic_cast<IDocMarkupModifier*>(doc);
ASSERT(md!=0);
InPrint(("<markup modifier enabled=%d markup=%d/>\n",md->enabled(),md->markup()));
InPrint(("<markup modifier enabled=%d markup=%d headingLevel=%d/>\n",
md->enabled(),md->markup(),md->headingLevel()));
}
break;
case IDoc::ItemizedList:
......@@ -203,7 +205,10 @@ void DumpDoc(IDoc *doc,int level)
{
IDocVariableListEntry *vle = dynamic_cast<IDocVariableListEntry*>(doc);
ASSERT(vle!=0);
InPrint(("<variablelistentry term=%s>\n",vle->term()->latin1()));
ILinkedTextIterator *lti = vle->term();
QString term = linkedTextToString(lti);
lti->release();
InPrint(("<variablelistentry term=%s>\n",term.latin1()));
DumpDoc(vle->description(),level+1);
InPrint(("<variablelistentry/>\n"));
}
......@@ -255,7 +260,7 @@ void DumpDoc(IDoc *doc,int level)
DumpDoc(cl,level+1);
}
cli->release();
InPrint(("<programlisting/>\n"));
InPrint(("</programlisting>\n"));
}
break;
case IDoc::CodeLine:
......@@ -270,7 +275,7 @@ void DumpDoc(IDoc *doc,int level)
DumpDoc(ce,level+1);
}
cei->release();
InPrint(("<codeline/>\n"));
InPrint(("</codeline>\n"));
}
break;
case IDoc::Highlight:
......@@ -373,31 +378,70 @@ void DumpDoc(IDoc *doc,int level)
{
DumpDoc(pdoc,level+1);
}
InPrint(("<section/>\n"));
InPrint(("</section>\n"));
}
break;
case IDoc::Preformatted:
case IDoc::Copy:
{
InPrint(("<preformatted>\n"));
IDocPreformatted *pf = dynamic_cast<IDocPreformatted*>(doc);
ASSERT(pf!=0);
IDocIterator *di = pf->contents();
IDocCopy *cpy = dynamic_cast<IDocCopy*>(doc);
ASSERT(cpy!=0);
InPrint(("<copydoc>\n"));
IDocIterator *di = cpy->contents();
IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext())
{
DumpDoc(pdoc,level+1);
}
di->release();
InPrint(("<preformatted/>\n"));
InPrint(("<copydoc/>\n"));
}
break;
case IDoc::TocItem:
{
IDocTocItem *ti = dynamic_cast<IDocTocItem*>(doc);
ASSERT(ti!=0);
InPrint(("<tocitem id=\"%s\" title=\"%s\"/>\n",
ti->id()->latin1(),ti->title()->latin1()));
}
break;
case IDoc::TocList:
{
IDocTocList *tl = dynamic_cast<IDocTocList*>(doc);
ASSERT(tl!=0);
InPrint(("<toclist>\n"));
IDocIterator *di = tl->elements();
IDoc *pdoc;
for (di->toFirst();(pdoc=di->current());di->toNext())
{
DumpDoc(pdoc,level+1);
}
di->release();
InPrint(("<toclist/>\n"));
}
break;
case IDoc::Verbatim:
{
InPrint(("<verbatim>\n"));
IDocVerbatim *vt = dynamic_cast<IDocVerbatim*>(doc);
ASSERT(vt!=0);
const char *s=0;
switch (vt->type())
{
case IDocVerbatim::Verbatim: s="verbatim"; break;
case IDocVerbatim::HtmlOnly: s="htmlonly"; break;
case IDocVerbatim::LatexOnly: s="latexonly"; break;
default:
printf("Invalid verbatim type!\n");
}
InPrint(("<verbatim %s>\n",s));
InPrint(("%s",vt->text()->latin1()));
InPrint(("<verbatim/>\n"));
InPrint(("</verbatim>\n"));
}
break;
case IDoc::Anchor:
{
IDocAnchor *anc = dynamic_cast<IDocAnchor*>(doc);
ASSERT(anc!=0);
InPrint(("<anchor id='%s'/>\n",anc->id()->latin1()));
}
break;
case IDoc::Symbol:
......@@ -420,7 +464,7 @@ void DumpDoc(IDoc *doc,int level)
DumpDoc(pdoc,level+1);
}
di->release();
InPrint(("<root/>\n"));
InPrint(("</root>\n"));
}
break;
......
......@@ -319,7 +319,7 @@ doxygen. Unrecognized commands are treated as normal text.
If your comment block \e is in front of the function
declaration or definition this command can (and to avoid redundancy
should) be ommitted.
should) be omitted.
A full function declaration including arguments should be specified after the
\\fn command on a \e single line, since the argument ends at the end
......@@ -745,7 +745,7 @@ See section \ref memgroup for an example.
\par Example:
\verbatim
/*! Uncoditionally shown documentation.
/*! Unconditionally shown documentation.
* \if Cond1
* Only included if Cond1 is set.
* \endif
......
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.2.18_20021030
Version: 1.2.18_20021106
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
......@@ -521,7 +521,7 @@ static MemberDef *setCallContextForVar(const QCString &name)
{
QCString scope = name.left(scopeEnd);
QCString locName = name.right(name.length()-scopeEnd-2);
//printf("name=%s scope=%s\n",locName.data(),scope.data());
//printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data());
ClassDef *mcd = getClass(scope); // TODO: check namespace as well
if (mcd && !locName.isEmpty())
{
......@@ -539,11 +539,11 @@ static MemberDef *setCallContextForVar(const QCString &name)
ClassDef *mcd = g_theVarContext.findVariable(name);
if (mcd) // local variable
{
//printf("local var `%s'\n",name.data());
//printf("local var `%s' mcd=%s\n",name.data(),mcd->name().data());
g_theCallContext.setClass(mcd);
return 0;
}
else
{
// look for a class member
mcd = getClass(g_classScope);
if (mcd)
......@@ -555,6 +555,7 @@ static MemberDef *setCallContextForVar(const QCString &name)
return md;
}
}
}
// look for a global member
if ((mn=Doxygen::functionNameSDict[name]))
......@@ -613,6 +614,7 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst)
static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int *clNameLen=0)
{
int i=0;
//printf("generateClassOrGlobalLink(clName=%s)\n",clName);
if (*clName=='~') // correct for matching negated values i.s.o. destructors.
{
g_code->codify("~");
......@@ -634,6 +636,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int
}
if (cd && cd->isLinkable()) // is it a linkable class
{
//printf("is linkable class %s\n",clName);
if (g_exampleBlock)
{
QCString anchor;
......@@ -654,10 +657,12 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int
if (cd==0) // not a class, see if it is a global enum/variable/typedef.
{
MemberDef *md = setCallContextForVar(clName);
//printf("is a global md=%p\n",md);
if (md)
{
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
md->getBodyDef() : md->getOuterScope();
//printf("definition %s\n",d?d->name().data():"<none>");
if (md->getGroupDef()) d = md->getGroupDef();
if (d && d->isLinkable() && md->isLinkable())
{
......
......@@ -2206,10 +2206,28 @@ void Config::create()
"PERLMOD_LATEX",
"If the PERLMOD_LATEX tag is set to YES Doxygen will generate \n"
"the necessary Makefile rules, Perl scripts and LaTeX code to be able \n"
"to generate PDF and DVI output from the Perl module output.\n",
"to generate PDF and DVI output from the Perl module output. \n",
FALSE
);
cb->addDependency("GENERATE_PERLMOD");
cb = addBool(
"PERLMOD_PRETTY",
"If the PERLMOD_PRETTY tag is set to YES the Perl module output will be \n"
"nicely formatted so it can be parsed by a human reader. This is useful \n"
"if you want to understand what is going on. On the other hand, if this \n"
"tag is set to NO the size of the Perl module output will be much smaller \n"
"and Perl will parse it just the same. \n",
TRUE
);
cb->addDependency("GENERATE_PERLMOD");
cs = addString(
"PERLMOD_MAKEVAR_PREFIX",
"The names of the make variables in the generated doxyrules.make file \n"
"are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. \n"
"This is useful so different doxyrules.make files included by the same \n"
"Makefile don't overwrite each other's variables."
);
cs->addDependency("GENERATE_PERLMOD");
//-----------------------------------------------------------------------------------------------
addInfo( "Preprocessor","Configuration options related to the preprocessor ");
......
......@@ -259,9 +259,9 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef)
{
//ol.disable(OutputGenerator::RTF);
ol.disable(OutputGenerator::RTF);
ol.newParagraph();
//ol.enableAll();
ol.enableAll();
QCString refText = theTranslator->trDefinedAtLineInSourceFile();
int lineMarkerPos = refText.find("@0");
......
This diff is collapsed.
......@@ -80,7 +80,7 @@ class DocNode
Kind_XRefItem = 15,
Kind_HtmlList = 16,
Kind_HtmlListItem = 17,
Kind_HtmlPre = 18,
//Kind_HtmlPre = 18,
Kind_HtmlDescList = 19,
Kind_HtmlDescData = 20,
Kind_HtmlDescTitle = 21,
......@@ -112,7 +112,9 @@ class DocNode
Kind_Copy = 47,
Kind_Text = 48
};
/*! Destructor. */
/*! Creates a new node */
DocNode() : m_insidePre(FALSE) {}
/*! Destroys a node. */
virtual ~DocNode() {}
/*! Returns the kind of node. Provides runtime type information */
virtual Kind kind() const = 0;
......@@ -122,6 +124,12 @@ class DocNode
* @param v Abstract visitor.
*/
virtual void accept(DocVisitor *v) = 0;
/*! Returns TRUE iff this node is inside a preformatted section */
bool isPreformatted() const { return m_insidePre; }
/*! Sets whether or not this item is inside a preformatted section */
void setInsidePreformatted(bool p) { m_insidePre = p; }
private:
bool m_insidePre;
};
/*! @brief Default accept implementation for compound nodes in the abstract
......@@ -254,22 +262,26 @@ class DocStyleChange : public DocNode
{
public:
enum Style { Bold, Italic, Code, Center, Small,
Subscript, Superscript
Subscript, Superscript, Preformatted
};
DocStyleChange(DocNode *parent,uint position,Style s,bool enable) :
m_parent(parent), m_position(position), m_style(s), m_enable(enable) {}
DocStyleChange(DocNode *parent,uint position,Style s,bool enable,
const HtmlAttribList *attribs=0) :
m_parent(parent), m_position(position), m_style(s), m_enable(enable)
{ if (attribs) m_attribs=*attribs; }
Kind kind() const { return Kind_StyleChange; }
Style style() const { return m_style; }
bool enable() const { return m_enable; }
uint position() const { return m_position; }
DocNode *parent() const { return m_parent; }
void accept(DocVisitor *v) { v->visit(this); }
const HtmlAttribList &attribs() const { return m_attribs; }
private:
DocNode *m_parent;
uint m_position;
Style m_style;
bool m_enable;
HtmlAttribList m_attribs;
};
/*! @brief Node representing a special symbol */
......@@ -1024,7 +1036,7 @@ class DocHtmlDescData : public CompAccept<DocHtmlDescData>, public DocNode
HtmlAttribList m_attribs;
};
#if 0
/*! @brief Node representing a preformatted HTML section */
class DocHtmlPre : public CompAccept<DocHtmlPre>, public DocNode
{
......@@ -1041,6 +1053,7 @@ class DocHtmlPre : public CompAccept<DocHtmlPre>, public DocNode
DocNode * m_parent;
HtmlAttribList m_attribs;
};
#endif
/*! @brief Node representing a HTML table cell */
class DocHtmlCell : public CompAccept<DocHtmlCell>, public DocNode
......
......@@ -219,7 +219,7 @@ URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [a-z_A-Z0-9\-\+]
FILEMASK {FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*
LINKMASK [^ \t\n\r\\@<&$]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))?
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))?
SPCMD1 {CMD}[a-z_A-Z0-9]+
SPCMD2 {CMD}[\\@<>&$#%~]
SPCMD3 {CMD}form#[0-9]+
......@@ -234,12 +234,12 @@ OPDEL {BLANK}+"delete"({BLANK}*"[]")?
OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()"
OPCAST {BLANK}+[^(\r\n.,]+
OPMASK ({BLANK}*{OPNORM}({FUNCARG}?))|({OPCAST}{FUNCARG})
LNKWORD1 {SCOPEMASK}
LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 {SCOPEPRE}*"operator"{OPMASK}
WORD1 [^ \t\n\r\\@<>&$#,.]+
WORD1 [^ \t\n\r\\@<>{}&$#,.]+|"{"|"}"
WORD2 "."|","
WORD1NQ [^ \t\n\r\\@<>&$#,."]+
WORD1NQ [^ \t\n\r\\@<>{}&$#,."]+
WORD2NQ "."|","
HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*">"
HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"
......
......@@ -38,7 +38,7 @@ class DocVerbatim;
class DocXRefItem;
class DocHtmlList;
class DocHtmlListItem;
class DocHtmlPre;
//class DocHtmlPre;
class DocHtmlDescList;
class DocHtmlDescTitle;
class DocHtmlDescData;
......@@ -75,6 +75,7 @@ class DocText;
class DocVisitor
{
public:
virtual ~DocVisitor() {}
/*! @name Visitor functions for leaf nodes
* @{
*/
......@@ -119,8 +120,8 @@ class DocVisitor
virtual void visitPost(DocHtmlListItem *) = 0;
virtual void visitPre(DocHtmlListItem *) = 0;
virtual void visitPost(DocHtmlList *) = 0;
virtual void visitPre(DocHtmlPre *) = 0;
virtual void visitPost(DocHtmlPre *) = 0;
//virtual void visitPre(DocHtmlPre *) = 0;
//virtual void visitPost(DocHtmlPre *) = 0;
virtual void visitPre(DocHtmlDescList *) = 0;
virtual void visitPost(DocHtmlDescList *) = 0;
virtual void visitPre(DocHtmlDescTitle *) = 0;
......
......@@ -133,26 +133,37 @@ void HtmlDocVisitor::visit(DocStyleChange *s)
switch (s->style())
{
case DocStyleChange::Bold:
if (s->enable()) m_t << "<b>"; else m_t << "</b>";
if (s->enable()) m_t << "<b" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</b>";
break;
case DocStyleChange::Italic:
if (s->enable()) m_t << "<em>"; else m_t << "</em>";
if (s->enable()) m_t << "<em" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</em>";
break;
case DocStyleChange::Code:
if (s->enable()) m_t << "<code>"; else m_t << "</code>";
if (s->enable()) m_t << "<code" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</code>";
break;
case DocStyleChange::Subscript:
if (s->enable()) m_t << "<sub>"; else m_t << "</sub>";
if (s->enable()) m_t << "<sub" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</sub>";
break;
case DocStyleChange::Superscript:
if (s->enable()) m_t << "<sup>"; else m_t << "</sup>";
if (s->enable()) m_t << "<sup" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</sup>";
break;
case DocStyleChange::Center:
if (s->enable()) m_t << "<center>"; else m_t << "</center>";
if (s->enable()) m_t << "<center" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</center>";
break;
case DocStyleChange::Small:
if (s->enable()) m_t << "<small>"; else m_t << "</small>";
if (s->enable()) m_t << "<small" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</small>";
break;
case DocStyleChange::Preformatted:
if (s->enable())
{
m_t << "<pre" << htmlAttribsToString(s->attribs()) << ">\n";
m_insidePre=TRUE;
}
else
{
m_insidePre=FALSE;
m_t << "</pre>\n";
}
}
}
......@@ -434,17 +445,17 @@ void HtmlDocVisitor::visitPost(DocHtmlListItem *)
m_t << "</li>\n";
}
void HtmlDocVisitor::visitPre(DocHtmlPre *p)
{
m_t << "<pre" << htmlAttribsToString(p->attribs()) << ">\n";
m_insidePre=TRUE;
}
//void HtmlDocVisitor::visitPre(DocHtmlPre *p)
//{
// m_t << "<pre" << htmlAttribsToString(p->attribs()) << ">\n";
// m_insidePre=TRUE;
//}
void HtmlDocVisitor::visitPost(DocHtmlPre *)
{
m_insidePre=FALSE;
m_t << "</pre>\n";
}
//void HtmlDocVisitor::visitPost(DocHtmlPre *)
//{
// m_insidePre=FALSE;
// m_t << "</pre>\n";
//}
void HtmlDocVisitor::visitPre(DocHtmlDescList *dl)
{
......
......@@ -76,8 +76,8 @@ class HtmlDocVisitor : public DocVisitor
void visitPost(DocHtmlList *) ;
void visitPre(DocHtmlListItem *);
void visitPost(DocHtmlListItem *);
void visitPre(DocHtmlPre *);
void visitPost(DocHtmlPre *);
//void visitPre(DocHtmlPre *);
//void visitPost(DocHtmlPre *);
void visitPre(DocHtmlDescList *);
void visitPost(DocHtmlDescList *);
void visitPre(DocHtmlDescTitle *);
......
......@@ -203,6 +203,18 @@ void LatexDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Small:
if (s->enable()) m_t << "\\footnotesize "; else m_t << "\\normalsize ";
break;
case DocStyleChange::Preformatted:
if (s->enable())
{
m_t << "\\small\\begin{alltt}";
m_insidePre=TRUE;
}
else
{
m_insidePre=FALSE;
m_t << "\\end{alltt}\\normalsize " << endl;
}
break;
}
}
......@@ -499,17 +511,17 @@ void LatexDocVisitor::visitPost(DocHtmlListItem *)
{
}
void LatexDocVisitor::visitPre(DocHtmlPre *)
{
m_t << "\\small\\begin{alltt}";
m_insidePre=TRUE;
}
//void LatexDocVisitor::visitPre(DocHtmlPre *)
//{
// m_t << "\\small\\begin{alltt}";
// m_insidePre=TRUE;
//}
void LatexDocVisitor::visitPost(DocHtmlPre *)
{
m_insidePre=FALSE;
m_t << "\\end{alltt}\\normalsize " << endl;
}
//void LatexDocVisitor::visitPost(DocHtmlPre *)
//{
// m_insidePre=FALSE;
// m_t << "\\end{alltt}\\normalsize " << endl;
//}
void LatexDocVisitor::visitPre(DocHtmlDescList *)
{
......
......@@ -76,8 +76,8 @@ class LatexDocVisitor : public DocVisitor
void visitPost(DocHtmlList *s);
void visitPre(DocHtmlListItem *);
void visitPost(DocHtmlListItem *);
void visitPre(DocHtmlPre *);
void visitPost(DocHtmlPre *);
//void visitPre(DocHtmlPre *);
//void visitPost(DocHtmlPre *);
void visitPre(DocHtmlDescList *);
void visitPost(DocHtmlDescList *);
void visitPre(DocHtmlDescTitle *);
......
......@@ -151,6 +151,22 @@ void ManDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Small:
/* not supported */
break;
case DocStyleChange::Preformatted:
if (s->enable())
{
if (!m_firstCol) m_t << endl;
m_t << ".PP" << endl;
m_t << ".nf" << endl;
m_insidePre=TRUE;
}
else
{
m_insidePre=FALSE;
if (!m_firstCol) m_t << endl;
m_t << ".PP" << endl;
m_firstCol=TRUE;
}
break;
}
}
......@@ -468,21 +484,21 @@ void ManDocVisitor::visitPost(DocHtmlListItem *)
m_firstCol=TRUE;
}
void ManDocVisitor::visitPre(DocHtmlPre *)
{
if (!m_firstCol) m_t << endl;
m_t << ".PP" << endl;
m_t << ".nf" << endl;
m_insidePre=TRUE;
}
void ManDocVisitor::visitPost(DocHtmlPre *)
{
m_insidePre=FALSE;
if (!m_firstCol) m_t << endl;
m_t << ".PP" << endl;
m_firstCol=TRUE;
}
//void ManDocVisitor::visitPre(DocHtmlPre *)
//{
// if (!m_firstCol) m_t << endl;
// m_t << ".PP" << endl;
// m_t << ".nf" << endl;
// m_insidePre=TRUE;
//}
//
//void ManDocVisitor::visitPost(DocHtmlPre *)
//{
// m_insidePre=FALSE;
// if (!m_firstCol) m_t << endl;
// m_t << ".PP" << endl;
// m_firstCol=TRUE;
//}
void ManDocVisitor::visitPre(DocHtmlDescList *)
{
......
......@@ -76,8 +76,8 @@ class ManDocVisitor : public DocVisitor
void visitPost(DocHtmlList *s);
void visitPre(DocHtmlListItem *);
void visitPost(DocHtmlListItem *);
void visitPre(DocHtmlPre *);
void visitPost(DocHtmlPre *);
//void visitPre(DocHtmlPre *);
//void visitPost(DocHtmlPre *);
void visitPre(DocHtmlDescList *);
void visitPost(DocHtmlDescList *);
void visitPre(DocHtmlDescTitle *);
......
......@@ -1271,6 +1271,15 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.newParagraph();
ol.popGeneratorState();
}
else if(!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") ||
!Config_getBool("BRIEF_MEMBER_DESC")))
{
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
ol.popGeneratorState();
}
//printf("***** defArgList=%p name=%s docs=%s hasDocs=%d\n",
// defArgList,
......@@ -1375,7 +1384,9 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
// write class that contains a member that is reimplemented by this one
if (bcd->isLinkable())
{
ol.disable(OutputGenerator::RTF);
ol.newParagraph();
ol.enableAll();
QCString reimplFromLine;
if (bmd->virtualness()!=Pure && bcd->compoundType()!=ClassDef::Interface)
......@@ -1449,7 +1460,9 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{
mli.toFirst();
// write the list of classes that overwrite this member
ol.disable(OutputGenerator::RTF);
ol.newParagraph();
ol.enableAll();
QCString reimplInLine;
if (virt==Pure || (classDef && classDef->compoundType()==ClassDef::Interface))
......
This diff is collapsed.
......@@ -121,6 +121,9 @@ class PrintDocVisitor : public DocVisitor
case DocStyleChange::Small:
if (s->enable()) printf("<small>"); else printf("</small>");
break;
case DocStyleChange::Preformatted:
if (s->enable()) printf("<pre>"); else printf("</pre>");
break;
}
}
void visit(DocVerbatim *s)
......@@ -330,18 +333,18 @@ class PrintDocVisitor : public DocVisitor
indent_post();
printf("</li>\n");
}
void visitPre(DocHtmlPre *)
{
indent_pre();
printf("<pre>\n");
m_insidePre=TRUE;
}
void visitPost(DocHtmlPre *)
{
m_insidePre=FALSE;
indent_post();
printf("</pre>\n");
}
//void visitPre(DocHtmlPre *)
//{
// indent_pre();
// printf("<pre>\n");
// m_insidePre=TRUE;
//}
//void visitPost(DocHtmlPre *)
//{
// m_insidePre=FALSE;
// indent_post();
// printf("</pre>\n");
//}
void visitPre(DocHtmlDescList *)
{
indent_pre();
......
......@@ -28,7 +28,7 @@
#include "message.h"
RTFDocVisitor::RTFDocVisitor(QTextStream &t,BaseCodeDocInterface &ci)
: m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), m_indentLevel(0)
: m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), m_indentLevel(1)
{
}
......@@ -48,7 +48,7 @@ void RTFDocVisitor::incIndentLevel()
void RTFDocVisitor::decIndentLevel()
{
if (m_indentLevel>0) m_indentLevel--;
if (m_indentLevel>1) m_indentLevel--;
}
//--------------------------------------
......@@ -259,6 +259,21 @@ void RTFDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Small:
if (s->enable()) m_t << "{\\sub "; else m_t << "} ";
break;
case DocStyleChange::Preformatted:
if (s->enable())
{
m_t << "{" << endl;
m_t << "\\par" << endl;
m_t << rtf_Style_Reset << getStyle("CodeExample");
m_insidePre=TRUE;
}
else
{
m_insidePre=FALSE;
m_t << "\\par" << endl;
m_t << "}" << endl;
}
break;
}
}
......@@ -585,20 +600,20 @@ void RTFDocVisitor::visitPost(DocHtmlListItem *)
{
}
void RTFDocVisitor::visitPre(DocHtmlPre *)
{
m_t << "{" << endl;
m_t << "\\par" << endl;
m_t << rtf_Style_Reset << getStyle("CodeExample");
m_insidePre=TRUE;
}
//void RTFDocVisitor::visitPre(DocHtmlPre *)
//{
// m_t << "{" << endl;
// m_t << "\\par" << endl;
// m_t << rtf_Style_Reset << getStyle("CodeExample");
// m_insidePre=TRUE;
//}
void RTFDocVisitor::visitPost(DocHtmlPre *)
{
m_insidePre=FALSE;
m_t << "\\par" << endl;
m_t << "}" << endl;
}
//void RTFDocVisitor::visitPost(DocHtmlPre *)
//{
// m_insidePre=FALSE;
// m_t << "\\par" << endl;
// m_t << "}" << endl;
//}
void RTFDocVisitor::visitPre(DocHtmlDescList *)
{
......@@ -875,8 +890,8 @@ void RTFDocVisitor::visitPost(DocLanguage *)
void RTFDocVisitor::visitPre(DocParamSect *s)
{
m_t << "{"; // start param list
m_t << "{\\b "; // start bold
m_t << "\\par" << endl;
m_t << "{\\b "; // start bold
switch(s->type())
{
case DocParamSect::Param:
......@@ -896,7 +911,7 @@ void RTFDocVisitor::visitPre(DocParamSect *s)
void RTFDocVisitor::visitPost(DocParamSect *)
{
m_t << "\\par" << endl;
//m_t << "\\par" << endl;
decIndentLevel();
m_t << "}" << endl;
}
......
......@@ -76,8 +76,8 @@ class RTFDocVisitor : public DocVisitor
void visitPost(DocHtmlList *s);
void visitPre(DocHtmlListItem *);
void visitPost(DocHtmlListItem *);
void visitPre(DocHtmlPre *);
void visitPost(DocHtmlPre *);
//void visitPre(DocHtmlPre *);
//void visitPost(DocHtmlPre *);
void visitPre(DocHtmlDescList *);
void visitPost(DocHtmlDescList *);
void visitPre(DocHtmlDescTitle *);
......
......@@ -1439,14 +1439,14 @@ void RTFGenerator::startDescription()
{
DBG_RTF(t << "{\\comment (startDescription)}" << endl)
t << "{" << endl;
t << rtf_Style_Reset << rtf_CList_DepthStyle();
t << rtf_Style_Reset << rtf_DList_DepthStyle();
}
void RTFGenerator::endDescription()
{
DBG_RTF(t << "{\\comment (endDescription)}" << endl)
t << "}";
newParagraph();
t << "}";
}
void RTFGenerator::startDescItem()
......@@ -1758,6 +1758,7 @@ void RTFGenerator::writeRTFReference(const char *label)
void RTFGenerator::startCodeFragment()
{
DBG_RTF(t << "{\\comment (startCodeFragment) }" << endl)
t << "{" << endl;
newParagraph();
t << rtf_Style_Reset << rtf_Code_DepthStyle();
......@@ -1974,8 +1975,11 @@ void RTFGenerator::endTextBlock()
void RTFGenerator::newParagraph()
{
if (!m_omitParagraph)
{
DBG_RTF(t << "{\\comment (newParagraph)}" << endl)
if (!m_omitParagraph) t << "\\par" << endl;
t << "\\par" << endl;
}
m_omitParagraph = FALSE;
}
......@@ -2177,6 +2181,7 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl
void RTFGenerator::startDotGraph()
{
DBG_RTF(t << "{\\comment (startDotGraph)}" << endl)
}
void RTFGenerator::endDotGraph(DotClassGraph &g)
......@@ -2193,10 +2198,13 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl;
newParagraph();
DBG_RTF(t << "{\\comment (endDotGraph)}" << endl)
}
void RTFGenerator::startInclDepGraph()
{
DBG_RTF(t << "{\\comment (startInclDepGraph)}" << endl)
}
void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
......@@ -2212,6 +2220,7 @@ void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl;
DBG_RTF(t << "{\\comment (endInclDepGraph)}" << endl)
}
/** Tests the integrity of the result by counting brackets.
......
......@@ -3827,18 +3827,14 @@ void filterLatexString(QTextStream &t,const char *str,
case '>': t << "$>$"; break;
case '|': t << "$|$"; break;
case '~': t << "$\\sim$"; break;
case '[': if (Config_getBool("PDF_HYPERLINKS"))
case '[': if (Config_getBool("PDF_HYPERLINKS") || insideItem)
t << "\\mbox{[}";
else if (insideItem)
t << "\\[";
else
t << "[";
break;
case ']': if (pc=='[') t << "$\\,$";
if (Config_getBool("PDF_HYPERLINKS"))
if (Config_getBool("PDF_HYPERLINKS") || insideItem)
t << "\\mbox{]}";
else if (insideItem)
t << "\\]";
else
t << "]";
break;
......
......@@ -138,6 +138,18 @@ void XmlDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Small:
if (s->enable()) m_t << "<small>"; else m_t << "</small> ";
break;
case DocStyleChange::Preformatted:
if (s->enable())
{
m_t << "<preformatted>";
m_insidePre=TRUE;
}
else
{
m_t << "</preformatted> ";
m_insidePre=FALSE;
}
break;
}
}
......@@ -412,18 +424,6 @@ void XmlDocVisitor::visitPost(DocHtmlListItem *)
m_t << "</listitem>\n";
}
void XmlDocVisitor::visitPre(DocHtmlPre *)
{
m_t << "<preformatted>\n";
m_insidePre=TRUE;
}
void XmlDocVisitor::visitPost(DocHtmlPre *)
{
m_insidePre=FALSE;
m_t << "</preformatted>\n";
}
void XmlDocVisitor::visitPre(DocHtmlDescList *)
{
m_t << "<variablelist>\n";
......@@ -517,12 +517,12 @@ void XmlDocVisitor::visitPost(DocHRef *)
void XmlDocVisitor::visitPre(DocHtmlHeader *header)
{
m_t << "<sect" << header->level() << ">";
m_t << "<heading" << header->level() << ">";
}
void XmlDocVisitor::visitPost(DocHtmlHeader *header)
{
m_t << "</sect" << header->level() << ">\n";
m_t << "</heading" << header->level() << ">\n";
}
void XmlDocVisitor::visitPre(DocImage *img)
......
......@@ -76,8 +76,8 @@ class XmlDocVisitor : public DocVisitor
void visitPost(DocHtmlList *) ;
void visitPre(DocHtmlListItem *);
void visitPost(DocHtmlListItem *);
void visitPre(DocHtmlPre *);
void visitPost(DocHtmlPre *);
//void visitPre(DocHtmlPre *);
//void visitPost(DocHtmlPre *);
void visitPre(DocHtmlDescList *);
void visitPost(DocHtmlDescList *);
void visitPre(DocHtmlDescTitle *);
......
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