summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/commands.doc31
-rw-r--r--src/cmdmapper.cpp2
-rw-r--r--src/cmdmapper.h4
-rw-r--r--src/commentscan.l44
-rw-r--r--src/compound.xsd7
-rw-r--r--src/compound_xsd.h7
-rw-r--r--src/docbookvisitor.cpp9
-rw-r--r--src/docbookvisitor.h5
-rw-r--r--src/docparser.cpp38
-rw-r--r--src/docparser.h16
-rw-r--r--src/doctokenizer.h3
-rw-r--r--src/docvisitor.h3
-rw-r--r--src/doxygen.css6
-rw-r--r--src/doxygen_css.h6
-rw-r--r--src/htmldocvisitor.cpp87
-rw-r--r--src/htmldocvisitor.h2
-rw-r--r--src/latexdocvisitor.cpp10
-rw-r--r--src/latexdocvisitor.h2
-rw-r--r--src/mandocvisitor.cpp8
-rw-r--r--src/mandocvisitor.h2
-rw-r--r--src/perlmodgen.cpp11
-rw-r--r--src/printdocvisitor.h10
-rw-r--r--src/rtfdocvisitor.cpp10
-rw-r--r--src/rtfdocvisitor.h2
-rw-r--r--src/textdocvisitor.h2
-rw-r--r--src/xmldocvisitor.cpp13
-rw-r--r--src/xmldocvisitor.h2
27 files changed, 322 insertions, 20 deletions
diff --git a/doc/commands.doc b/doc/commands.doc
index 7054c11..912e9ec 100644
--- a/doc/commands.doc
+++ b/doc/commands.doc
@@ -85,6 +85,7 @@ documentation:
\refitem cmdendlink \\endlink
\refitem cmdendmanonly \\endmanonly
\refitem cmdendmsc \\endmsc
+\refitem cmdendparblock \\endparblock
\refitem cmdendrtfonly \\endrtfonly
\refitem cmdendsecreflist \\endsecreflist
\refitem cmdendverbatim \\endverbatim
@@ -136,6 +137,7 @@ documentation:
\refitem cmdpar \\par
\refitem cmdparagraph \\paragraph
\refitem cmdparam \\param
+\refitem cmdparblock \\parblock
\refitem cmdpost \\post
\refitem cmdpre \\pre
\refitem cmdprivate \\private
@@ -1473,6 +1475,35 @@ void setPosition(double x,double y,double z,double t)
\endverbatim
<hr>
+\section cmdparblock \\parblock
+ \addindex \\parblock
+ For commands that expect a single paragraph as argument
+ (such as \ref cmdpar "\\par", \ref cmdparam "\\param" and \ref cmdwarning "\\warning"),
+ the \ref cmdparblock "\\parblock" command allows to start a
+ description that covers multiple paragraphs, which then ends with
+ \ref cmdendparblock "\\endparblock".
+
+ Example:
+\verbatim
+/** Example of a param command with a description consisting of two paragraphs
+ * \param p
+ * \parblock
+ * First paragraph of the param description.
+ *
+ * Second paragraph of the param description.
+ * \endparblock
+ * Rest of the comment block continues.
+ */
+\endverbatim
+ Note that the \\parblock command may also appear directly after
+ \\param's first argument.
+
+<hr>
+\section cmdendparblock \\endparblock
+ \addindex \\endparblock
+ This ends a block of paragraphs started with \\ref cmdparblock "\\parblock".
+
+<hr>
\section cmdtparam \\tparam <template-parameter-name> { description }
\addindex \\tparam
diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp
index f148085..f4fc7e4 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -132,6 +132,8 @@ CommandMap cmdMap[] =
{ "docbookonly", CMD_DBONLY },
{ "enddocbookonly",CMD_ENDDBONLY },
{ "endinternal", CMD_ENDINTERNAL },
+ { "parblock", CMD_PARBLOCK },
+ { "endparblock", CMD_ENDPARBLOCK },
{ 0, 0 },
};
diff --git a/src/cmdmapper.h b/src/cmdmapper.h
index 88028f1..f6d5ee6 100644
--- a/src/cmdmapper.h
+++ b/src/cmdmapper.h
@@ -121,7 +121,9 @@ enum CommandType
CMD_VHDLFLOW = 91,
CMD_DBONLY = 92,
CMD_ENDDBONLY = 93,
- CMD_ENDINTERNAL = 94
+ CMD_ENDINTERNAL = 94,
+ CMD_PARBLOCK = 95,
+ CMD_ENDPARBLOCK = 96
};
enum HtmlTagType
diff --git a/src/commentscan.l b/src/commentscan.l
index 886c2dd..51e431c 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -118,6 +118,8 @@ static bool handleExtends(const QCString &);
static bool handleCopyDoc(const QCString &);
static bool handleCopyBrief(const QCString &);
static bool handleCopyDetails(const QCString &);
+static bool handleParBlock(const QCString &);
+static bool handleEndParBlock(const QCString &);
typedef bool (*DocCmdFunc)(const QCString &name);
@@ -170,6 +172,8 @@ static DocCmdMap docCmdMap[] =
{ "relates", &handleRelated, TRUE },
{ "relatedalso", &handleRelatedAlso, TRUE },
{ "relatesalso", &handleRelatedAlso, TRUE },
+ { "parblock", &handleParBlock, TRUE },
+ { "endparblock", &handleEndParBlock, TRUE },
{ "refitem", &handleRefItem, TRUE },
{ "cite", &handleCite, FALSE },
{ "subpage", &handleSubpage, TRUE },
@@ -178,7 +182,7 @@ static DocCmdMap docCmdMap[] =
{ "subsubsection", &handleSection, TRUE },
{ "paragraph", &handleSection, TRUE },
{ "anchor", &handleAnchor, TRUE },
- { "verbatim", &handleFormatBlock, TRUE },
+ { "verbatim", &handleFormatBlock, TRUE },
{ "latexonly", &handleFormatBlock, FALSE },
{ "htmlonly", &handleFormatBlock, FALSE },
{ "xmlonly", &handleFormatBlock, FALSE },
@@ -421,6 +425,8 @@ static QCString g_copyDocArg;
static QCString g_guardExpr;
static int g_roundCount;
+static bool g_insideParBlock;
+
//-----------------------------------------------------------------------------
static QStack<Grouping> g_autoGroupStack;
@@ -437,6 +443,7 @@ static void initParser()
g_sectionLabel.resize(0);
g_sectionTitle.resize(0);
g_memberGroupHeader.resize(0);
+ g_insideParBlock = FALSE;
}
//-----------------------------------------------------------------------------
@@ -1040,7 +1047,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
int i=0;
while (yytext[i]==' ' || yytext[i]=='\t') i++;
g_spaceBeforeCmd = QCString(yytext).left(i);
- if (cmdPtr->endsBrief)
+ if (cmdPtr->endsBrief && inContext!=OutputXRef)
{
briefEndsAtDot=FALSE;
// this command forces the end of brief description
@@ -1192,7 +1199,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
if (inContext==OutputXRef)
{
// see bug 613024, we need to put the newlines after ending the XRef section.
- setOutput(OutputDoc);
+ if (!g_insideParBlock) setOutput(OutputDoc);
int i;
for (i=0;i<yyleng;)
{
@@ -2389,6 +2396,31 @@ static bool handleXRefItem(const QCString &)
return FALSE;
}
+static bool handleParBlock(const QCString &)
+{
+ if (g_insideParBlock)
+ {
+ warn(yyFileName,yyLineNr,
+ "found \\parblock command while already in a parblock!");
+ }
+ addOutput("@parblock");
+ g_insideParBlock = TRUE;
+ return FALSE;
+}
+
+static bool handleEndParBlock(const QCString &)
+{
+ if (!g_insideParBlock)
+ {
+ warn(yyFileName,yyLineNr,
+ "found \\endparblock command without matching \\parblock!");
+ }
+ addOutput("@endparblock");
+ setOutput(OutputDoc); // to end a parblock inside a xrefitem like context
+ g_insideParBlock = FALSE;
+ return FALSE;
+}
+
static bool handleRelated(const QCString &)
{
BEGIN(RelatesParam1);
@@ -2810,6 +2842,12 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!");
}
+ if (g_insideParBlock)
+ {
+ warn(yyFileName,yyLineNr,
+ "Documentation block ended while inside a \\parblock. Missing \\endparblock");
+ }
+
current->doc=stripLeadingAndTrailingEmptyLines(current->doc,current->docLine);
if (current->section==Entry::FILEDOC_SEC && current->doc.isEmpty())
diff --git a/src/compound.xsd b/src/compound.xsd
index d623c5f..6a747b6 100644
--- a/src/compound.xsd
+++ b/src/compound.xsd
@@ -508,6 +508,7 @@
<xsd:element name="xrefsect" type="docXRefSectType" />
<xsd:element name="copydoc" type="docCopyType" />
<xsd:element name="blockquote" type="docBlockQuoteType" />
+ <xsd:element name="parblock" type="docParBlockType" />
</xsd:choice>
</xsd:group>
@@ -707,6 +708,12 @@
</xsd:sequence>
</xsd:complexType>
+ <xsd:complexType name="docParBlockType">
+ <xsd:sequence>
+ <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
<xsd:complexType name="docCharType">
<xsd:attribute name="char" type="DoxCharRange"/>
</xsd:complexType>
diff --git a/src/compound_xsd.h b/src/compound_xsd.h
index 8ec3633..03230d1 100644
--- a/src/compound_xsd.h
+++ b/src/compound_xsd.h
@@ -508,6 +508,7 @@
" <xsd:element name=\"xrefsect\" type=\"docXRefSectType\" />\n"
" <xsd:element name=\"copydoc\" type=\"docCopyType\" />\n"
" <xsd:element name=\"blockquote\" type=\"docBlockQuoteType\" />\n"
+" <xsd:element name=\"parblock\" type=\"docParBlockType\" />\n"
" </xsd:choice>\n"
" </xsd:group>\n"
"\n"
@@ -707,6 +708,12 @@
" </xsd:sequence>\n"
" </xsd:complexType>\n"
"\n"
+" <xsd:complexType name=\"docParBlockType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"para\" type=\"docParaType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
" <xsd:complexType name=\"docCharType\">\n"
" <xsd:attribute name=\"char\" type=\"DoxCharRange\"/> \n"
" </xsd:complexType>\n"
diff --git a/src/docbookvisitor.cpp b/src/docbookvisitor.cpp
index ad5965d..a70c58f 100644
--- a/src/docbookvisitor.cpp
+++ b/src/docbookvisitor.cpp
@@ -1223,6 +1223,15 @@ void DocbookDocVisitor::visitPost(DocVhdlFlow *)
// TODO: to be implemented
}
+void DocbookDocVisitor::visitPre(DocParBlock *)
+{
+}
+
+void DocbookDocVisitor::visitPost(DocParBlock *)
+{
+}
+
+
void DocbookDocVisitor::filter(const char *str)
{
m_t << convertToXML(str);
diff --git a/src/docbookvisitor.h b/src/docbookvisitor.h
index c79301d..99bd6f3 100644
--- a/src/docbookvisitor.h
+++ b/src/docbookvisitor.h
@@ -129,7 +129,10 @@ class DocbookDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
- private:
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
+
+ private:
//--------------------------------------
// helper functions
//--------------------------------------
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 17fcfef..94de165 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -1562,6 +1562,7 @@ DocSymbol::SymType DocSymbol::decodeSymbol(const QCString &symName,char *letter)
{
int l=symName.length();
DBG(("decodeSymbol(%s) l=%d\n",qPrint(symName),l));
+ // TODO: replace this with a hash
if (symName=="&copy;") return DocSymbol::Copy;
else if (symName=="&trade;") return DocSymbol::Tm;
else if (symName=="&tm;") return DocSymbol::Tm; // alias for &trade;
@@ -4323,6 +4324,33 @@ int DocHtmlBlockQuote::parse()
//---------------------------------------------------------------------------
+int DocParBlock::parse()
+{
+ DBG(("DocParBlock::parse() start\n"));
+ int retval=0;
+ g_nodeStack.push(this);
+
+ // parse one or more paragraphs
+ bool isFirst=TRUE;
+ DocPara *par=0;
+ do
+ {
+ par = new DocPara(this);
+ if (isFirst) { par->markFirst(); isFirst=FALSE; }
+ m_children.append(par);
+ retval=par->parse();
+ }
+ while (retval==TK_NEWPARA);
+ if (par) par->markLast();
+
+ DocNode *n=g_nodeStack.pop();
+ ASSERT(n==this);
+ DBG(("DocParBlock::parse() end retval=%x\n",retval));
+ return (retval==RetVal_EndBlockQuote) ? RetVal_OK : retval;
+}
+
+//---------------------------------------------------------------------------
+
int DocSimpleListItem::parse()
{
g_nodeStack.push(this);
@@ -5509,6 +5537,9 @@ int DocPara::handleCommand(const QCString &cmdName)
doctokenizerYYsetStatePara();
}
break;
+ case CMD_ENDPARBLOCK:
+ retval=RetVal_EndParBlock;
+ break;
case CMD_ENDCODE:
case CMD_ENDHTMLONLY:
case CMD_ENDMANONLY:
@@ -5567,6 +5598,13 @@ int DocPara::handleCommand(const QCString &cmdName)
case CMD_ENDINTERNAL:
retval = RetVal_EndInternal;
break;
+ case CMD_PARBLOCK:
+ {
+ DocParBlock *block = new DocParBlock(this);
+ m_children.append(block);
+ retval = block->parse();
+ }
+ break;
case CMD_COPYDOC: // fall through
case CMD_COPYBRIEF: // fall through
case CMD_COPYDETAILS:
diff --git a/src/docparser.h b/src/docparser.h
index f8cc718..6012db2 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -130,7 +130,8 @@ class DocNode
Kind_Text = 47,
Kind_MscFile = 48,
Kind_HtmlBlockQuote = 49,
- Kind_VhdlFlow = 50
+ Kind_VhdlFlow = 50,
+ Kind_ParBlock = 51
};
/*! Creates a new node */
DocNode() : m_parent(0), m_insidePre(FALSE) {}
@@ -900,6 +901,19 @@ class DocInternal : public CompAccept<DocInternal>, public DocNode
private:
};
+/** Node representing an block of paragraphs */
+class DocParBlock : public CompAccept<DocParBlock>, public DocNode
+{
+ public:
+ DocParBlock(DocNode *parent) { m_parent = parent; }
+ int parse();
+ Kind kind() const { return Kind_ParBlock; }
+ void accept(DocVisitor *v) { CompAccept<DocParBlock>::accept(this,v); }
+
+ private:
+};
+
+
/** Node representing a simple list */
class DocSimpleList : public CompAccept<DocSimpleList>, public DocNode
{
diff --git a/src/doctokenizer.h b/src/doctokenizer.h
index d2e6ea1..ca0490c 100644
--- a/src/doctokenizer.h
+++ b/src/doctokenizer.h
@@ -63,7 +63,8 @@ enum Tokens
RetVal_CloseXml = 0x10013,
RetVal_EndBlockQuote = 0x10014,
RetVal_CopyDoc = 0x10015,
- RetVal_EndInternal = 0x10016
+ RetVal_EndInternal = 0x10016,
+ RetVal_EndParBlock = 0x10017
};
/** @brief Data associated with a token used by the comment block parser. */
diff --git a/src/docvisitor.h b/src/docvisitor.h
index 240e137..5caf414 100644
--- a/src/docvisitor.h
+++ b/src/docvisitor.h
@@ -82,6 +82,7 @@ class DocText;
class DocSimpleSectSep;
class DocHtmlBlockQuote;
class DocVhdlFlow;
+class DocParBlock;
/*! @brief Abstract visitor that participates in the visitor pattern.
*/
@@ -189,6 +190,8 @@ class DocVisitor
virtual void visitPost(DocHtmlBlockQuote *) = 0;
virtual void visitPre(DocVhdlFlow *) = 0;
virtual void visitPost(DocVhdlFlow *) = 0;
+ virtual void visitPre(DocParBlock *) = 0;
+ virtual void visitPost(DocParBlock *) = 0;
/*! @} */
};
diff --git a/src/doxygen.css b/src/doxygen.css
index 23e7fd0..2fa55fb 100644
--- a/src/doxygen.css
+++ b/src/doxygen.css
@@ -56,10 +56,14 @@ div.multicol {
-webkit-column-count: 3;
}
-p.startli, p.startdd, p.starttd {
+p.startli, p.startdd {
margin-top: 2px;
}
+p.starttd {
+ margin-top: 0px;
+}
+
p.endli {
margin-bottom: 0px;
}
diff --git a/src/doxygen_css.h b/src/doxygen_css.h
index 299852d..60ba52c 100644
--- a/src/doxygen_css.h
+++ b/src/doxygen_css.h
@@ -56,10 +56,14 @@
" -webkit-column-count: 3;\n"
"}\n"
"\n"
-"p.startli, p.startdd, p.starttd {\n"
+"p.startli, p.startdd {\n"
" margin-top: 2px;\n"
"}\n"
"\n"
+"p.starttd {\n"
+" margin-top: 0px;\n"
+"}\n"
+"\n"
"p.endli {\n"
" margin-bottom: 0px;\n"
"}\n"
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index 76d06ce..8ee8c62 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -102,6 +102,8 @@ static bool mustBeOutsideParagraph(DocNode *n)
case DocNode::Kind_Copy:
/* <blockquote> */
case DocNode::Kind_HtmlBlockQuote:
+ /* \parblock */
+ case DocNode::Kind_ParBlock:
return TRUE;
case DocNode::Kind_StyleChange:
return ((DocStyleChange*)n)->style()==DocStyleChange::Preformatted ||
@@ -829,21 +831,21 @@ bool isSeparatedParagraph(DocSimpleSect *parent,DocPara *par)
int i = nodes.findRef(par);
if (i==-1) return FALSE;
int count = parent->children().count();
- if (count>1 && i==0)
+ if (count>1 && i==0) // first node
{
if (nodes.at(i+1)->kind()==DocNode::Kind_SimpleSectSep)
{
return TRUE;
}
}
- else if (count>1 && i==count-1)
+ else if (count>1 && i==count-1) // last node
{
if (nodes.at(i-1)->kind()==DocNode::Kind_SimpleSectSep)
{
return TRUE;
}
}
- else if (count>2 && i>0 && i<count-1)
+ else if (count>2 && i>0 && i<count-1) // intermediate node
{
if (nodes.at(i-1)->kind()==DocNode::Kind_SimpleSectSep &&
nodes.at(i+1)->kind()==DocNode::Kind_SimpleSectSep)
@@ -863,9 +865,58 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
{
switch (p->parent()->kind())
{
+ case DocNode::Kind_ParBlock:
+ { // hierarchy: node N -> para -> parblock -> para
+ // adapt return value to kind of N
+ DocNode::Kind kind = DocNode::Kind_Para;
+ if ( p->parent()->parent() && p->parent()->parent()->parent() )
+ {
+ kind = p->parent()->parent()->parent()->kind();
+ }
+ isFirst=isFirstChildNode((DocParBlock*)p->parent(),p);
+ isLast =isLastChildNode ((DocParBlock*)p->parent(),p);
+ t=0;
+ if (isFirst)
+ {
+ if (kind==DocNode::Kind_HtmlListItem ||
+ kind==DocNode::Kind_SecRefItem)
+ {
+ t=1;
+ }
+ else if (kind==DocNode::Kind_HtmlDescData ||
+ kind==DocNode::Kind_XRefItem ||
+ kind==DocNode::Kind_SimpleSect)
+ {
+ t=2;
+ }
+ else if (kind==DocNode::Kind_HtmlCell ||
+ kind==DocNode::Kind_ParamList)
+ {
+ t=5;
+ }
+ }
+ if (isLast)
+ {
+ if (kind==DocNode::Kind_HtmlListItem ||
+ kind==DocNode::Kind_SecRefItem)
+ {
+ t=3;
+ }
+ else if (kind==DocNode::Kind_HtmlDescData ||
+ kind==DocNode::Kind_XRefItem ||
+ kind==DocNode::Kind_SimpleSect)
+ {
+ t=4;
+ }
+ else if (kind==DocNode::Kind_HtmlCell ||
+ kind==DocNode::Kind_ParamList)
+ {
+ t=6;
+ }
+ }
+ break;
+ }
case DocNode::Kind_AutoListItem:
- //isFirst=TRUE;
- //isLast =TRUE;
isFirst=isFirstChildNode((DocAutoListItem*)p->parent(),p);
isLast =isLastChildNode ((DocAutoListItem*)p->parent(),p);
t=1; // not used
@@ -904,12 +955,6 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
if (isFirst) t=2;
if (isLast) t=4;
break;
- case DocNode::Kind_HtmlCell:
- isFirst=isFirstChildNode((DocHtmlCell*)p->parent(),p);
- isLast =isLastChildNode ((DocHtmlCell*)p->parent(),p);
- if (isFirst) t=5;
- if (isLast) t=6;
- break;
case DocNode::Kind_SimpleSect:
isFirst=isFirstChildNode((DocSimpleSect*)p->parent(),p);
isLast =isLastChildNode ((DocSimpleSect*)p->parent(),p);
@@ -923,6 +968,12 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
isFirst=isLast=TRUE;
}
break;
+ case DocNode::Kind_HtmlCell:
+ isFirst=isFirstChildNode((DocHtmlCell*)p->parent(),p);
+ isLast =isLastChildNode ((DocHtmlCell*)p->parent(),p);
+ if (isFirst) t=5;
+ if (isLast) t=6;
+ break;
default:
break;
}
@@ -955,6 +1006,7 @@ void HtmlDocVisitor::visitPre(DocPara *p)
case DocNode::Kind_XRefItem:
case DocNode::Kind_Copy:
case DocNode::Kind_HtmlBlockQuote:
+ case DocNode::Kind_ParBlock:
needsTag = TRUE;
break;
case DocNode::Kind_Root:
@@ -1028,6 +1080,7 @@ void HtmlDocVisitor::visitPost(DocPara *p)
case DocNode::Kind_XRefItem:
case DocNode::Kind_Copy:
case DocNode::Kind_HtmlBlockQuote:
+ case DocNode::Kind_ParBlock:
needsTag = TRUE;
break;
case DocNode::Kind_Root:
@@ -1811,6 +1864,18 @@ void HtmlDocVisitor::visitPost(DocVhdlFlow *vf)
}
}
+void HtmlDocVisitor::visitPre(DocParBlock *)
+{
+ if (m_hide) return;
+}
+
+void HtmlDocVisitor::visitPost(DocParBlock *)
+{
+ if (m_hide) return;
+}
+
+
+
void HtmlDocVisitor::filter(const char *str)
{
if (str==0) return;
diff --git a/src/htmldocvisitor.h b/src/htmldocvisitor.h
index 9ba236b..f84ebb2 100644
--- a/src/htmldocvisitor.h
+++ b/src/htmldocvisitor.h
@@ -132,6 +132,8 @@ class HtmlDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
private:
diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp
index 19e6903..e9cf23a 100644
--- a/src/latexdocvisitor.cpp
+++ b/src/latexdocvisitor.cpp
@@ -1577,6 +1577,16 @@ void LatexDocVisitor::visitPost(DocVhdlFlow *)
if (m_hide) return;
}
+void LatexDocVisitor::visitPre(DocParBlock *)
+{
+ if (m_hide) return;
+}
+
+void LatexDocVisitor::visitPost(DocParBlock *)
+{
+ if (m_hide) return;
+}
+
void LatexDocVisitor::filter(const char *str)
{
filterLatexString(m_t,str,m_insideTabbing,m_insidePre,m_insideItem);
diff --git a/src/latexdocvisitor.h b/src/latexdocvisitor.h
index 3fea33c..13217cf 100644
--- a/src/latexdocvisitor.h
+++ b/src/latexdocvisitor.h
@@ -134,6 +134,8 @@ class LatexDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
private:
diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp
index 18f93bb..8ff7f54 100644
--- a/src/mandocvisitor.cpp
+++ b/src/mandocvisitor.cpp
@@ -1002,6 +1002,14 @@ void ManDocVisitor::visitPost(DocVhdlFlow *)
{
}
+void ManDocVisitor::visitPre(DocParBlock *)
+{
+}
+
+void ManDocVisitor::visitPost(DocParBlock *)
+{
+}
+
void ManDocVisitor::filter(const char *str)
{
diff --git a/src/mandocvisitor.h b/src/mandocvisitor.h
index cc4e85f..e34add2 100644
--- a/src/mandocvisitor.h
+++ b/src/mandocvisitor.h
@@ -133,6 +133,8 @@ class ManDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
private:
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index 9257df0..4f555ce 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -390,6 +390,8 @@ public:
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
private:
@@ -1405,6 +1407,15 @@ void PerlModDocVisitor::visitPost(DocVhdlFlow *)
{
}
+void PerlModDocVisitor::visitPre(DocParBlock *)
+{
+}
+
+void PerlModDocVisitor::visitPost(DocParBlock *)
+{
+}
+
+
static void addTemplateArgumentList(ArgumentList *al,PerlModOutput &output,const char *)
{
QCString indentStr;
diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h
index dc28d26..765a835 100644
--- a/src/printdocvisitor.h
+++ b/src/printdocvisitor.h
@@ -761,6 +761,16 @@ class PrintDocVisitor : public DocVisitor
indent_post();
printf("</vhdlflow>\n");
}
+ void visitPre(DocParBlock *)
+ {
+ indent_pre();
+ printf("<parblock>\n");
+ }
+ void visitPost(DocParBlock *)
+ {
+ indent_post();
+ printf("</parblock>\n");
+ }
private:
// helper functions
diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp
index 9489145..3cf6a5e 100644
--- a/src/rtfdocvisitor.cpp
+++ b/src/rtfdocvisitor.cpp
@@ -1686,6 +1686,16 @@ void RTFDocVisitor::visitPost(DocVhdlFlow *)
if (m_hide) return;
}
+void RTFDocVisitor::visitPre(DocParBlock *)
+{
+ if (m_hide) return;
+}
+
+void RTFDocVisitor::visitPost(DocParBlock *)
+{
+ if (m_hide) return;
+}
+
//static char* getMultiByte(int c)
//{
diff --git a/src/rtfdocvisitor.h b/src/rtfdocvisitor.h
index eb841e5..243268b 100644
--- a/src/rtfdocvisitor.h
+++ b/src/rtfdocvisitor.h
@@ -131,6 +131,8 @@ class RTFDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
private:
diff --git a/src/textdocvisitor.h b/src/textdocvisitor.h
index 81fd9e8..743f69a 100644
--- a/src/textdocvisitor.h
+++ b/src/textdocvisitor.h
@@ -130,6 +130,8 @@ class TextDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *) {}
void visitPre(DocVhdlFlow *) {}
void visitPost(DocVhdlFlow *) {}
+ void visitPre(DocParBlock *) {}
+ void visitPost(DocParBlock *) {}
private:
diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp
index d9b5df9..0c4b4d2 100644
--- a/src/xmldocvisitor.cpp
+++ b/src/xmldocvisitor.cpp
@@ -1068,6 +1068,19 @@ void XmlDocVisitor::visitPost(DocVhdlFlow *)
{
}
+void XmlDocVisitor::visitPre(DocParBlock *)
+{
+ if (m_hide) return;
+ m_t << "<parblock>";
+}
+
+void XmlDocVisitor::visitPost(DocParBlock *)
+{
+ if (m_hide) return;
+ m_t << "</parblock>";
+}
+
+
void XmlDocVisitor::filter(const char *str)
{
m_t << convertToXML(str);
diff --git a/src/xmldocvisitor.h b/src/xmldocvisitor.h
index 42290cc..0d0eac9 100644
--- a/src/xmldocvisitor.h
+++ b/src/xmldocvisitor.h
@@ -135,6 +135,8 @@ class XmlDocVisitor : public DocVisitor
void visitPost(DocHtmlBlockQuote *);
void visitPre(DocVhdlFlow *);
void visitPost(DocVhdlFlow *);
+ void visitPre(DocParBlock *);
+ void visitPost(DocParBlock *);
private: