summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/classdef.cpp6
-rw-r--r--src/cmdmapper.cpp2
-rw-r--r--src/cmdmapper.h2
-rw-r--r--src/commentscan.l351
-rw-r--r--src/config.xml2
-rw-r--r--src/docbookvisitor.cpp2
-rw-r--r--src/docparser.cpp84
-rw-r--r--src/docparser.h4
-rw-r--r--src/doctokenizer.h1
-rw-r--r--src/doctokenizer.l26
-rw-r--r--src/doxygen.cpp22
-rw-r--r--src/entry.h15
-rw-r--r--src/fortrancode.l18
-rw-r--r--src/htmldocvisitor.cpp111
-rw-r--r--src/htmlgen.cpp21
-rw-r--r--src/htmlgen.h7
-rw-r--r--src/latexdocvisitor.cpp8
-rw-r--r--src/latexgen.cpp16
-rw-r--r--src/latexgen.h4
-rw-r--r--src/mandocvisitor.cpp7
-rw-r--r--src/mangen.cpp27
-rw-r--r--src/mangen.h9
-rw-r--r--src/markdown.cpp10
-rw-r--r--src/memberdef.cpp21
-rw-r--r--src/outputgen.h8
-rw-r--r--src/outputlist.h9
-rw-r--r--src/pagedef.cpp11
-rw-r--r--src/pagedef.h3
-rw-r--r--src/perlmodgen.cpp4
-rw-r--r--src/plantuml.cpp2
-rw-r--r--src/printdocvisitor.h6
-rw-r--r--src/pycode.l4
-rw-r--r--src/pyscanner.l4
-rw-r--r--src/qhp.cpp12
-rw-r--r--src/rtfdocvisitor.cpp6
-rw-r--r--src/rtfgen.cpp21
-rw-r--r--src/rtfgen.h4
-rw-r--r--src/tagreader.cpp58
-rw-r--r--src/tclscanner.l119
-rw-r--r--src/util.cpp8
-rw-r--r--src/vhdlcode.l31
-rw-r--r--src/vhdldocgen.cpp68
-rw-r--r--src/vhdljjparser.cpp14
-rw-r--r--src/vhdljjparser.h3
-rw-r--r--src/xmldocvisitor.cpp8
45 files changed, 682 insertions, 497 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 657968e..52aa96b 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -1013,13 +1013,13 @@ void ClassDef::writeDetailedDocumentationBody(OutputList &ol)
// write examples
if (hasExamples() && m_impl->exampleSDict)
{
- ol.startSimpleSect(BaseOutputDocInterface::Examples,0,0,theTranslator->trExamples()+": ");
+ ol.startExamples();
ol.startDescForItem();
//ol.startParagraph();
writeExample(ol,m_impl->exampleSDict);
//ol.endParagraph();
ol.endDescForItem();
- ol.endSimpleSect();
+ ol.endExamples();
}
//ol.newParagraph();
writeSourceDef(ol,name());
@@ -1223,7 +1223,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol)
}
}
else if (Config_getBool(CLASS_DIAGRAMS) && count>0)
- // write class diagram using build-in generator
+ // write class diagram using built-in generator
{
ClassDiagram diagram(this); // create a diagram of this class.
ol.startClassDiagram();
diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp
index 2c8effc..71da3f3 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -193,6 +193,8 @@ CommandMap htmlTagMap[] =
{ "span", HTML_SPAN },
{ "div", HTML_DIV },
{ "blockquote", HTML_BLOCKQUOTE },
+ { "strike", HTML_STRIKE },
+ { "u", HTML_UNDERLINE },
{ "c", XML_C },
// { "code", XML_CODE }, <= ambiguous <code> is also a HTML tag
diff --git a/src/cmdmapper.h b/src/cmdmapper.h
index 8cb529d..d06de63 100644
--- a/src/cmdmapper.h
+++ b/src/cmdmapper.h
@@ -175,6 +175,8 @@ enum HtmlTagType
HTML_SPAN = 31,
HTML_DIV = 32,
HTML_BLOCKQUOTE= 33,
+ HTML_STRIKE = 34,
+ HTML_UNDERLINE = 35,
XML_CmdMask = 0x100,
diff --git a/src/commentscan.l b/src/commentscan.l
index e40d80f..159f256 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -30,8 +30,7 @@
#include <qstack.h>
#include <qregexp.h>
#include <qfile.h>
-#include <qstringlist.h>
-
+#include <qcstringlist.h>
#include "scanner.h"
#include "entry.h"
#include "doxygen.h"
@@ -55,81 +54,81 @@
#define YY_NO_UNISTD_H 1
// forward declarations
-static bool handleBrief(const QCString &, const QCString &);
-static bool handleFn(const QCString &, const QCString &);
-static bool handleDef(const QCString &, const QCString &);
-static bool handleOverload(const QCString &, const QCString &);
-static bool handleEnum(const QCString &, const QCString &);
-static bool handleDefGroup(const QCString &, const QCString &);
-static bool handleAddToGroup(const QCString &, const QCString &);
-static bool handleWeakGroup(const QCString &, const QCString &);
-static bool handleNamespace(const QCString &, const QCString &);
-static bool handlePackage(const QCString &, const QCString &);
-static bool handleClass(const QCString &, const QCString &);
-static bool handleHeaderFile(const QCString &, const QCString &);
-static bool handleProtocol(const QCString &, const QCString &);
-static bool handleCategory(const QCString &, const QCString &);
-static bool handleUnion(const QCString &, const QCString &);
-static bool handleStruct(const QCString &, const QCString &);
-static bool handleInterface(const QCString &, const QCString &);
-static bool handleIdlException(const QCString &, const QCString &);
-static bool handlePage(const QCString &, const QCString &);
-static bool handleMainpage(const QCString &, const QCString &);
-static bool handleFile(const QCString &, const QCString &);
-static bool handleDir(const QCString &, const QCString &);
-static bool handleExample(const QCString &, const QCString &);
-static bool handleDetails(const QCString &, const QCString &);
-static bool handleName(const QCString &, const QCString &);
-static bool handleTodo(const QCString &, const QCString &);
-static bool handleTest(const QCString &, const QCString &);
-static bool handleBug(const QCString &, const QCString &);
-static bool handleSubpage(const QCString &s, const QCString &);
-static bool handleDeprecated(const QCString &, const QCString &);
-static bool handleXRefItem(const QCString &, const QCString &);
-static bool handleRelated(const QCString &, const QCString &);
-static bool handleRelatedAlso(const QCString &, const QCString &);
-static bool handleMemberOf(const QCString &, const QCString &);
-static bool handleRefItem(const QCString &, const QCString &);
-static bool handleSection(const QCString &, const QCString &);
-static bool handleAnchor(const QCString &, const QCString &);
-static bool handleCite(const QCString &, const QCString &);
-static bool handleFormatBlock(const QCString &, const QCString &);
-static bool handleAddIndex(const QCString &, const QCString &);
-static bool handleIf(const QCString &, const QCString &);
-static bool handleIfNot(const QCString &, const QCString &);
-static bool handleElseIf(const QCString &, const QCString &);
-static bool handleElse(const QCString &, const QCString &);
-static bool handleEndIf(const QCString &, const QCString &);
-static bool handleIngroup(const QCString &, const QCString &);
-static bool handleNoSubGrouping(const QCString &, const QCString &);
-static bool handleShowInitializer(const QCString &, const QCString &);
-static bool handleHideInitializer(const QCString &, const QCString &);
-static bool handleCallgraph(const QCString &, const QCString &);
-static bool handleHideCallgraph(const QCString &, const QCString &);
-static bool handleCallergraph(const QCString &, const QCString &);
-static bool handleHideCallergraph(const QCString &, const QCString &);
-static bool handleInternal(const QCString &, const QCString &);
-static bool handleLineBr(const QCString &, const QCString &);
-static bool handleStatic(const QCString &, const QCString &);
-static bool handlePure(const QCString &, const QCString &);
-static bool handlePrivate(const QCString &, const QCString &);
-static bool handlePrivateSection(const QCString &, const QCString &);
-static bool handleProtected(const QCString &, const QCString &);
-static bool handleProtectedSection(const QCString &, const QCString &);
-static bool handlePublic(const QCString &s, const QCString &);
-static bool handlePublicSection(const QCString &s, const QCString &);
-static bool handleToc(const QCString &s, const QCString &);
-static bool handleInherit(const QCString &, const QCString &);
-static bool handleExtends(const QCString &, const QCString &);
-static bool handleCopyDoc(const QCString &, const QCString &);
-static bool handleCopyBrief(const QCString &, const QCString &);
-static bool handleCopyDetails(const QCString &, const QCString &);
-static bool handleParBlock(const QCString &, const QCString &);
-static bool handleEndParBlock(const QCString &, const QCString &);
-static bool handleParam(const QCString &, const QCString &);
-static bool handleRetval(const QCString &, const QCString &);
-
-typedef bool (*DocCmdFunc)(const QCString &name, const QCString &opt);
+static bool handleBrief(const QCString &, const QCStringList &);
+static bool handleFn(const QCString &, const QCStringList &);
+static bool handleDef(const QCString &, const QCStringList &);
+static bool handleOverload(const QCString &, const QCStringList &);
+static bool handleEnum(const QCString &, const QCStringList &);
+static bool handleDefGroup(const QCString &, const QCStringList &);
+static bool handleAddToGroup(const QCString &, const QCStringList &);
+static bool handleWeakGroup(const QCString &, const QCStringList &);
+static bool handleNamespace(const QCString &, const QCStringList &);
+static bool handlePackage(const QCString &, const QCStringList &);
+static bool handleClass(const QCString &, const QCStringList &);
+static bool handleHeaderFile(const QCString &, const QCStringList &);
+static bool handleProtocol(const QCString &, const QCStringList &);
+static bool handleCategory(const QCString &, const QCStringList &);
+static bool handleUnion(const QCString &, const QCStringList &);
+static bool handleStruct(const QCString &, const QCStringList &);
+static bool handleInterface(const QCString &, const QCStringList &);
+static bool handleIdlException(const QCString &, const QCStringList &);
+static bool handlePage(const QCString &, const QCStringList &);
+static bool handleMainpage(const QCString &, const QCStringList &);
+static bool handleFile(const QCString &, const QCStringList &);
+static bool handleDir(const QCString &, const QCStringList &);
+static bool handleExample(const QCString &, const QCStringList &);
+static bool handleDetails(const QCString &, const QCStringList &);
+static bool handleName(const QCString &, const QCStringList &);
+static bool handleTodo(const QCString &, const QCStringList &);
+static bool handleTest(const QCString &, const QCStringList &);
+static bool handleBug(const QCString &, const QCStringList &);
+static bool handleSubpage(const QCString &s, const QCStringList &);
+static bool handleDeprecated(const QCString &, const QCStringList &);
+static bool handleXRefItem(const QCString &, const QCStringList &);
+static bool handleRelated(const QCString &, const QCStringList &);
+static bool handleRelatedAlso(const QCString &, const QCStringList &);
+static bool handleMemberOf(const QCString &, const QCStringList &);
+static bool handleRefItem(const QCString &, const QCStringList &);
+static bool handleSection(const QCString &, const QCStringList &);
+static bool handleAnchor(const QCString &, const QCStringList &);
+static bool handleCite(const QCString &, const QCStringList &);
+static bool handleFormatBlock(const QCString &, const QCStringList &);
+static bool handleAddIndex(const QCString &, const QCStringList &);
+static bool handleIf(const QCString &, const QCStringList &);
+static bool handleIfNot(const QCString &, const QCStringList &);
+static bool handleElseIf(const QCString &, const QCStringList &);
+static bool handleElse(const QCString &, const QCStringList &);
+static bool handleEndIf(const QCString &, const QCStringList &);
+static bool handleIngroup(const QCString &, const QCStringList &);
+static bool handleNoSubGrouping(const QCString &, const QCStringList &);
+static bool handleShowInitializer(const QCString &, const QCStringList &);
+static bool handleHideInitializer(const QCString &, const QCStringList &);
+static bool handleCallgraph(const QCString &, const QCStringList &);
+static bool handleHideCallgraph(const QCString &, const QCStringList &);
+static bool handleCallergraph(const QCString &, const QCStringList &);
+static bool handleHideCallergraph(const QCString &, const QCStringList &);
+static bool handleInternal(const QCString &, const QCStringList &);
+static bool handleLineBr(const QCString &, const QCStringList &);
+static bool handleStatic(const QCString &, const QCStringList &);
+static bool handlePure(const QCString &, const QCStringList &);
+static bool handlePrivate(const QCString &, const QCStringList &);
+static bool handlePrivateSection(const QCString &, const QCStringList &);
+static bool handleProtected(const QCString &, const QCStringList &);
+static bool handleProtectedSection(const QCString &, const QCStringList &);
+static bool handlePublic(const QCString &s, const QCStringList &);
+static bool handlePublicSection(const QCString &s, const QCStringList &);
+static bool handleToc(const QCString &s, const QCStringList &);
+static bool handleInherit(const QCString &, const QCStringList &);
+static bool handleExtends(const QCString &, const QCStringList &);
+static bool handleCopyDoc(const QCString &, const QCStringList &);
+static bool handleCopyBrief(const QCString &, const QCStringList &);
+static bool handleCopyDetails(const QCString &, const QCStringList &);
+static bool handleParBlock(const QCString &, const QCStringList &);
+static bool handleEndParBlock(const QCString &, const QCStringList &);
+static bool handleParam(const QCString &, const QCStringList &);
+static bool handleRetval(const QCString &, const QCStringList &);
+
+typedef bool (*DocCmdFunc)(const QCString &name, const QCStringList &optList);
struct DocCmdMap
{
@@ -1006,7 +1005,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
* words and whitespace and other characters (#,?!, etc).
* grouping commands (e.g. @{ and @})
* language switch (e.g. \~english or \~).
- * mail address (e.g. dimitri@stack.nl).
+ * mail address (e.g. doxygen@gmail.com).
* quoted text, such as "foo@bar"
* XML commands, <summary></summary><remarks></remarks>
*/
@@ -1106,16 +1105,18 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
// the {B}* in the front was added for bug620924
QCString fullMatch = QCString(yytext);
int idx = fullMatch.find('{');
+ int idxEnd = fullMatch.find("}",idx+1);
QCString cmdName;
- QCString optName;
- if (idx == -1)
+ QCStringList optList;
+ if (idx == -1) // no options
{
cmdName = QCString(yytext).stripWhiteSpace().data()+1; // to remove {CMD}
}
- else
+ else // options present
{
cmdName = fullMatch.left(idx).stripWhiteSpace().data()+1; // to remove {CMD}
- optName = fullMatch.right(fullMatch.length() - idx).stripWhiteSpace().data();
+ QCString optStr = fullMatch.mid(idx+1,idxEnd-idx-1).stripWhiteSpace();
+ optList = QCStringList::split(',',optStr);
}
DocCmdMapper::Cmd *cmdPtr = DocCmdMapper::map(cmdName);
if (cmdPtr) // special action is required
@@ -1130,7 +1131,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
setOutput(OutputDoc);
}
//if (i>0) addOutput(QCString(yytext).left(i)); // removed for bug 689341
- if (cmdPtr->func && cmdPtr->func(cmdName, optName))
+ if (cmdPtr->func && cmdPtr->func(cmdName, optList))
{
// implicit split of the comment block into two
// entries. Restart the next block at the start
@@ -2293,14 +2294,14 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
//----------------------------------------------------------------------------
-static bool handleBrief(const QCString &, const QCString &)
+static bool handleBrief(const QCString &, const QCStringList &)
{
//printf("handleBrief\n");
setOutput(OutputBrief);
return FALSE;
}
-static bool handleFn(const QCString &, const QCString &)
+static bool handleFn(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::MEMBERDOC_SEC);
functionProto.resize(0);
@@ -2309,7 +2310,7 @@ static bool handleFn(const QCString &, const QCString &)
return stop;
}
-static bool handleDef(const QCString &, const QCString &)
+static bool handleDef(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::DEFINEDOC_SEC);
functionProto.resize(0);
@@ -2317,21 +2318,21 @@ static bool handleDef(const QCString &, const QCString &)
return stop;
}
-static bool handleOverload(const QCString &, const QCString &)
+static bool handleOverload(const QCString &, const QCStringList &)
{
functionProto.resize(0);
BEGIN(OverloadParam);
return FALSE;
}
-static bool handleEnum(const QCString &, const QCString &)
+static bool handleEnum(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::ENUMDOC_SEC);
BEGIN(EnumDocArg1);
return stop;
}
-static bool handleDefGroup(const QCString &, const QCString &)
+static bool handleDefGroup(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::GROUPDOC_SEC);
current->groupDocType = Entry::GROUPDOC_NORMAL;
@@ -2339,7 +2340,7 @@ static bool handleDefGroup(const QCString &, const QCString &)
return stop;
}
-static bool handleAddToGroup(const QCString &, const QCString &)
+static bool handleAddToGroup(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::GROUPDOC_SEC);
current->groupDocType = Entry::GROUPDOC_ADD;
@@ -2347,7 +2348,7 @@ static bool handleAddToGroup(const QCString &, const QCString &)
return stop;
}
-static bool handleWeakGroup(const QCString &, const QCString &)
+static bool handleWeakGroup(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::GROUPDOC_SEC);
current->groupDocType = Entry::GROUPDOC_WEAK;
@@ -2355,83 +2356,83 @@ static bool handleWeakGroup(const QCString &, const QCString &)
return stop;
}
-static bool handleNamespace(const QCString &, const QCString &)
+static bool handleNamespace(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::NAMESPACEDOC_SEC);
BEGIN( NameSpaceDocArg1 );
return stop;
}
-static bool handlePackage(const QCString &, const QCString &)
+static bool handlePackage(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::PACKAGEDOC_SEC);
BEGIN( PackageDocArg1 );
return stop;
}
-static bool handleClass(const QCString &, const QCString &)
+static bool handleClass(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::CLASSDOC_SEC);
BEGIN( ClassDocArg1 );
return stop;
}
-static bool handleHeaderFile(const QCString &, const QCString &)
+static bool handleHeaderFile(const QCString &, const QCStringList &)
{
BEGIN( ClassDocArg2 );
return FALSE;
}
-static bool handleProtocol(const QCString &, const QCString &)
+static bool handleProtocol(const QCString &, const QCStringList &)
{ // Obj-C protocol
bool stop=makeStructuralIndicator(Entry::PROTOCOLDOC_SEC);
BEGIN( ClassDocArg1 );
return stop;
}
-static bool handleCategory(const QCString &, const QCString &)
+static bool handleCategory(const QCString &, const QCStringList &)
{ // Obj-C category
bool stop=makeStructuralIndicator(Entry::CATEGORYDOC_SEC);
BEGIN( CategoryDocArg1 );
return stop;
}
-static bool handleUnion(const QCString &, const QCString &)
+static bool handleUnion(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::UNIONDOC_SEC);
BEGIN( ClassDocArg1 );
return stop;
}
-static bool handleStruct(const QCString &, const QCString &)
+static bool handleStruct(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::STRUCTDOC_SEC);
BEGIN( ClassDocArg1 );
return stop;
}
-static bool handleInterface(const QCString &, const QCString &)
+static bool handleInterface(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::INTERFACEDOC_SEC);
BEGIN( ClassDocArg1 );
return stop;
}
-static bool handleIdlException(const QCString &, const QCString &)
+static bool handleIdlException(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::EXCEPTIONDOC_SEC);
BEGIN( ClassDocArg1 );
return stop;
}
-static bool handlePage(const QCString &, const QCString &)
+static bool handlePage(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::PAGEDOC_SEC);
BEGIN( PageDocArg1 );
return stop;
}
-static bool handleMainpage(const QCString &, const QCString &)
+static bool handleMainpage(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::MAINPAGEDOC_SEC);
if (!stop)
@@ -2442,7 +2443,7 @@ static bool handleMainpage(const QCString &, const QCString &)
return stop;
}
-static bool handleFile(const QCString &, const QCString &)
+static bool handleFile(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::FILEDOC_SEC);
if (!stop)
@@ -2453,7 +2454,7 @@ static bool handleFile(const QCString &, const QCString &)
return stop;
}
-static bool handleParam(const QCString &, const QCString &)
+static bool handleParam(const QCString &, const QCStringList &)
{
// we need process param and retval arguments to escape leading underscores in case of
// markdown processing, see bug775493
@@ -2462,14 +2463,14 @@ static bool handleParam(const QCString &, const QCString &)
return FALSE;
}
-static bool handleRetval(const QCString &, const QCString &)
+static bool handleRetval(const QCString &, const QCStringList &)
{
addOutput("@retval ");
BEGIN( ParamArg1 );
return FALSE;
}
-static bool handleDir(const QCString &, const QCString &)
+static bool handleDir(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::DIRDOC_SEC);
if (!stop) current->name = yyFileName;
@@ -2477,15 +2478,30 @@ static bool handleDir(const QCString &, const QCString &)
return stop;
}
-static bool handleExample(const QCString &, const QCString &)
+static bool handleExample(const QCString &cmd, const QCStringList &optList)
{
- bool stop=makeStructuralIndicator(Entry::EXAMPLE_SEC);
+ Entry::Sections section=Entry::EXAMPLE_SEC;
+ QCStringList::ConstIterator it;
+ for ( it = optList.begin(); it != optList.end(); ++it )
+ {
+ QCString opt = (*it).stripWhiteSpace().lower();
+ if (opt=="lineno")
+ {
+ section=Entry::EXAMPLE_LINENO_SEC;
+ }
+ else
+ {
+ warn(yyFileName,yyLineNr,
+ "unsupported option '%s' for command '\\%s'",qPrint(opt),qPrint(cmd));
+ }
+ }
+ bool stop=makeStructuralIndicator(section);
if (!stop) current->name = yyFileName;
BEGIN( FileDocArg1 );
return stop;
}
-static bool handleDetails(const QCString &, const QCString &)
+static bool handleDetails(const QCString &, const QCStringList &)
{
if (inContext!=OutputBrief)
{
@@ -2496,7 +2512,7 @@ static bool handleDetails(const QCString &, const QCString &)
return FALSE;
}
-static bool handleName(const QCString &, const QCString &)
+static bool handleName(const QCString &, const QCStringList &)
{
bool stop=makeStructuralIndicator(Entry::MEMBERGRP_SEC);
if (!stop)
@@ -2511,7 +2527,7 @@ static bool handleName(const QCString &, const QCString &)
return stop;
}
-static bool handleTodo(const QCString &, const QCString &)
+static bool handleTodo(const QCString &, const QCStringList &)
{
newXRefKind = XRef_Todo;
setOutput(OutputXRef);
@@ -2519,7 +2535,7 @@ static bool handleTodo(const QCString &, const QCString &)
return FALSE;
}
-static bool handleTest(const QCString &, const QCString &)
+static bool handleTest(const QCString &, const QCStringList &)
{
newXRefKind = XRef_Test;
setOutput(OutputXRef);
@@ -2527,7 +2543,7 @@ static bool handleTest(const QCString &, const QCString &)
return FALSE;
}
-static bool handleBug(const QCString &, const QCString &)
+static bool handleBug(const QCString &, const QCStringList &)
{
newXRefKind = XRef_Bug;
setOutput(OutputXRef);
@@ -2535,7 +2551,7 @@ static bool handleBug(const QCString &, const QCString &)
return FALSE;
}
-static bool handleDeprecated(const QCString &, const QCString &)
+static bool handleDeprecated(const QCString &, const QCStringList &)
{
newXRefKind = XRef_Deprecated;
setOutput(OutputXRef);
@@ -2543,14 +2559,14 @@ static bool handleDeprecated(const QCString &, const QCString &)
return FALSE;
}
-static bool handleXRefItem(const QCString &, const QCString &)
+static bool handleXRefItem(const QCString &, const QCStringList &)
{
newXRefKind = XRef_Item;
BEGIN(XRefItemParam1);
return FALSE;
}
-static bool handleParBlock(const QCString &, const QCString &)
+static bool handleParBlock(const QCString &, const QCStringList &)
{
if (g_insideParBlock)
{
@@ -2567,7 +2583,7 @@ static bool handleParBlock(const QCString &, const QCString &)
return FALSE;
}
-static bool handleEndParBlock(const QCString &, const QCString &)
+static bool handleEndParBlock(const QCString &, const QCStringList &)
{
if (!g_insideParBlock)
{
@@ -2580,7 +2596,7 @@ static bool handleEndParBlock(const QCString &, const QCString &)
return FALSE;
}
-static bool handleRelated(const QCString &, const QCString &)
+static bool handleRelated(const QCString &, const QCStringList &)
{
if (!current->relates.isEmpty())
{
@@ -2592,7 +2608,7 @@ static bool handleRelated(const QCString &, const QCString &)
return FALSE;
}
-static bool handleRelatedAlso(const QCString &, const QCString &)
+static bool handleRelatedAlso(const QCString &, const QCStringList &)
{
if (!current->relates.isEmpty())
{
@@ -2604,7 +2620,7 @@ static bool handleRelatedAlso(const QCString &, const QCString &)
return FALSE;
}
-static bool handleMemberOf(const QCString &, const QCString &)
+static bool handleMemberOf(const QCString &, const QCStringList &)
{
if (!current->relates.isEmpty())
{
@@ -2616,14 +2632,14 @@ static bool handleMemberOf(const QCString &, const QCString &)
return FALSE;
}
-static bool handleRefItem(const QCString &, const QCString &)
+static bool handleRefItem(const QCString &, const QCStringList &)
{
addOutput("@refitem ");
BEGIN(LineParam);
return FALSE;
}
-static bool handleSection(const QCString &s, const QCString &)
+static bool handleSection(const QCString &s, const QCStringList &)
{
setOutput(OutputDoc);
addOutput("@"+s+" ");
@@ -2635,7 +2651,7 @@ static bool handleSection(const QCString &s, const QCString &)
return FALSE;
}
-static bool handleSubpage(const QCString &s, const QCString &)
+static bool handleSubpage(const QCString &s, const QCStringList &)
{
if (current->section!=Entry::EMPTY_SEC &&
current->section!=Entry::PAGEDOC_SEC &&
@@ -2655,14 +2671,14 @@ static bool handleSubpage(const QCString &s, const QCString &)
return FALSE;
}
-static bool handleAnchor(const QCString &s, const QCString &)
+static bool handleAnchor(const QCString &s, const QCStringList &)
{
addOutput("@"+s+" ");
BEGIN(AnchorLabel);
return FALSE;
}
-static bool handleCite(const QCString &s, const QCString &)
+static bool handleCite(const QCString &s, const QCStringList &)
{
if (!g_spaceBeforeCmd.isEmpty())
{
@@ -2674,9 +2690,16 @@ static bool handleCite(const QCString &s, const QCString &)
return FALSE;
}
-static bool handleFormatBlock(const QCString &s, const QCString &opt)
+static bool handleFormatBlock(const QCString &s, const QCStringList &optList)
{
- addOutput("@"+s+" "+opt);
+ if (optList.isEmpty())
+ {
+ addOutput("@"+s+" ");
+ }
+ else
+ {
+ addOutput("@"+s+"{"+optList.join(",")+"} ");
+ }
//printf("handleFormatBlock(%s) with option(%s)\n",s.data(),opt.data());
blockName=s;
g_commentCount=0;
@@ -2684,14 +2707,14 @@ static bool handleFormatBlock(const QCString &s, const QCString &opt)
return FALSE;
}
-static bool handleAddIndex(const QCString &, const QCString &)
+static bool handleAddIndex(const QCString &, const QCStringList &)
{
addOutput("@addindex ");
BEGIN(LineParam);
return FALSE;
}
-static bool handleIf(const QCString &, const QCString &)
+static bool handleIf(const QCString &, const QCStringList &)
{
enabledSectionFound=FALSE;
guardType = Guard_If;
@@ -2700,7 +2723,7 @@ static bool handleIf(const QCString &, const QCString &)
return FALSE;
}
-static bool handleIfNot(const QCString &, const QCString &)
+static bool handleIfNot(const QCString &, const QCStringList &)
{
enabledSectionFound=FALSE;
guardType = Guard_IfNot;
@@ -2709,7 +2732,7 @@ static bool handleIfNot(const QCString &, const QCString &)
return FALSE;
}
-static bool handleElseIf(const QCString &, const QCString &)
+static bool handleElseIf(const QCString &, const QCStringList &)
{
if (guards.isEmpty())
{
@@ -2724,7 +2747,7 @@ static bool handleElseIf(const QCString &, const QCString &)
return FALSE;
}
-static bool handleElse(const QCString &, const QCString &)
+static bool handleElse(const QCString &, const QCStringList &)
{
if (guards.isEmpty())
{
@@ -2738,7 +2761,7 @@ static bool handleElse(const QCString &, const QCString &)
return FALSE;
}
-static bool handleEndIf(const QCString &, const QCString &)
+static bool handleEndIf(const QCString &, const QCStringList &)
{
if (guards.isEmpty())
{
@@ -2759,56 +2782,56 @@ static bool handleEndIf(const QCString &, const QCString &)
return FALSE;
}
-static bool handleIngroup(const QCString &, const QCString &)
+static bool handleIngroup(const QCString &, const QCStringList &)
{
inGroupParamFound=FALSE;
BEGIN( InGroupParam );
return FALSE;
}
-static bool handleNoSubGrouping(const QCString &, const QCString &)
+static bool handleNoSubGrouping(const QCString &, const QCStringList &)
{
current->subGrouping = FALSE;
return FALSE;
}
-static bool handleShowInitializer(const QCString &, const QCString &)
+static bool handleShowInitializer(const QCString &, const QCStringList &)
{
current->initLines = 100000; // ON
return FALSE;
}
-static bool handleHideInitializer(const QCString &, const QCString &)
+static bool handleHideInitializer(const QCString &, const QCStringList &)
{
current->initLines = 0; // OFF
return FALSE;
}
-static bool handleCallgraph(const QCString &, const QCString &)
+static bool handleCallgraph(const QCString &, const QCStringList &)
{
current->callGraph = TRUE; // ON
return FALSE;
}
-static bool handleHideCallgraph(const QCString &, const QCString &)
+static bool handleHideCallgraph(const QCString &, const QCStringList &)
{
current->callGraph = FALSE; // OFF
return FALSE;
}
-static bool handleCallergraph(const QCString &, const QCString &)
+static bool handleCallergraph(const QCString &, const QCStringList &)
{
current->callerGraph = TRUE; // ON
return FALSE;
}
-static bool handleHideCallergraph(const QCString &, const QCString &)
+static bool handleHideCallergraph(const QCString &, const QCStringList &)
{
current->callerGraph = FALSE; // OFF
return FALSE;
}
-static bool handleInternal(const QCString &, const QCString &)
+static bool handleInternal(const QCString &, const QCStringList &)
{
if (!Config_getBool(INTERNAL_DOCS))
{
@@ -2830,74 +2853,71 @@ static bool handleInternal(const QCString &, const QCString &)
return FALSE;
}
-static bool handleLineBr(const QCString &, const QCString &)
+static bool handleLineBr(const QCString &, const QCStringList &)
{
addOutput('\n');
return FALSE;
}
-static bool handleStatic(const QCString &, const QCString &)
+static bool handleStatic(const QCString &, const QCStringList &)
{
endBrief();
current->stat = TRUE;
return FALSE;
}
-static bool handlePure(const QCString &, const QCString &)
+static bool handlePure(const QCString &, const QCStringList &)
{
endBrief();
current->virt = Pure;
return FALSE;
}
-static bool handlePrivate(const QCString &, const QCString &)
+static bool handlePrivate(const QCString &, const QCStringList &)
{
current->protection = Private;
return FALSE;
}
-static bool handlePrivateSection(const QCString &, const QCString &)
+static bool handlePrivateSection(const QCString &, const QCStringList &)
{
current->protection = protection = Private;
return FALSE;
}
-static bool handleProtected(const QCString &, const QCString &)
+static bool handleProtected(const QCString &, const QCStringList &)
{
current->protection = Protected;
return FALSE;
}
-static bool handleProtectedSection(const QCString &, const QCString &)
+static bool handleProtectedSection(const QCString &, const QCStringList &)
{
current->protection = protection = Protected ;
return FALSE;
}
-static bool handlePublic(const QCString &, const QCString &)
+static bool handlePublic(const QCString &, const QCStringList &)
{
current->protection = Public;
return FALSE;
}
-static bool handlePublicSection(const QCString &, const QCString &)
+static bool handlePublicSection(const QCString &, const QCStringList &)
{
current->protection = protection = Public;
return FALSE;
}
-static bool handleToc(const QCString &, const QCString &opt)
+static bool handleToc(const QCString &, const QCStringList &optList)
{
if (current->section==Entry::PAGEDOC_SEC ||
current->section==Entry::MAINPAGEDOC_SEC)
{
- QString optName = opt.stripWhiteSpace(); // to be sure
- optName = optName.left(optName.length() - 1).right(optName.length() - 2);
- QStringList optList=QStringList::split(",",optName,FALSE);
- QStringList::Iterator it;
+ QCStringList::ConstIterator it;
for ( it = optList.begin(); it != optList.end(); ++it )
{
- QString opt = (*it).stripWhiteSpace().lower();
+ QCString opt = (*it).stripWhiteSpace().lower();
char dum;
int level = 5;
int i = opt.find(':');
@@ -2929,7 +2949,10 @@ static bool handleToc(const QCString &, const QCString &opt)
{
current->localToc.enableXml(level);
}
- else warn(yyFileName,yyLineNr,"Unknown option specified with \\tableofcontents: `%s'", (*it).stripWhiteSpace().data());
+ else
+ {
+ warn(yyFileName,yyLineNr,"Unknown option specified with \\tableofcontents: `%s'", (*it).stripWhiteSpace().data());
+ }
}
}
if (current->localToc.nothingEnabled())
@@ -2940,19 +2963,19 @@ static bool handleToc(const QCString &, const QCString &opt)
return FALSE;
}
-static bool handleInherit(const QCString &, const QCString &)
+static bool handleInherit(const QCString &, const QCStringList &)
{
BEGIN(InheritParam);
return FALSE;
}
-static bool handleExtends(const QCString &, const QCString &)
+static bool handleExtends(const QCString &, const QCStringList &)
{
BEGIN(ExtendsParam);
return FALSE;
}
-static bool handleCopyBrief(const QCString &, const QCString &)
+static bool handleCopyBrief(const QCString &, const QCStringList &)
{
if (current->brief.isEmpty() && current->doc.isEmpty())
{ // if we don't have a brief or detailed description yet,
@@ -2969,7 +2992,7 @@ static bool handleCopyBrief(const QCString &, const QCString &)
return FALSE;
}
-static bool handleCopyDetails(const QCString &, const QCString &)
+static bool handleCopyDetails(const QCString &, const QCStringList &)
{
setOutput(OutputDoc);
if (!g_spaceBeforeCmd.isEmpty())
@@ -2981,7 +3004,7 @@ static bool handleCopyDetails(const QCString &, const QCString &)
return FALSE;
}
-static bool handleCopyDoc(const QCString &, const QCString &)
+static bool handleCopyDoc(const QCString &, const QCStringList &)
{
setOutput(OutputBrief);
if (!g_spaceBeforeCmd.isEmpty())
diff --git a/src/config.xml b/src/config.xml
index 2e0f430..e12141c 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -110,7 +110,7 @@ SEARCHENGINE = NO
\endverbatim
To generate the documentation for the
-<a href="http://www.stack.nl/~dimitri/qdbttabular/index.html">QdbtTabular</a> package
+<a href="https://sourceforge.net/projects/qdbttabular/">QdbtTabular</a> package
I have used the following configuration file:
\verbatim
PROJECT_NAME = QdbtTabular
diff --git a/src/docbookvisitor.cpp b/src/docbookvisitor.cpp
index ab10da0..b83317c 100644
--- a/src/docbookvisitor.cpp
+++ b/src/docbookvisitor.cpp
@@ -196,6 +196,8 @@ void DocbookDocVisitor::visit(DocStyleChange *s)
/* There is no equivalent Docbook tag for rendering Small text */
case DocStyleChange::Small: /* XSLT Stylesheets can be used */ break;
/* HTML only */
+ case DocStyleChange::Strike: break;
+ case DocStyleChange::Underline: break;
case DocStyleChange::Div: /* HTML only */ break;
case DocStyleChange::Span: /* HTML only */ break;
}
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 0cb4ea3..b39b80e 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -26,6 +26,7 @@
#include <qdict.h>
#include <qregexp.h>
#include <ctype.h>
+#include <qcstringlist.h>
#include "doxygen.h"
#include "debug.h"
@@ -146,6 +147,9 @@ struct DocParserContext
static QStack<DocParserContext> g_parserStack;
//---------------------------------------------------------------------------
+static void handleImg(DocNode *parent,QList<DocNode> &children,const HtmlAttribList &tagHtmlAttribs);
+
+//---------------------------------------------------------------------------
static void docParserPushContext(bool saveParamInfo=TRUE)
{
//QCString indent;
@@ -1047,16 +1051,18 @@ const char *DocStyleChange::styleString() const
{
switch (m_style)
{
- case DocStyleChange::Bold: return "b";
- case DocStyleChange::Italic: return "em";
- case DocStyleChange::Code: return "code";
- case DocStyleChange::Center: return "center";
- case DocStyleChange::Small: return "small";
- case DocStyleChange::Subscript: return "subscript";
- case DocStyleChange::Superscript: return "superscript";
- case DocStyleChange::Preformatted: return "pre";
+ case DocStyleChange::Bold: return "b";
+ case DocStyleChange::Italic: return "em";
+ case DocStyleChange::Code: return "code";
+ case DocStyleChange::Center: return "center";
+ case DocStyleChange::Small: return "small";
+ case DocStyleChange::Subscript: return "subscript";
+ case DocStyleChange::Superscript: return "superscript";
+ case DocStyleChange::Preformatted: return "pre";
case DocStyleChange::Div: return "div";
case DocStyleChange::Span: return "span";
+ case DocStyleChange::Strike: return "strike";
+ case DocStyleChange::Underline: return "u";
}
return "<invalid>";
}
@@ -1582,6 +1588,26 @@ reparsetoken:
handleStyleLeave(parent,children,DocStyleChange::Bold,tokenName);
}
break;
+ case HTML_STRIKE:
+ if (!g_token->endTag)
+ {
+ handleStyleEnter(parent,children,DocStyleChange::Strike,&g_token->attribs);
+ }
+ else
+ {
+ handleStyleLeave(parent,children,DocStyleChange::Strike,tokenName);
+ }
+ break;
+ case HTML_UNDERLINE:
+ if (!g_token->endTag)
+ {
+ handleStyleEnter(parent,children,DocStyleChange::Underline,&g_token->attribs);
+ }
+ else
+ {
+ handleStyleLeave(parent,children,DocStyleChange::Underline,tokenName);
+ }
+ break;
case HTML_CODE:
case XML_C:
if (!g_token->endTag)
@@ -1643,6 +1669,10 @@ reparsetoken:
handleStyleLeave(parent,children,DocStyleChange::Small,tokenName);
}
break;
+ case HTML_IMG:
+ if (!g_token->endTag)
+ handleImg(parent,children,g_token->attribs);
+ break;
default:
return FALSE;
break;
@@ -5197,7 +5227,31 @@ void DocPara::handleInclude(const QCString &cmdName,DocInclude::Type t)
{
DBG(("handleInclude(%s)\n",qPrint(cmdName)));
int tok=doctokenizerYYlex();
- if (tok!=TK_WHITESPACE)
+ if (tok==TK_WORD && g_token->name=="{")
+ {
+ doctokenizerYYsetStateOptions();
+ tok=doctokenizerYYlex();
+ doctokenizerYYsetStatePara();
+ QCStringList optList=QCStringList::split(",",g_token->name);
+ if (t==DocInclude::Include && optList.contains("lineno"))
+ {
+ t = DocInclude::IncWithLines;
+ }
+ else if (t==DocInclude::Snippet && optList.contains("lineno"))
+ {
+ t = DocInclude::SnipWithLines;
+ }
+ else if (t==DocInclude::Include && optList.contains("doc"))
+ {
+ t = DocInclude::IncludeDoc;
+ }
+ else if (t==DocInclude::Snippet && optList.contains("doc"))
+ {
+ t = DocInclude::SnippetDoc;
+ }
+ tok=doctokenizerYYlex();
+ }
+ else if (tok!=TK_WHITESPACE)
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"expected whitespace after %s command",
qPrint(cmdName));
@@ -5906,6 +5960,12 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
case HTML_BOLD:
handleStyleEnter(this,m_children,DocStyleChange::Bold,&g_token->attribs);
break;
+ case HTML_STRIKE:
+ handleStyleEnter(this,m_children,DocStyleChange::Strike,&g_token->attribs);
+ break;
+ case HTML_UNDERLINE:
+ handleStyleEnter(this,m_children,DocStyleChange::Underline,&g_token->attribs);
+ break;
case HTML_CODE:
if (/*getLanguageFromFileName(g_fileName)==SrcLangExt_CSharp ||*/ g_xmlComment)
// for C# source or inside a <summary> or <remark> section we
@@ -6315,6 +6375,12 @@ int DocPara::handleHtmlEndTag(const QCString &tagName)
case HTML_BOLD:
handleStyleLeave(this,m_children,DocStyleChange::Bold,"b");
break;
+ case HTML_STRIKE:
+ handleStyleLeave(this,m_children,DocStyleChange::Strike,"strike");
+ break;
+ case HTML_UNDERLINE:
+ handleStyleLeave(this,m_children,DocStyleChange::Underline,"u");
+ break;
case HTML_CODE:
handleStyleLeave(this,m_children,DocStyleChange::Code,"code");
break;
diff --git a/src/docparser.h b/src/docparser.h
index d7390c2..6b75426 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -367,7 +367,9 @@ class DocStyleChange : public DocNode
Superscript = (1<<6),
Preformatted = (1<<7),
Span = (1<<8),
- Div = (1<<9)
+ Div = (1<<9),
+ Strike = (1<<10),
+ Underline = (1<<11)
};
DocStyleChange(DocNode *parent,uint position,Style s,bool enable,
diff --git a/src/doctokenizer.h b/src/doctokenizer.h
index eb39906..b3b9fa5 100644
--- a/src/doctokenizer.h
+++ b/src/doctokenizer.h
@@ -163,5 +163,6 @@ void doctokenizerYYendAutoList();
void doctokenizerYYsetStatePlantUML();
void doctokenizerYYsetStateSetScope();
void doctokenizerYYsetStatePlantUMLOpt();
+void doctokenizerYYsetStateOptions();
#endif
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index e6b8865..3118cfd 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -388,14 +388,14 @@ LNKWORD3 ([0-9a-z_A-Z\-]+("/"|"\\"))*[0-9a-z_A-Z\-]+("."[0-9a-z_A-Z]+)+
CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."=']
ESCWORD ("%"{ID}(("::"|"."){ID})*)|("%'")
CHARWORDQ1 [^ \-+0-9\t\n\r\\@<>()\[\]:;\?{}&%$#,."=']
-WORD1 {ESCWORD}|{CHARWORDQ1}+|"{"|"}"|"'\"'"|("\""[^"\n]*\n?[^"\n]*"\"")
+WORD1 {ESCWORD}|{CHARWORDQ1}{CHARWORDQ}*|"{"|"}"|"'\"'"|("\""[^"\n]*\n?[^"\n]*"\"")
WORD2 "."|","|"("|")"|"["|"]"|":"|";"|"\?"|"="|"'"
WORD1NQ {ESCWORD}|{CHARWORDQ}+|"{"|"}"
WORD2NQ "."|","|"("|")"|"["|"]"|":"|";"|"\?"|"="|"'"
CAPTION [cC][aA][pP][tT][iI][oO][nN]
HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*{WS}*(("/")?)">"
-HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"sup"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"
-HTMLKEYU "STRONG"|"CENTER"|"TABLE"|"CAPTION"|"SMALL"|"CODE"|"DFN"|"VAR"|"IMG"|"PRE"|"SUB"|"SUP"|"TR"|"TD"|"TH"|"OL"|"UL"|"LI"|"TT"|"KBD"|"EM"|"HR"|"DL"|"DT"|"DD"|"BR"|"I"|"A"|"B"|"P"
+HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"sup"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"|"strike"|"u"
+HTMLKEYU "STRONG"|"CENTER"|"TABLE"|"CAPTION"|"SMALL"|"CODE"|"DFN"|"VAR"|"IMG"|"PRE"|"SUB"|"SUP"|"TR"|"TD"|"TH"|"OL"|"UL"|"LI"|"TT"|"KBD"|"EM"|"HR"|"DL"|"DT"|"DD"|"BR"|"I"|"A"|"B"|"P"|"STRIKE"|"U"
HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
REFWORD2_PRE ("#"|"::")?((({ID}{TEMPLPART}?)|{ANONNS})("."|"#"|"::"|"-"|"/"))*({ID}{TEMPLPART}?(":")?)
REFWORD2 {REFWORD2_PRE}{FUNCARG2}?
@@ -447,6 +447,7 @@ REFWORD_NOCV {LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
%x St_Snippet
%x St_SetScope
%x St_SetScopeEnd
+%x St_Options
%x St_Sections
%s St_SecLabel1
@@ -658,7 +659,8 @@ REFWORD_NOCV {LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
g_token->text = tagName.mid(text_begin,text_end-text_begin);
return TK_RCSTAG;
}
-<St_Para,St_HtmlOnly>"$("{ID}")" { /* environment variable */
+<St_Para,St_HtmlOnly,St_ManOnly,St_LatexOnly,St_RtfOnly,St_XmlOnly,St_DbOnly>"$("{ID}")" | /* environment variable */
+<St_Para,St_HtmlOnly,St_ManOnly,St_LatexOnly,St_RtfOnly,St_XmlOnly,St_DbOnly>"$("{ID}"("{ID}"))" { /* environment variable */
QCString name = &yytext[2];
name = name.left(name.length()-1);
QCString value = portable_getenv(name);
@@ -1147,6 +1149,16 @@ REFWORD_NOCV {LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
g_token->chars=yytext;
return TK_WHITESPACE;
}
+<St_Options>{ID} {
+ g_token->name+=yytext;
+ }
+<St_Options>{WS}*","{WS}*
+<St_Options>{WS} { /* option separator */
+ g_token->name+=",";
+ }
+<St_Options>"}" {
+ return TK_WORD;
+ }
<St_File>{FILEMASK} {
g_token->name = yytext;
return TK_WORD;
@@ -1509,6 +1521,12 @@ void doctokenizerYYsetStateSetScope()
BEGIN(St_SetScope);
}
+void doctokenizerYYsetStateOptions()
+{
+ g_token->name="";
+ BEGIN(St_Options);
+}
+
void doctokenizerYYcleanup()
{
yy_delete_buffer( YY_CURRENT_BUFFER );
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 68b49c2..bf93a9b 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -8926,7 +8926,7 @@ static void generatePageDocs()
static void buildExampleList(EntryNav *rootNav)
{
- if (rootNav->section()==Entry::EXAMPLE_SEC && !rootNav->name().isEmpty())
+ if ((rootNav->section()==Entry::EXAMPLE_SEC || rootNav->section()==Entry::EXAMPLE_LINENO_SEC) && !rootNav->name().isEmpty())
{
rootNav->loadEntry(g_storage);
Entry *root = rootNav->entry();
@@ -8947,7 +8947,7 @@ static void buildExampleList(EntryNav *rootNav)
pd->setFileName(convertNameToFile(pd->name()+"-example",FALSE,TRUE));
pd->addSectionsToDefinition(root->anchors);
pd->setLanguage(root->lang);
- //pi->addSections(root->anchors);
+ pd->setShowLineNo(rootNav->section()==Entry::EXAMPLE_LINENO_SEC);
Doxygen::exampleSDict->inSort(root->name,pd);
//we don't add example to groups
@@ -8996,11 +8996,16 @@ static void generateExampleDocs()
g_outputList->docify(pd->name());
endTitle(*g_outputList,n,0);
g_outputList->startContents();
+ QCString lineNoOptStr;
+ if (pd->showLineNo())
+ {
+ lineNoOptStr="{lineno}";
+ }
g_outputList->generateDoc(pd->docFile(), // file
pd->docLine(), // startLine
pd, // context
0, // memberDef
- pd->documentation()+"\n\n\\include "+pd->name(), // docs
+ pd->documentation()+"\n\n\\include"+lineNoOptStr+" "+pd->name(), // docs
TRUE, // index words
TRUE, // is example
pd->name()
@@ -10207,7 +10212,6 @@ void readConfiguration(int argc, char **argv)
bool genConfig=FALSE;
bool shortList=FALSE;
bool updateConfig=FALSE;
- bool genLayout=FALSE;
int retVal;
while (optind<argc && argv[optind][0]=='-' &&
(isalpha(argv[optind][1]) || argv[optind][1]=='?' ||
@@ -10220,10 +10224,12 @@ void readConfiguration(int argc, char **argv)
genConfig=TRUE;
break;
case 'l':
- genLayout=TRUE;
layoutName=getArg(argc,argv,optind);
if (!layoutName)
{ layoutName="DoxygenLayout.xml"; }
+ writeDefaultLayoutFile(layoutName);
+ cleanUpDoxygen();
+ exit(0);
break;
case 'd':
debugLabel=getArg(argc,argv,optind);
@@ -10505,12 +10511,6 @@ void readConfiguration(int argc, char **argv)
cleanUpDoxygen();
exit(0);
}
- if (genLayout)
- {
- writeDefaultLayoutFile(layoutName);
- cleanUpDoxygen();
- exit(0);
- }
if (!Config::parse(configName,updateConfig))
{
diff --git a/src/entry.h b/src/entry.h
index fac3831..739b128 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -91,14 +91,14 @@ class Entry
ENUMDOC_SEC = 0x01000000,
ENUM_SEC = 0x02000000,
- EMPTY_SEC = 0x03000000,
- PAGEDOC_SEC = 0x04000000,
+ EMPTY_SEC = 0x03000000,
+ PAGEDOC_SEC = 0x04000000,
VARIABLE_SEC = 0x05000000,
FUNCTION_SEC = 0x06000000,
TYPEDEF_SEC = 0x07000000,
- MEMBERDOC_SEC = 0x08000000,
+ MEMBERDOC_SEC = 0x08000000,
OVERLOADDOC_SEC = 0x09000000,
- EXAMPLE_SEC = 0x0a000000,
+ EXAMPLE_SEC = 0x0a000000,
VARIABLEDOC_SEC = 0x0b000000,
FILEDOC_SEC = 0x0c000000,
DEFINEDOC_SEC = 0x0d000000,
@@ -112,9 +112,10 @@ class Entry
PACKAGE_SEC = 0x15000000,
PACKAGEDOC_SEC = 0x16000000,
OBJCIMPL_SEC = 0x17000000,
- DIRDOC_SEC = 0x18000000
- ,EXPORTED_INTERFACE_SEC = 0x19000000
- ,INCLUDED_SERVICE_SEC = 0x1A000000
+ DIRDOC_SEC = 0x18000000,
+ EXPORTED_INTERFACE_SEC = 0x19000000,
+ INCLUDED_SERVICE_SEC = 0x1A000000,
+ EXAMPLE_LINENO_SEC = 0x1B000000,
};
// class specifiers (add new items to the end)
diff --git a/src/fortrancode.l b/src/fortrancode.l
index 3c1829d..3014dc3 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -37,7 +37,7 @@
#include <ctype.h>
#include <qregexp.h>
#include <qdir.h>
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include "entry.h"
#include "doxygen.h"
#include "message.h"
@@ -86,7 +86,7 @@ class UseEntry
{
public:
QCString module; // just for debug
- QStringList onlyNames; /* entries of the ONLY-part */
+ QCStringList onlyNames; /* entries of the ONLY-part */
};
/**
@@ -105,7 +105,7 @@ class UseSDict : public SDict<UseEntry>
class Scope
{
public:
- QStringList useNames; //!< contains names of used modules
+ QCStringList useNames; //!< contains names of used modules
QDict<void> localVars; //!< contains names of local variables
Scope() : localVars(7, FALSE /*caseSensitive*/) {}
@@ -122,7 +122,7 @@ static QCString currentClass=0; //!< name of the current enclosing
static UseSDict *useMembers= new UseSDict; //!< info about used modules
static UseEntry *useEntry = 0; //!< current use statement info
static QList<Scope> scopeStack;
-// static QStringList *currentUseNames= new QStringList; //! contains names of used modules of current program unit
+// static QCStringList *currentUseNames= new QCStringList; //! contains names of used modules of current program unit
static QCString str=""; //!> contents of fortran string
static CodeOutputInterface * g_code;
@@ -478,7 +478,7 @@ static bool getFortranDefs(const QCString &memberName, const QCString &moduleNam
if (ue)
{
// check if only-list exists and if current entry exists is this list
- QStringList &only= ue->onlyNames;
+ QCStringList &only= ue->onlyNames;
if (only.isEmpty())
{
//cout << " found in module " << moduleName << " entry " << memberName << endl;
@@ -486,10 +486,10 @@ static bool getFortranDefs(const QCString &memberName, const QCString &moduleNam
}
else
{
- for ( QStringList::Iterator it = only.begin(); it != only.end(); ++it)
+ for ( QCStringList::Iterator it = only.begin(); it != only.end(); ++it)
{
//cout << " search in only: " << moduleName << ":: " << memberName << "==" << (*it)<< endl;
- if (memberName == (*it).utf8())
+ if (memberName == *it)
{
return TRUE; // found in ONLY-part of use list
}
@@ -632,9 +632,9 @@ static void endScope()
Scope *scope = scopeStack.getLast();
scopeStack.removeLast();
- for ( QStringList::Iterator it = scope->useNames.begin(); it != scope->useNames.end(); ++it)
+ for ( QCStringList::Iterator it = scope->useNames.begin(); it != scope->useNames.end(); ++it)
{
- useMembers->remove((*it).utf8());
+ useMembers->remove(*it);
}
delete scope;
}
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index 6a9c142..6e0c62d 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -38,6 +38,31 @@
static const int NUM_HTML_LIST_TYPES = 4;
static const char types[][NUM_HTML_LIST_TYPES] = {"1", "a", "i", "A"};
+enum contexts_t
+{
+ NONE, // 0
+ STARTLI, // 1
+ STARTDD, // 2
+ ENDLI, // 3
+ ENDDD, // 4
+ STARTTD, // 5
+ ENDTD, // 6
+ INTERLI, // 7
+ INTERDD, // 8
+ INTERTD // 9
+};
+static const char *contexts[10] =
+{ "", // 0
+ "startli", // 1
+ "startdd", // 2
+ "endli", // 3
+ "enddd", // 4
+ "starttd", // 5
+ "endtd", // 6
+ "interli", // 7
+ "interdd", // 8
+ "intertd" // 9
+};
static QCString convertIndexWordToAnchor(const QString &word)
{
@@ -271,6 +296,12 @@ void HtmlDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Bold:
if (s->enable()) m_t << "<b" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</b>";
break;
+ case DocStyleChange::Strike:
+ if (s->enable()) m_t << "<strike" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</strike>";
+ break;
+ case DocStyleChange::Underline:
+ if (s->enable()) m_t << "<u" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</u>";
+ break;
case DocStyleChange::Italic:
if (s->enable()) m_t << "<em" << htmlAttribsToString(s->attribs()) << ">"; else m_t << "</em>";
break;
@@ -887,24 +918,24 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
}
isFirst=isFirstChildNode((DocParBlock*)p->parent(),p);
isLast =isLastChildNode ((DocParBlock*)p->parent(),p);
- t=0;
+ t=NONE;
if (isFirst)
{
if (kind==DocNode::Kind_HtmlListItem ||
kind==DocNode::Kind_SecRefItem)
{
- t=1;
+ t=STARTLI;
}
else if (kind==DocNode::Kind_HtmlDescData ||
kind==DocNode::Kind_XRefItem ||
kind==DocNode::Kind_SimpleSect)
{
- t=2;
+ t=STARTDD;
}
else if (kind==DocNode::Kind_HtmlCell ||
kind==DocNode::Kind_ParamList)
{
- t=5;
+ t=STARTTD;
}
}
if (isLast)
@@ -912,18 +943,37 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
if (kind==DocNode::Kind_HtmlListItem ||
kind==DocNode::Kind_SecRefItem)
{
- t=3;
+ t=ENDLI;
+ }
+ else if (kind==DocNode::Kind_HtmlDescData ||
+ kind==DocNode::Kind_XRefItem ||
+ kind==DocNode::Kind_SimpleSect)
+ {
+ t=ENDDD;
+ }
+ else if (kind==DocNode::Kind_HtmlCell ||
+ kind==DocNode::Kind_ParamList)
+ {
+ t=ENDTD;
+ }
+ }
+ if (!isFirst && !isLast)
+ {
+ if (kind==DocNode::Kind_HtmlListItem ||
+ kind==DocNode::Kind_SecRefItem)
+ {
+ t=INTERLI;
}
else if (kind==DocNode::Kind_HtmlDescData ||
kind==DocNode::Kind_XRefItem ||
kind==DocNode::Kind_SimpleSect)
{
- t=4;
+ t=INTERDD;
}
else if (kind==DocNode::Kind_HtmlCell ||
kind==DocNode::Kind_ParamList)
{
- t=6;
+ t=INTERTD;
}
}
break;
@@ -931,47 +981,51 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
case DocNode::Kind_AutoListItem:
isFirst=isFirstChildNode((DocAutoListItem*)p->parent(),p);
isLast =isLastChildNode ((DocAutoListItem*)p->parent(),p);
- t=1; // not used
+ t=STARTLI; // not used
break;
case DocNode::Kind_SimpleListItem:
isFirst=TRUE;
isLast =TRUE;
- t=1; // not used
+ t=STARTLI; // not used
break;
case DocNode::Kind_ParamList:
isFirst=TRUE;
isLast =TRUE;
- t=1; // not used
+ t=STARTLI; // not used
break;
case DocNode::Kind_HtmlListItem:
isFirst=isFirstChildNode((DocHtmlListItem*)p->parent(),p);
isLast =isLastChildNode ((DocHtmlListItem*)p->parent(),p);
- if (isFirst) t=1;
- if (isLast) t=3;
+ if (isFirst) t=STARTLI;
+ if (isLast) t=ENDLI;
+ if (!isFirst && !isLast) t = INTERLI;
break;
case DocNode::Kind_SecRefItem:
isFirst=isFirstChildNode((DocSecRefItem*)p->parent(),p);
isLast =isLastChildNode ((DocSecRefItem*)p->parent(),p);
- if (isFirst) t=1;
- if (isLast) t=3;
+ if (isFirst) t=STARTLI;
+ if (isLast) t=ENDLI;
+ if (!isFirst && !isLast) t = INTERLI;
break;
case DocNode::Kind_HtmlDescData:
isFirst=isFirstChildNode((DocHtmlDescData*)p->parent(),p);
isLast =isLastChildNode ((DocHtmlDescData*)p->parent(),p);
- if (isFirst) t=2;
- if (isLast) t=4;
+ if (isFirst) t=STARTDD;
+ if (isLast) t=ENDDD;
+ if (!isFirst && !isLast) t = INTERDD;
break;
case DocNode::Kind_XRefItem:
isFirst=isFirstChildNode((DocXRefItem*)p->parent(),p);
isLast =isLastChildNode ((DocXRefItem*)p->parent(),p);
- if (isFirst) t=2;
- if (isLast) t=4;
+ if (isFirst) t=STARTDD;
+ if (isLast) t=ENDDD;
+ if (!isFirst && !isLast) t = INTERDD;
break;
case DocNode::Kind_SimpleSect:
isFirst=isFirstChildNode((DocSimpleSect*)p->parent(),p);
isLast =isLastChildNode ((DocSimpleSect*)p->parent(),p);
- if (isFirst) t=2;
- if (isLast) t=4;
+ if (isFirst) t=STARTDD;
+ if (isLast) t=ENDDD;
if (isSeparatedParagraph((DocSimpleSect*)p->parent(),p))
// if the paragraph is enclosed with separators it will
// be included in <dd>..</dd> so avoid addition paragraph
@@ -979,12 +1033,14 @@ static int getParagraphContext(DocPara *p,bool &isFirst,bool &isLast)
{
isFirst=isLast=TRUE;
}
+ if (!isFirst && !isLast) t = INTERDD;
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;
+ if (isFirst) t=STARTTD;
+ if (isLast) t=ENDTD;
+ if (!isFirst && !isLast) t = INTERTD;
break;
default:
break;
@@ -1052,19 +1108,10 @@ void HtmlDocVisitor::visitPre(DocPara *p)
}
}
- // check if this paragraph is the first or last child of a <li> or <dd>.
+ // check if this paragraph is the first or last or intermediate child of a <li> or <dd>.
// this allows us to mark the tag with a special class so we can
// fix the otherwise ugly spacing.
int t;
- static const char *contexts[7] =
- { "", // 0
- "startli", // 1
- "startdd", // 2
- "endli", // 3
- "enddd", // 4
- "starttd", // 5
- "endtd" // 6
- };
bool isFirst;
bool isLast;
t = getParagraphContext(p,isFirst,isLast);
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 87bc10a..ee23fb8 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -1943,25 +1943,16 @@ void HtmlGenerator::endDescTableData()
t << "</td>";
}
-void HtmlGenerator::startSimpleSect(SectionTypes,
- const char *filename,const char *anchor,
- const char *title)
+void HtmlGenerator::startExamples()
{
- t << "<dl><dt><b>";
- if (filename)
- {
- writeObjectLink(0,filename,anchor,title);
- }
- else
- {
- docify(title);
- }
- t << "</b></dt>";
+ t << "<dl class=\"section examples\"><dt>";
+ docify(theTranslator->trExamples());
+ t << "</dt>";
}
-void HtmlGenerator::endSimpleSect()
+void HtmlGenerator::endExamples()
{
- t << "</dl>";
+ t << "</dl>" << endl;
}
void HtmlGenerator::startParamList(ParamListTypes,
diff --git a/src/htmlgen.h b/src/htmlgen.h
index 2d8d6e0..221269f 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -246,13 +246,10 @@ class HtmlGenerator : public OutputGenerator
void endCenter() { t << "</center>" << endl; }
void startSmall() { t << "<small>" << endl; }
void endSmall() { t << "</small>" << endl; }
- //void startDescList(SectionTypes) { t << "<dl compact><dt><b>" << endl; }
- //void endDescList() { t << "</dl>"; }
- void startSimpleSect(SectionTypes,const char *,const char *,const char *);
- void endSimpleSect();
+ void startExamples();
+ void endExamples();
void startParamList(ParamListTypes,const char *);
void endParamList();
- //void writeDescItem() { t << "<dd>" << endl; }
void startSection(const char *,const char *,SectionInfo::SectionType);
void endSection(const char *,SectionInfo::SectionType);
void addIndexItem(const char *,const char *);
diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp
index d2c4c5d..c35ef11 100644
--- a/src/latexdocvisitor.cpp
+++ b/src/latexdocvisitor.cpp
@@ -242,7 +242,13 @@ void LatexDocVisitor::visit(DocStyleChange *s)
switch (s->style())
{
case DocStyleChange::Bold:
- if (s->enable()) m_t << "{\\bfseries "; else m_t << "}";
+ if (s->enable()) m_t << "{\\bfseries{"; else m_t << "}}";
+ break;
+ case DocStyleChange::Strike:
+ if (s->enable()) m_t << "\\sout{"; else m_t << "}";
+ break;
+ case DocStyleChange::Underline:
+ if (s->enable()) m_t << "\\uline{"; else m_t << "}";
break;
case DocStyleChange::Italic:
if (s->enable()) m_t << "{\\itshape "; else m_t << "}";
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 474d368..13a88a9 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -2095,22 +2095,14 @@ void LatexGenerator::endDescItem()
}
}
-void LatexGenerator::startSimpleSect(SectionTypes,const char *file,
- const char *anchor,const char *title)
+void LatexGenerator::startExamples()
{
t << "\\begin{Desc}\n\\item[";
- if (file)
- {
- writeObjectLink(0,file,anchor,title);
- }
- else
- {
- docify(title);
- }
+ docify(theTranslator->trExamples());
t << "]";
}
-void LatexGenerator::endSimpleSect()
+void LatexGenerator::endExamples()
{
t << "\\end{Desc}" << endl;
}
@@ -2167,7 +2159,7 @@ void LatexGenerator::endParameterName(bool last,bool /*emptyList*/,bool closeBra
void LatexGenerator::exceptionEntry(const char* prefix,bool closeBracket)
{
if (prefix)
- t << " " << prefix;
+ t << " " << prefix << "(";
else if (closeBracket)
t << ")";
t << " ";
diff --git a/src/latexgen.h b/src/latexgen.h
index 07c4080..1460000 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -235,8 +235,8 @@ class LatexGenerator : public OutputGenerator
const char *,const char *,const char *) {}
void startDescList(SectionTypes) { t << "\\begin{Desc}\n\\item["; }
void endDescList() { t << "\\end{Desc}" << endl; }
- void startSimpleSect(SectionTypes,const char *,const char *,const char *);
- void endSimpleSect();
+ void startExamples();
+ void endExamples();
void startParamList(ParamListTypes,const char *title);
void endParamList();
void startDescForItem() { t << "\\par" << endl; }
diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp
index 2233cc6..e09cc8e 100644
--- a/src/mandocvisitor.cpp
+++ b/src/mandocvisitor.cpp
@@ -120,6 +120,13 @@ void ManDocVisitor::visit(DocStyleChange *s)
if (s->enable()) m_t << "\\fB"; else m_t << "\\fP";
m_firstCol=FALSE;
break;
+ case DocStyleChange::Strike:
+ /* not supported */
+ break;
+ case DocStyleChange::Underline: //underline is shown as emphasis
+ if (s->enable()) m_t << "\\fI"; else m_t << "\\fP";
+ m_firstCol=FALSE;
+ break;
case DocStyleChange::Italic:
if (s->enable()) m_t << "\\fI"; else m_t << "\\fP";
m_firstCol=FALSE;
diff --git a/src/mangen.cpp b/src/mangen.cpp
index d23b2fe..b3ae732 100644
--- a/src/mangen.cpp
+++ b/src/mangen.cpp
@@ -34,7 +34,7 @@
static QCString getExtension()
{
/*
- * [.][nuber][rest]
+ * [.][number][rest]
* in case of . missing, just ignore it
* in case number missing, just place a 3 in front of it
*/
@@ -650,8 +650,25 @@ void ManGenerator::endSection(const char *,SectionInfo::SectionType type)
}
}
-void ManGenerator::startSimpleSect(SectionTypes,const char *,
- const char *,const char *title)
+void ManGenerator::startExamples()
+{
+ if (!firstCol)
+ { t << endl << ".PP" << endl;
+ firstCol=TRUE; paragraph=TRUE;
+ col=0;
+ }
+ paragraph=FALSE;
+ startBold();
+ docify(theTranslator->trExamples());
+ endBold();
+ paragraph=TRUE;
+}
+
+void ManGenerator::endExamples()
+{
+}
+
+void ManGenerator::startDescTable(const char *title)
{
if (!firstCol)
{ t << endl << ".PP" << endl;
@@ -663,10 +680,12 @@ void ManGenerator::startSimpleSect(SectionTypes,const char *,
docify(title);
endBold();
paragraph=TRUE;
+ startDescForItem();
}
-void ManGenerator::endSimpleSect()
+void ManGenerator::endDescTable()
{
+ endDescForItem();
}
void ManGenerator::startParamList(ParamListTypes,const char *title)
diff --git a/src/mangen.h b/src/mangen.h
index 0413ffd..e109355 100644
--- a/src/mangen.h
+++ b/src/mangen.h
@@ -169,8 +169,8 @@ class ManGenerator : public OutputGenerator
const char *,const char *,const char *) {}
void startDescList(SectionTypes);
void endDescList() {}
- void startSimpleSect(SectionTypes,const char *,const char *,const char *);
- void endSimpleSect();
+ void startExamples();
+ void endExamples();
void startParamList(ParamListTypes,const char *title);
void endParamList();
//void writeDescItem();
@@ -197,9 +197,8 @@ class ManGenerator : public OutputGenerator
void endContents() {}
void writeNonBreakableSpace(int n) { int i; for (i=0;i<n;i++) t << " "; }
- void startDescTable(const char *t)
- { startSimpleSect(EnumValues,0,0,t); startDescForItem(); }
- void endDescTable() { endDescForItem(); endSimpleSect(); }
+ void startDescTable(const char *t);
+ void endDescTable();
void startDescTableRow() {}
void endDescTableRow() {}
void startDescTableTitle() { startItemListItem(); startBold(); startEmphasis(); endItemListItem(); }
diff --git a/src/markdown.cpp b/src/markdown.cpp
index 0ca95a4..c19d6db 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -406,7 +406,7 @@ static int processEmphasis2(GrowBuf &out, const char *data, int size, char c)
return 0;
}
-/** Parsing tripple emphasis.
+/** Parsing triple emphasis.
* Finds the first closing tag, and delegates to the other emph
*/
static int processEmphasis3(GrowBuf &out, const char *data, int size, char c)
@@ -1780,22 +1780,20 @@ static int writeTableBlock(GrowBuf &out,const char *data,int size)
QCString cellTag("th"), cellClass("class=\"markdownTableHead");
for (unsigned row = 0; row < tableContents.size(); row++)
{
- out.addStr(" <tr class=\"markdownTable");
if (row)
{
- out.addStr("Body\"");
if (row % 2)
{
- out.addStr(" class=\"markdownTableRowOdd\">\n");
+ out.addStr("<tr class=\"markdownTableRowOdd\">\n");
}
else
{
- out.addStr(" class=\"markdownTableRowEven\">\n");
+ out.addStr("<tr class=\"markdownTableRowEven\">\n");
}
}
else
{
- out.addStr("Head\">\n");
+ out.addStr(" <tr class=\"markdownTableHead\">\n");
}
for (int c = 0; c < columns; c++)
{
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 819904f..c9745ac 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -2309,11 +2309,11 @@ void MemberDef::_writeExamples(OutputList &ol)
// write the list of examples that use this member
if (hasExamples())
{
- ol.startSimpleSect(BaseOutputDocInterface::Examples,0,0,theTranslator->trExamples()+": ");
+ ol.startExamples();
ol.startDescForItem();
writeExample(ol,m_impl->exampleSDict);
ol.endDescForItem();
- ol.endSimpleSect();
+ ol.endExamples();
}
}
@@ -2346,8 +2346,6 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container,
{
if (first)
{
- //ol.startSimpleSect(BaseOutputDocInterface::EnumValues,0,0,theTranslator->trEnumerationValues()+": ");
- //ol.startDescForItem();
ol.startDescTable(theTranslator->trEnumerationValues());
}
@@ -2355,28 +2353,17 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container,
ol.addIndexItem(fmd->name(),ciname);
ol.addIndexItem(ciname,fmd->name());
- //Doxygen::indexList->addIndexItem(
- // ciname, // level1
- // fmd->name(), // level2
- // separateMemPages ? cfname : cfiname, // contRef
- // cfname, // memRef
- // fmd->anchor(), // anchor
- // fmd); // memberdef
Doxygen::indexList->addIndexItem(container,fmd);
- //ol.writeListItem();
ol.startDescTableTitle();
ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString());
first=FALSE;
- //ol.startEmphasis();
ol.docify(fmd->name());
- //ol.endEmphasis();
ol.disableAllBut(OutputGenerator::Man);
ol.writeString(" ");
ol.enableAll();
ol.endDoxyAnchor(cfname,fmd->anchor());
ol.endDescTableTitle();
- //ol.newParagraph();
ol.startDescTableData();
bool hasBrief = !fmd->briefDescription().isEmpty();
@@ -2407,11 +2394,7 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container,
}
if (!first)
{
- //ol.endItemList();
ol.endDescTable();
- //ol.endDescForItem();
- //ol.endSimpleSect();
- //ol.writeChar('\n');
}
}
}
diff --git a/src/outputgen.h b/src/outputgen.h
index 44d34b8..9935bd9 100644
--- a/src/outputgen.h
+++ b/src/outputgen.h
@@ -145,7 +145,8 @@ class BaseOutputDocInterface : public CodeOutputInterface
Since, Date, Bug, Note,
Warning, Par, Deprecated, Pre,
Post, Invar, Remark, Attention,
- Todo, Test, RCS, */ EnumValues,
+ Todo, Test, RCS, */
+ EnumValues,
Examples
};
@@ -279,9 +280,8 @@ class BaseOutputDocInterface : public CodeOutputInterface
virtual void startSmall() = 0;
virtual void endSmall() = 0;
- virtual void startSimpleSect(SectionTypes t,const char *file,
- const char *anchor,const char *title) = 0;
- virtual void endSimpleSect() = 0;
+ virtual void startExamples() = 0;
+ virtual void endExamples() = 0;
virtual void startParamList(ParamListTypes t,const char *title) = 0;
virtual void endParamList() = 0;
diff --git a/src/outputlist.h b/src/outputlist.h
index 2e89101..5fd8017 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -321,11 +321,10 @@ class OutputList : public OutputDocInterface
const char *title,const char *name)
{ forall(&OutputGenerator::writeInheritedSectionTitle,id,ref,
file,anchor,title,name); }
- void startSimpleSect(SectionTypes t,const char *file,const char *anchor,
- const char *title)
- { forall(&OutputGenerator::startSimpleSect,t,file,anchor,title); }
- void endSimpleSect()
- { forall(&OutputGenerator::endSimpleSect); }
+ void startExamples()
+ { forall(&OutputGenerator::startExamples); }
+ void endExamples()
+ { forall(&OutputGenerator::endExamples); }
void startParamList(ParamListTypes t,const char *title)
{ forall(&OutputGenerator::startParamList,t,title); }
void endParamList()
diff --git a/src/pagedef.cpp b/src/pagedef.cpp
index 4721306..d2c3f68 100644
--- a/src/pagedef.cpp
+++ b/src/pagedef.cpp
@@ -35,6 +35,7 @@ PageDef::PageDef(const char *f,int l,const char *n,
m_pageScope = 0;
m_nestingLevel = 0;
m_fileName = ::convertNameToFile(n,FALSE,TRUE);
+ m_showLineNo = FALSE;
}
PageDef::~PageDef()
@@ -329,3 +330,13 @@ void PageDef::setLocalToc(const LocalToc &lt)
{
m_localToc = lt;
}
+
+void PageDef::setShowLineNo(bool b)
+{
+ m_showLineNo = b;
+}
+
+bool PageDef::showLineNo() const
+{
+ return m_showLineNo;
+}
diff --git a/src/pagedef.h b/src/pagedef.h
index 27316cb..a0c3acb 100644
--- a/src/pagedef.h
+++ b/src/pagedef.h
@@ -35,6 +35,7 @@ class PageDef : public Definition
// setters
void setFileName(const char *name);
void setLocalToc(const LocalToc &tl);
+ void setShowLineNo(bool);
// getters
DefType definitionType() const { return TypePage; }
@@ -63,6 +64,7 @@ class PageDef : public Definition
void setPageScope(Definition *d){ m_pageScope = d; }
Definition *getPageScope() const { return m_pageScope; }
QCString displayName(bool=TRUE) const { return !m_title.isEmpty() ? m_title : Definition::name(); }
+ bool showLineNo() const;
void writeDocumentation(OutputList &ol);
void writeTagFile(FTextStream &);
@@ -76,6 +78,7 @@ class PageDef : public Definition
Definition *m_pageScope;
int m_nestingLevel;
LocalToc m_localToc;
+ bool m_showLineNo;
};
class PageSDict : public SDict<PageDef>
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index ef5cbc2..f805383 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -626,6 +626,8 @@ void PerlModDocVisitor::visit(DocStyleChange *s)
switch (s->style())
{
case DocStyleChange::Bold: style = "bold"; break;
+ case DocStyleChange::Strike: style = "strike"; break;
+ case DocStyleChange::Underline: style = "underline"; break;
case DocStyleChange::Italic: style = "italic"; break;
case DocStyleChange::Code: style = "code"; break;
case DocStyleChange::Subscript: style = "subscript"; break;
@@ -1254,6 +1256,7 @@ void PerlModDocVisitor::visitPre(DocParamSect *s)
err("unknown parameter section found\n");
break;
}
+ m_output.openHash();
openOther();
openSubBlock(type);
}
@@ -1262,6 +1265,7 @@ void PerlModDocVisitor::visitPost(DocParamSect *)
{
closeSubBlock();
closeOther();
+ m_output.closeHash();
}
void PerlModDocVisitor::visitPre(DocParamList *pl)
diff --git a/src/plantuml.cpp b/src/plantuml.cpp
index 89e6e9e..ada035b 100644
--- a/src/plantuml.cpp
+++ b/src/plantuml.cpp
@@ -47,7 +47,7 @@ QCString writePlantUMLSource(const QCString &outDir,const QCString &fileName,con
}
QCString text = "@startuml\n";
text+=content;
- text+="@enduml\n";
+ text+="\n@enduml\n";
file.writeBlock( text, text.length() );
file.close();
return baseName;
diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h
index d1dbb74..8d9a2b9 100644
--- a/src/printdocvisitor.h
+++ b/src/printdocvisitor.h
@@ -91,6 +91,12 @@ class PrintDocVisitor : public DocVisitor
case DocStyleChange::Bold:
if (s->enable()) printf("<bold>"); else printf("</bold>");
break;
+ case DocStyleChange::Strike:
+ if (s->enable()) printf("<strike>"); else printf("</strike>");
+ break;
+ case DocStyleChange::Underline:
+ if (s->enable()) printf("<underline>"); else printf("</underline>");
+ break;
case DocStyleChange::Italic:
if (s->enable()) printf("<italic>"); else printf("</italic>");
break;
diff --git a/src/pycode.l b/src/pycode.l
index 1b176d6..dfa383f 100644
--- a/src/pycode.l
+++ b/src/pycode.l
@@ -1311,7 +1311,7 @@ TARGET ({IDENTIFIER}|"("{TARGET_LIST}")"|"["{TARGET_LIST}"]"|{ATTRIBUT
\\. { // espaced char
codify(yytext);
}
- {STRINGPREFIX}?{TRIDOUBLEQUOTE} { // tripple double quotes
+ {STRINGPREFIX}?{TRIDOUBLEQUOTE} { // triple double quotes
codify(yytext);
}
"'" { // end of the string
@@ -1334,7 +1334,7 @@ TARGET ({IDENTIFIER}|"("{TARGET_LIST}")"|"["{TARGET_LIST}"]"|{ATTRIBUT
\\. { // espaced char
codify(yytext);
}
- {STRINGPREFIX}?{TRISINGLEQUOTE} { // tripple single quotes
+ {STRINGPREFIX}?{TRISINGLEQUOTE} { // triple single quotes
codify(yytext);
}
"\"" { // end of the string
diff --git a/src/pyscanner.l b/src/pyscanner.l
index 4718e3b..2adf632 100644
--- a/src/pyscanner.l
+++ b/src/pyscanner.l
@@ -1508,7 +1508,7 @@ STARTDOCSYMS "##"
\\. { // espaced char
addToString(yytext);
}
- "\"\"\"" { // tripple double quotes
+ "\"\"\"" { // triple double quotes
addToString(yytext);
}
"'" { // end of the string
@@ -1531,7 +1531,7 @@ STARTDOCSYMS "##"
\\. { // espaced char
addToString(yytext);
}
- "'''" { // tripple single quotes
+ "'''" { // triple single quotes
addToString(yytext);
}
"\"" { // end of the string
diff --git a/src/qhp.cpp b/src/qhp.cpp
index e7c8d10..6ce6b06 100644
--- a/src/qhp.cpp
+++ b/src/qhp.cpp
@@ -23,7 +23,7 @@
#include "doxygen.h"
#include "filedef.h"
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include <string.h>
#include <qfile.h>
@@ -101,10 +101,10 @@ void Qhp::initialize()
{ "name", filterName, 0 };
m_doc.open("customFilter", tagAttributes);
- QStringList customFilterAttributes = QStringList::split(QChar(' '), Config_getString(QHP_CUST_FILTER_ATTRS));
+ QCStringList customFilterAttributes = QCStringList::split(' ', Config_getString(QHP_CUST_FILTER_ATTRS));
for (int i = 0; i < (int)customFilterAttributes.count(); i++)
{
- m_doc.openCloseContent("filterAttribute", customFilterAttributes[i].utf8());
+ m_doc.openCloseContent("filterAttribute", customFilterAttributes[i]);
}
m_doc.close("customFilter");
}
@@ -112,15 +112,15 @@ void Qhp::initialize()
m_doc.open("filterSection");
// Add section attributes
- QStringList sectionFilterAttributes = QStringList::split(QChar(' '),
+ QCStringList sectionFilterAttributes = QCStringList::split(' ',
Config_getString(QHP_SECT_FILTER_ATTRS));
- if (!sectionFilterAttributes.contains(QString("doxygen")))
+ if (!sectionFilterAttributes.contains("doxygen"))
{
sectionFilterAttributes << "doxygen";
}
for (int i = 0; i < (int)sectionFilterAttributes.count(); i++)
{
- m_doc.openCloseContent("filterAttribute", sectionFilterAttributes[i].utf8());
+ m_doc.openCloseContent("filterAttribute", sectionFilterAttributes[i]);
}
m_toc.open("toc");
diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp
index ec6d015..7fbfdc8 100644
--- a/src/rtfdocvisitor.cpp
+++ b/src/rtfdocvisitor.cpp
@@ -192,6 +192,12 @@ void RTFDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Bold:
if (s->enable()) m_t << "{\\b "; else m_t << "} ";
break;
+ case DocStyleChange::Strike:
+ if (s->enable()) m_t << "{\\strike "; else m_t << "} ";
+ break;
+ case DocStyleChange::Underline:
+ if (s->enable()) m_t << "{\\ul "; else m_t << "} ";
+ break;
case DocStyleChange::Italic:
if (s->enable()) m_t << "{\\i "; else m_t << "} ";
break;
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 64da929..b4a9e65 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2632,7 +2632,7 @@ void testRTFOutput(const char *name)
err:
err("RTF integrity test failed at line %d of %s due to a bracket mismatch.\n"
" Please try to create a small code example that produces this error \n"
- " and send that to dimitri@stack.nl.\n",line,name);
+ " and send that to doxygen@gmail.com.\n",line,name);
}
/**
@@ -2727,21 +2727,14 @@ void RTFGenerator::endMemberGroup(bool hasHeader)
t << "}";
}
-void RTFGenerator::startSimpleSect(SectionTypes,const char *file,const char *anchor,const char *title)
+void RTFGenerator::startExamples()
{
- DBG_RTF(t << "{\\comment (startSimpleSect)}" << endl)
+ DBG_RTF(t << "{\\comment (startExamples)}" << endl)
t << "{"; // ends at endDescList
t << "{"; // ends at endDescTitle
startBold();
newParagraph();
- if (file)
- {
- writeObjectLink(0,file,anchor,title);
- }
- else
- {
- docify(title);
- }
+ docify(theTranslator->trExamples());
endBold();
t << "}";
newParagraph();
@@ -2749,9 +2742,9 @@ void RTFGenerator::startSimpleSect(SectionTypes,const char *file,const char *anc
t << rtf_Style_Reset << rtf_DList_DepthStyle();
}
-void RTFGenerator::endSimpleSect()
+void RTFGenerator::endExamples()
{
- DBG_RTF(t << "{\\comment (endSimpleSect)}" << endl)
+ DBG_RTF(t << "{\\comment (endExamples)}" << endl)
m_omitParagraph = FALSE;
newParagraph();
decrementIndentLevel();
@@ -2802,7 +2795,7 @@ void RTFGenerator::exceptionEntry(const char* prefix,bool closeBracket)
{
DBG_RTF(t << "{\\comment (exceptionEntry)}" << endl)
if (prefix)
- t << " " << prefix;
+ t << " " << prefix << "(";
else if (closeBracket)
t << ")";
t << " ";
diff --git a/src/rtfgen.h b/src/rtfgen.h
index bb3146a..b6b32c7 100644
--- a/src/rtfgen.h
+++ b/src/rtfgen.h
@@ -164,8 +164,8 @@ class RTFGenerator : public OutputGenerator
void writeInheritedSectionTitle(const char *,const char *,const char *,
const char *,const char *,const char *) {}
void startDescList(SectionTypes);
- void startSimpleSect(SectionTypes,const char *,const char *,const char *);
- void endSimpleSect();
+ void startExamples();
+ void endExamples();
void startParamList(ParamListTypes,const char *);
void endParamList();
//void writeDescItem();
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index dfa8511..cf64a35 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -27,7 +27,7 @@
#include <qfileinfo.h>
#include <qlist.h>
#include <qstring.h>
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include "entry.h"
#include "classdef.h"
@@ -105,7 +105,7 @@ class TagClassInfo
QList<BaseInfo> *bases;
QList<TagMemberInfo> members;
QList<QCString> *templateArguments;
- QStringList classList;
+ QCStringList classList;
Kind kind;
bool isObjC;
};
@@ -118,8 +118,8 @@ class TagNamespaceInfo
QCString name;
QCString filename;
QCString clangId;
- QStringList classList;
- QStringList namespaceList;
+ QCStringList classList;
+ QCStringList namespaceList;
TagAnchorInfoList docAnchors;
QList<TagMemberInfo> members;
};
@@ -133,7 +133,7 @@ class TagPackageInfo
QCString filename;
TagAnchorInfoList docAnchors;
QList<TagMemberInfo> members;
- QStringList classList;
+ QCStringList classList;
};
/** Container for include info that can be read from a tagfile */
@@ -157,8 +157,8 @@ class TagFileInfo
QCString filename;
TagAnchorInfoList docAnchors;
QList<TagMemberInfo> members;
- QStringList classList;
- QStringList namespaceList;
+ QCStringList classList;
+ QCStringList namespaceList;
QList<TagIncludeInfo> includes;
};
@@ -172,12 +172,12 @@ class TagGroupInfo
QCString filename;
TagAnchorInfoList docAnchors;
QList<TagMemberInfo> members;
- QStringList subgroupList;
- QStringList classList;
- QStringList namespaceList;
- QStringList fileList;
- QStringList pageList;
- QStringList dirList;
+ QCStringList subgroupList;
+ QCStringList classList;
+ QCStringList namespaceList;
+ QCStringList fileList;
+ QCStringList pageList;
+ QCStringList dirList;
};
/** Container for page specific info that can be read from a tagfile */
@@ -197,8 +197,8 @@ class TagDirInfo
QCString name;
QCString filename;
QCString path;
- QStringList subdirList;
- QStringList fileList;
+ QCStringList subdirList;
+ QCStringList fileList;
TagAnchorInfoList docAnchors;
};
@@ -1009,11 +1009,11 @@ void TagFileParser::dump()
{
msg("namespace `%s'\n",nd->name.data());
msg(" filename `%s'\n",nd->filename.data());
- QStringList::Iterator it;
+ QCStringList::Iterator it;
for ( it = nd->classList.begin();
it != nd->classList.end(); ++it )
{
- msg( " class: %s \n", (*it).latin1() );
+ msg( " class: %s \n", (*it).data() );
}
QListIterator<TagMemberInfo> mci(nd->members);
@@ -1034,16 +1034,16 @@ void TagFileParser::dump()
{
msg("file `%s'\n",fd->name.data());
msg(" filename `%s'\n",fd->filename.data());
- QStringList::Iterator it;
+ QCStringList::Iterator it;
for ( it = fd->namespaceList.begin();
it != fd->namespaceList.end(); ++it )
{
- msg( " namespace: %s \n", (*it).latin1() );
+ msg( " namespace: %s \n", (*it).data() );
}
for ( it = fd->classList.begin();
it != fd->classList.end(); ++it )
{
- msg( " class: %s \n", (*it).latin1() );
+ msg( " class: %s \n", (*it).data() );
}
QListIterator<TagMemberInfo> mci(fd->members);
@@ -1072,31 +1072,31 @@ void TagFileParser::dump()
{
msg("group `%s'\n",gd->name.data());
msg(" filename `%s'\n",gd->filename.data());
- QStringList::Iterator it;
+ QCStringList::Iterator it;
for ( it = gd->namespaceList.begin();
it != gd->namespaceList.end(); ++it )
{
- msg( " namespace: %s \n", (*it).latin1() );
+ msg( " namespace: %s \n", (*it).data() );
}
for ( it = gd->classList.begin();
it != gd->classList.end(); ++it )
{
- msg( " class: %s \n", (*it).latin1() );
+ msg( " class: %s \n", (*it).data() );
}
for ( it = gd->fileList.begin();
it != gd->fileList.end(); ++it )
{
- msg( " file: %s \n", (*it).latin1() );
+ msg( " file: %s \n", (*it).data() );
}
for ( it = gd->subgroupList.begin();
it != gd->subgroupList.end(); ++it )
{
- msg( " subgroup: %s \n", (*it).latin1() );
+ msg( " subgroup: %s \n", (*it).data() );
}
for ( it = gd->pageList.begin();
it != gd->pageList.end(); ++it )
{
- msg( " page: %s \n", (*it).latin1() );
+ msg( " page: %s \n", (*it).data() );
}
QListIterator<TagMemberInfo> mci(gd->members);
@@ -1126,16 +1126,16 @@ void TagFileParser::dump()
{
msg("dir `%s'\n",dd->name.data());
msg(" path `%s'\n",dd->path.data());
- QStringList::Iterator it;
+ QCStringList::Iterator it;
for ( it = dd->fileList.begin();
it != dd->fileList.end(); ++it )
{
- msg( " file: %s \n", (*it).latin1() );
+ msg( " file: %s \n", (*it).data() );
}
for ( it = dd->subdirList.begin();
it != dd->subdirList.end(); ++it )
{
- msg( " subdir: %s \n", (*it).latin1() );
+ msg( " subdir: %s \n", (*it).data() );
}
}
}
diff --git a/src/tclscanner.l b/src/tclscanner.l
index 56d2e3d..7ca5ade 100644
--- a/src/tclscanner.l
+++ b/src/tclscanner.l
@@ -25,7 +25,7 @@
#include <ctype.h>
#include <qstring.h>
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include <qlist.h>
#include <qmap.h>
#include <qarray.h>
@@ -369,7 +369,7 @@ int Tcl_SplitList(
}
// END of tclUtil.c
-void tcl_split_list(QString &str, QStringList &list)
+void tcl_split_list(QCString &str, QCStringList &list)
{
int argc;
const char **argv;
@@ -383,17 +383,20 @@ void tcl_split_list(QString &str, QStringList &list)
{
str=str.mid(1,str.length()-2);
}
- if (Tcl_SplitList(str.ascii(),&argc,&argv) != TCL_OK)
+ if (!str.isEmpty())
{
- list.append(str);
- }
- else
- {
- for (int i = 0; i < argc; i++)
+ if (Tcl_SplitList(str,&argc,&argv) != TCL_OK)
{
- list.append(argv[i]);
+ list.append(str);
+ }
+ else
+ {
+ for (int i = 0; i < argc; i++)
+ {
+ list.append(argv[i]);
+ }
+ ckfree((char *) argv);
}
- ckfree((char *) argv);
}
}
@@ -409,7 +412,7 @@ typedef struct
Entry *entry_cl; // if set contain the current class
Entry *entry_scan; // current scan entry
Protection protection; // current protections state
- QStringList after; // option/value list (options: NULL comment keyword script)
+ QCStringList after; // option/value list (options: NULL comment keyword script)
} tcl_scan;
//* Structure containing all internal global variables.
@@ -446,7 +449,7 @@ static struct
Entry* entry_file; // entry of current file
Entry* entry_current; // currently used entry
Entry* entry_inside; // contain entry of current scan context
- QStringList list_commandwords; // list of command words
+ QCStringList list_commandwords; // list of command words
QList<tcl_scan> scan; // stack of scan contexts
QAsciiDict<Entry> ns; // all read namespace entries
QAsciiDict<Entry> cl; // all read class entries
@@ -602,7 +605,7 @@ Entry* tcl_entry_class(const QCString cl)
// @return 1 if keyword and 0 otherwise
static int tcl_keyword(QCString str)
{
- static QStringList myList;
+ static QCStringList myList;
static int myInit=1;
if (myInit)
{
@@ -639,7 +642,7 @@ static int tcl_keyword(QCString str)
myList <<"tkerror"<<"tkwait"<<"tk_bisque"<<"tk_focusNext"<<"tk_focusPrev"<<"tk_focusFollowsMouse"<<"tk_popup"<<"tk_setPalette"<<"tk_textCut"<<"tk_TextCopy"<<"tk_textPaste"<<"chooseColor"<<"tk_chooseColor"<<"tk_chooseDirectory"<<"tk_dialog"<<"tk_getOpenFile"<<"tkDialog"<<"tk_getSaveFile"<<"tk_messageBox";
myList <<"winfo"<<"wm";
myList <<"button"<<"canvas"<<"checkbutton"<<"entry"<<"frame"<<"image"<<"label"<<"labelframe"<<"listbox"<<"menu"<<"menubutton"<<"message"<<"panedwindow"<<"radiobutton"<<"scale"<<"scrollbar"<<"spinbox"<<"toplevel";
- myList.sort();
+ //myList.sort();
myInit=0;
}
str=str.stripWhiteSpace();
@@ -727,7 +730,7 @@ static void tcl_codify(const char *s,const char *str)
static void tcl_codify(const char *s,const QString &str)
{
if (tcl.code==NULL) return;
- tcl_codify(s,str.utf8());
+ tcl_codify(s,str);
}
//! Codify 'str' with special font class 's'.
@@ -740,7 +743,7 @@ static void tcl_codify(const char *s,const QCString &str)
static void tcl_codify_cmd(const char *s,int i)
{
- tcl_codify(s,(*tcl.list_commandwords.at(i)).utf8());
+ tcl_codify(s,(*tcl.list_commandwords.at(i)));
}
//! codify a string token
//
@@ -1193,7 +1196,7 @@ tcl_inf("line=%d\n",myScan->line1);
myStart=i;
break;
}
- tcl_codify(myScan->after[i].utf8(),myScan->after[i+1].utf8());
+ tcl_codify(myScan->after[i],myScan->after[i+1]);
}
yy_delete_buffer(myScan->buffer_state);
yy_pop_state();
@@ -1608,12 +1611,12 @@ tcl_inf("-> %s\n",(const char *)tcl.string_comment);
}
//! Parse given \c arglist .
-static void tcl_command_ARGLIST(QString &arglist)
+static void tcl_command_ARGLIST(QCString &arglist)
{
D
Argument *myArg;
- QStringList myArgs;
- QString myArglist="";
+ QCStringList myArgs;
+ QCString myArglist="";
if (!tcl.entry_current->argList)
{
@@ -1622,14 +1625,14 @@ D
tcl_split_list(arglist,myArgs);
for (uint i=0;i<myArgs.count();i++)
{
- QStringList myArgs1;
+ QCStringList myArgs1;
myArg=new Argument;
tcl_split_list(*myArgs.at(i),myArgs1);
if (myArgs1.count()==2)
{
- myArg->name= (*myArgs1.at(0)).utf8();
- myArg->defval= (*myArgs1.at(1)).utf8();
+ myArg->name= (*myArgs1.at(0));
+ myArg->defval= (*myArgs1.at(1));
if (myArg->defval.isEmpty())
{
myArg->defval = " ";
@@ -1638,13 +1641,13 @@ D
}
else
{
- myArg->name= (*myArgs.at(i)).utf8();
- myArglist += QString(myArg->name) + " ";
+ myArg->name= (*myArgs.at(i));
+ myArglist += myArg->name + " ";
}
tcl.entry_current->argList->append(myArg);
}
arglist = myArglist;
- tcl.entry_current->args = arglist.utf8();
+ tcl.entry_current->args = arglist;
}
//! Create link.
@@ -1763,7 +1766,7 @@ static void tcl_codify_link(QCString name)
//! scan general argument for brackets
//
-// parses (*tcl.list_commandwords.at(i)).utf8() and checks for brackets.
+// parses (*tcl.list_commandwords.at(i)) and checks for brackets.
// Starts a new scan context if needed (*myScan==0 and brackets found).
// Returns NULL or the created scan context.
//
@@ -1773,7 +1776,7 @@ static tcl_scan *tcl_command_ARG(tcl_scan *myScan, unsigned int i, bool ignoreOu
bool insideQuotes=false;
unsigned int insideBrackets=0;
unsigned int insideBraces=0;
- myName = (*tcl.list_commandwords.at(i)).utf8();
+ myName = (*tcl.list_commandwords.at(i));
if (i%2 != 0)
{
// handle white space
@@ -1861,7 +1864,7 @@ D
// Example: eval [list set] [list NotInvoked] [Invoked NotInvoked]
for (unsigned int i = 1; i < tcl.list_commandwords.count(); i++)
{
- myString += (*tcl.list_commandwords.at(i)).utf8();
+ myString += (*tcl.list_commandwords.at(i));
}
myScan = tcl_scan_start('?', myString,
myScan->ns, myScan->entry_cl, myScan->entry_fn);
@@ -1882,7 +1885,7 @@ D
unsigned int lastOptionIndex = 0;
for (i = 2; i<tcl.list_commandwords.count(); i += 2)
{
- token = (*tcl.list_commandwords.at(i)).utf8();
+ token = (*tcl.list_commandwords.at(i));
if (token == "--")
{
lastOptionIndex = i;
@@ -1913,7 +1916,7 @@ D
int size;
const char *elem;
const char *next;
- token = (*tcl.list_commandwords.at(lastOptionIndex + 4)).utf8();
+ token = (*tcl.list_commandwords.at(lastOptionIndex + 4));
if (token[0] == '{')
{
inBraces = true;
@@ -1966,15 +1969,15 @@ D
//printf("detected: switch ?options? string pattern body ?pattern body ...?\n");
myScan = tcl_command_ARG(myScan, lastOptionIndex + 1, false);
myScan = tcl_command_ARG(myScan, lastOptionIndex + 2, false);
- //printf("value=%s\n",(const char*) (*tcl.list_commandwords.at(lastOptionIndex + 2)).utf8());
+ //printf("value=%s\n",(const char*) (*tcl.list_commandwords.at(lastOptionIndex + 2)));
for (i = lastOptionIndex + 3; i < tcl.list_commandwords.count(); i += 4)
{
myScan = tcl_command_ARG(myScan, i + 0, false); // whitespace
myScan = tcl_command_ARG(myScan, i + 1, false); // pattern
myScan = tcl_command_ARG(myScan, i + 2, false); // whitespace
- myScan = tcl_codify_token(myScan, "script", (*tcl.list_commandwords.at(i+3)).utf8()); // script
- //printf("pattern=%s\n",(const char*) (*tcl.list_commandwords.at(i+1)).utf8());
- //printf("script=%s\n",(const char*) (*tcl.list_commandwords.at(i+3)).utf8());
+ myScan = tcl_codify_token(myScan, "script", (*tcl.list_commandwords.at(i+3))); // script
+ //printf("pattern=%s\n",(const char*) (*tcl.list_commandwords.at(i+1))));
+ //printf("script=%s\n",(const char*) (*tcl.list_commandwords.at(i+3)));
}
}
else
@@ -2007,7 +2010,7 @@ D
//! Handle internal tcl commands.
// "if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?"
-static void tcl_command_IF(QStringList type)
+static void tcl_command_IF(QCStringList type)
{
D
tcl_codify_cmd("keyword",0);
@@ -2126,7 +2129,7 @@ D
tcl_codify_cmd(NULL,3);
tcl_codify_cmd(NULL,4);
tcl_codify_cmd(NULL,5);
- tcl_name_SnippetAware(myScan->ns,(*tcl.list_commandwords.at(2)).utf8(),myNs,myName);
+ tcl_name_SnippetAware(myScan->ns,(*tcl.list_commandwords.at(2)),myNs,myName);
if (myNs.length())
{
myEntryNs = tcl_entry_namespace(myNs);
@@ -2165,7 +2168,7 @@ D
tcl_codify_cmd(NULL,3);
tcl_codify_cmd(NULL,4);
tcl_codify_cmd(NULL,5);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)),myNs,myName);
if (myNs.length())
{
myEntryCl = tcl_entry_class(myNs);
@@ -2205,7 +2208,7 @@ D
tcl_codify_cmd(NULL,1);
tcl_codify_cmd(NULL,2);
tcl_codify_cmd(NULL,3);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(0)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(0)),myNs,myName);
if (myNs.length())
{
myEntryCl = tcl_entry_class(myNs);
@@ -2240,7 +2243,7 @@ D
tcl_codify_cmd("keyword",0);
tcl_codify_cmd(NULL,1);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(0)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(0)),myNs,myName);
if (myNs.length())
{
myEntryCl = tcl_entry_class(myNs);
@@ -2278,7 +2281,7 @@ D
tcl_codify_cmd(NULL,3);
tcl_codify_cmd(NULL,4);
tcl_codify_cmd(NULL,5);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(4)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(4)),myNs,myName);
if (myNs.length())
{
myName = myNs+"::"+myName;
@@ -2291,12 +2294,12 @@ D
tcl.entry_main->addSubEntry(tcl.entry_current);
tcl.ns.insert(myName,tcl.entry_current);
//myEntryNs = tcl.entry_current;
- myStr = (*tcl.list_commandwords.at(6)).utf8();
+ myStr = (*tcl.list_commandwords.at(6));
if (tcl.list_commandwords.count() > 7)
{
for (uint i=7;i<tcl.list_commandwords.count();i++)
{
- myStr.append((*tcl.list_commandwords.at(i)).utf8());
+ myStr.append((*tcl.list_commandwords.at(i)));
}
tcl.word_is=' ';
}
@@ -2315,7 +2318,7 @@ D
tcl_codify_cmd(NULL,1);
tcl_codify_cmd("NULL",2);
tcl_codify_cmd("NULL",3);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)),myNs,myName);
if (myNs.length())
{
myName = myNs+"::"+myName;
@@ -2347,7 +2350,7 @@ D
tcl_codify_cmd("NULL",3);
tcl_codify_cmd("NULL",4);
tcl_codify_cmd("NULL",5);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(4)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(4)),myNs,myName);
if (myNs.length())
{
myName = myNs+"::"+myName;
@@ -2377,13 +2380,13 @@ D
tcl_codify_cmd(NULL,1);
tcl_codify_cmd("NULL",2);
tcl_codify_cmd("NULL",3);
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)),myNs,myName);
if (myNs.length())
{
myName = myNs+"::"+myName;
}
myEntryCl = tcl_entry_class(myName);
- myStr = (*tcl.list_commandwords.at(4)).utf8();
+ myStr = (*tcl.list_commandwords.at(4));
//
// special cases first
// oo::define classname method methodname args script
@@ -2400,7 +2403,7 @@ D
}
Entry *myEntry;
QCString myMethod;
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(n==11?6:4)).utf8(),myNs,myMethod);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(n==11?6:4)),myNs,myMethod);
// code snippet taken from tcl_command_METHOD()/tcl_command_CONSTRUCTOR
tcl.fn.remove(myMethod);
tcl.entry_current->section = Entry::FUNCTION_SEC;
@@ -2434,7 +2437,7 @@ D
{
for (uint i=5;i<tcl.list_commandwords.count();i++)
{
- myStr.append((*tcl.list_commandwords.at(i)).utf8());
+ myStr.append((*tcl.list_commandwords.at(i)));
}
tcl.word_is=' ';
}
@@ -2455,7 +2458,7 @@ D
{
tcl_codify_cmd(NULL,i);
}
- tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)).utf8(),myNs,myName);
+ tcl_name(myScan->ns,(*tcl.list_commandwords.at(2)),myNs,myName);
if (myNs.length())
{// qualified variables go into namespace
myEntry = tcl_entry_namespace(myNs);
@@ -2535,7 +2538,7 @@ tcl_inf("->\n");
yy_pop_state();
// check command
- QCString myStr = (*tcl.list_commandwords.at(0)).utf8();
+ QCString myStr = (*tcl.list_commandwords.at(0));
tcl_scan *myScanBackup=tcl.scan.at(0);
int myLevel = 0;
Protection myProt = tcl.protection;
@@ -2580,7 +2583,7 @@ tcl_inf("->\n");
myProt = tcl.protection;
goto command_end;
}
- myStr = (*tcl.list_commandwords.at(0)).utf8();
+ myStr = (*tcl.list_commandwords.at(0));
// remove leading "::" and apply TCL_SUBST
if (myStr.left(2)=="::") myStr = myStr.mid(2);
if (tcl.config_subst.contains(myStr))
@@ -2624,7 +2627,7 @@ tcl_inf("->\n");
}
if (myStr=="namespace")
{
- if ((*tcl.list_commandwords.at(2)).utf8()=="eval")
+ if ((*tcl.list_commandwords.at(2))=="eval")
{
if (tcl.list_commandwords.count() < 7) {myLine=__LINE__;goto command_warn;}
tcl_command_NAMESPACE();
@@ -2647,7 +2650,7 @@ tcl_inf("->\n");
}
if (myStr=="oo::class")
{
- if ((*tcl.list_commandwords.at(2)).utf8()=="create")
+ if ((*tcl.list_commandwords.at(2))=="create")
{
if (tcl.list_commandwords.count() != 7) {myLine=__LINE__;goto command_warn;}
tcl_command_OO_CLASS();
@@ -2687,7 +2690,7 @@ tcl_inf("->\n");
{
for (unsigned int i = 2; i < tcl.list_commandwords.count(); i = i + 2)
{
- tcl.scan.at(0)->entry_cl->extends->append(new BaseInfo((*tcl.list_commandwords.at(i)).utf8(),Public,Normal));
+ tcl.scan.at(0)->entry_cl->extends->append(new BaseInfo((*tcl.list_commandwords.at(i)),Public,Normal));
}
}
goto command_end;
@@ -2731,12 +2734,12 @@ if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
*/
if (myStr=="if" && tcl.list_commandwords.count() > 4)
{
- QStringList myType;
+ QCStringList myType;
myType << "keyword" << "NULL" << "expr" << "NULL";
char myState='x';// last word: e'x'pr 't'hen 'b'ody 'e'lse else'i'f..
for (unsigned int i = 4; i < tcl.list_commandwords.count(); i = i + 2)
{
- QCString myStr=(*tcl.list_commandwords.at(i)).utf8();
+ QCString myStr=(*tcl.list_commandwords.at(i));
if (myState=='x')
{
if (myStr=="then")
@@ -2797,7 +2800,7 @@ if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
tcl_command_OTHER();
goto command_end;
command_warn:// print warning message because of wrong used syntax
- tcl_war("%d count=%d: %s\n",myLine,tcl.list_commandwords.count(),tcl.list_commandwords.join(" ").ascii());
+ tcl_war("%d count=%d: %s\n",myLine,tcl.list_commandwords.count(),tcl.list_commandwords.join(" ").data());
tcl_command_OTHER();
command_end:// add remaining text to current context
if (!myText.isEmpty())
diff --git a/src/util.cpp b/src/util.cpp
index 6c7e3d5..7b4c1d2 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2591,7 +2591,7 @@ QCString dateToString(bool includeTime)
static bool warnedOnce=FALSE;
if (!warnedOnce)
{
- warn_uncond("Environment variable SOURCE_DATA_EPOCH must have a value smaller than or equal to %llu; actual value %llu\n",UINT_MAX,epoch);
+ warn_uncond("Environment variable SOURCE_DATE_EPOCH must have a value smaller than or equal to %llu; actual value %llu\n",UINT_MAX,epoch);
warnedOnce=TRUE;
}
}
@@ -2665,7 +2665,7 @@ Protection classInheritedProtectionLevel(ClassDef *cd,ClassDef *bcd,Protection p
if (level==256)
{
err("Internal inconsistency: found class %s seem to have a recursive "
- "inheritance relation! Please send a bug report to dimitri@stack.nl\n",cd->name().data());
+ "inheritance relation! Please send a bug report to doxygen@gmail.com\n",cd->name().data());
}
else if (cd->baseClasses())
{
@@ -7949,8 +7949,8 @@ bool readInputFile(const char *fileName,BufStr &inBuf,bool filter,bool isSourceC
int start=0;
if (size>=2 &&
- ((inBuf.at(0)==-1 && inBuf.at(1)==-2) || // Little endian BOM
- (inBuf.at(0)==-2 && inBuf.at(1)==-1) // big endian BOM
+ (((uchar)inBuf.at(0)==0xFF && (uchar)inBuf.at(1)==0xFE) || // Little endian BOM
+ ((uchar)inBuf.at(0)==0xFE && (uchar)inBuf.at(1)==0xFF) // big endian BOM
)
) // UCS-2 encoded file
{
diff --git a/src/vhdlcode.l b/src/vhdlcode.l
index 618258f..68dcafb 100644
--- a/src/vhdlcode.l
+++ b/src/vhdlcode.l
@@ -31,7 +31,7 @@
#include <ctype.h>
#include <qregexp.h>
#include <qdir.h>
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include "entry.h"
#include "doxygen.h"
@@ -138,8 +138,8 @@ static bool checkVhdlString(QCString &name)
int len=name.length();
if (name.at(0)=='"' && name.at(len-1)=='"' && len > 2)
{
- QStringList qrl=QStringList::split(regg,name,FALSE);
- if (VhdlDocGen::isNumber(qrl[0].utf8()))
+ QCStringList qrl=QCStringList::split(regg,name);
+ if (VhdlDocGen::isNumber(qrl[0]))
{
g_code->codify("\"");
startFontClass("vhdllogic");
@@ -691,8 +691,8 @@ static void writeFuncProto()
codifyLines(g_FuncProto.data(),g_CurrClass.data());
return;
}
- QStringList qlist=QStringList::split(name,g_FuncProto,FALSE);
- QCString temp=qlist[0].utf8();
+ QCStringList qlist=QCStringList::split(name,g_FuncProto);
+ QCString temp=qlist[0];
codifyLines(temp.data(),g_CurrClass.data());
g_FuncProto.stripPrefix(temp.data());
temp.resize(0);
@@ -831,11 +831,11 @@ XILINX "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
QCString tt(vhdlcodeYYtext);
VhdlDocGen::deleteAllChars(tt,',');
QRegExp r("=>");
- QStringList ql=QStringList::split(r,tt,FALSE);
+ QCStringList ql=QCStringList::split(r,tt);
if (ql.count()>=2)
{
unsigned int index=0;
- QCString t1=ql[0].utf8();
+ QCString t1=ql[0];
char cc=t1.at(index);
while (cc==' ' || cc=='\t')
{
@@ -866,7 +866,7 @@ XILINX "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
}
codifyLines("=>");
index=0;
- QCString s2=ql[1].utf8();
+ QCString s2=ql[1];
t1=s2;
cc=t1.at(index);
while (cc==' ' || cc=='\t')
@@ -959,7 +959,7 @@ XILINX "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
tt=tt.lower();
VhdlDocGen::deleteAllChars(tt,';');
tt.stripWhiteSpace();
- QStringList ql=QStringList::split(regg,tt,FALSE);
+ QCStringList ql=QCStringList::split(regg,tt);
int index=ql.findIndex(QCString("if"))+1;
index+=ql.findIndex(QCString("case"))+1;
index+=ql.findIndex(QCString("loop"))+1;
@@ -1168,13 +1168,12 @@ XILINX "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
<ParsePackage>[^:;]* { //found package
QCString temp(vhdlcodeYYtext);
- QStringList strl=QStringList::split(".",temp,FALSE);
-
+ QCStringList strl=QCStringList::split(".",temp);
if (strl.count()>2)
{
- QCString s1=strl[0].utf8();
- QCString s2=strl[1].utf8();
- QCString s3=strl[2].utf8();
+ QCString s1=strl[0];
+ QCString s2=strl[1];
+ QCString s3=strl[2];
s1.append(".");
s3.prepend(".");
codifyLines(s1.data(),g_CurrClass.data());
@@ -1297,8 +1296,8 @@ XILINX "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
<Bases>^{B}*("package "){BN}*("body"){BN}*{FUNCNAME} { // found package body
QCString ss(vhdlcodeYYtext);
QCString temp=VhdlDocGen::getIndexWord(vhdlcodeYYtext,2);
- QStringList ql=QStringList::split(temp,ss,FALSE);
- QCString ll=ql[0].utf8();
+ QCStringList ql=QCStringList::split(temp,ss);
+ QCString ll=ql[0];
codifyLines(ll.data(),g_CurrClass.data());
temp=temp.stripWhiteSpace();
temp.prepend("_");
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 007c45f..287565b 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -26,7 +26,7 @@
#include <string.h>
#include <qcstring.h>
#include <qfileinfo.h>
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include <qmap.h>
/* --------------------------------------------------------------- */
@@ -299,10 +299,10 @@ static QCString formatBriefNote(const QCString &brief,ClassDef * cd)
int k=cd->briefLine();
- QStringList qsl=QStringList::split(ep,brief);
+ QCStringList qsl=QCStringList::split(ep,brief);
for(uint j=0;j<qsl.count();j++)
{
- QCString qcs=qsl[j].data();
+ QCString qcs=qsl[j];
vForm+=parseCommentAsText(cd,NULL,qcs,file,k);
k++;
vForm+='\n';
@@ -1028,8 +1028,8 @@ void VhdlDocGen::writeInlineClassLink(const ClassDef* cd ,OutputList& ol)
}
else if (ii==VhdlDocGen::ARCHITECTURE)
{
- QStringList qlist=QStringList::split("-",nn,FALSE);
- nn=qlist[1].utf8();
+ QCStringList qlist=QCStringList::split("-",nn);
+ nn=qlist[1];
cd=VhdlDocGen::getClass(nn.data());
}
@@ -1041,9 +1041,9 @@ void VhdlDocGen::writeInlineClassLink(const ClassDef* cd ,OutputList& ol)
for (int i=0;i<j;i++)
{
QCString *temp=ql.at(i);
- QStringList qlist=QStringList::split("-",*temp,FALSE);
- QCString s1=qlist[0].utf8();
- QCString s2=qlist[1].utf8();
+ QCStringList qlist=QCStringList::split("-",*temp);
+ QCString s1=qlist[0];
+ QCString s2=qlist[1];
s1.stripPrefix("_");
if (j==1) s1.resize(0);
ClassDef*cc = getClass(temp->data());
@@ -1075,8 +1075,8 @@ void VhdlDocGen::findAllArchitectures(QList<QCString>& qll,const ClassDef *cd)
QCString jj=citer->className();
if (cd != citer && jj.contains('-')!=-1)
{
- QStringList ql=QStringList::split("-",jj,FALSE);
- QCString temp=ql[1].utf8();
+ QCStringList ql=QCStringList::split("-",jj);
+ QCString temp=ql[1];
if (qstricmp(cd->className(),temp)==0)
{
QCString *cl=new QCString(jj);
@@ -1095,10 +1095,10 @@ ClassDef* VhdlDocGen::findArchitecture(const ClassDef *cd)
for ( ; (citer=cli.current()) ; ++cli )
{
QCString jj=citer->name();
- QStringList ql=QStringList::split(":",jj,FALSE);
+ QCStringList ql=QCStringList::split(":",jj);
if (ql.count()>1)
{
- if (ql[0].utf8()==nn )
+ if (ql[0]==nn )
{
return citer;
}
@@ -1211,15 +1211,15 @@ void VhdlDocGen::parseFuncProto(const char* text,QList<Argument>& qlist,
QCString VhdlDocGen::getIndexWord(const char* c,int index)
{
- QStringList ql;
+ QCStringList ql;
QCString temp(c);
QRegExp reg("[\\s:|]");
- ql=QStringList::split(reg,temp,FALSE);
+ ql=QCStringList::split(reg,temp);
if (ql.count() > (unsigned int)index)
{
- return ql[index].utf8();
+ return ql[index];
}
return "";
@@ -2678,11 +2678,11 @@ QCString VhdlDocGen::parseForConfig(QCString & entity,QCString & arch)
if (!entity.contains(":")) return "";
QRegExp exp("[:()\\s]");
- QStringList ql=QStringList::split(exp,entity,FALSE);
+ QCStringList ql=QCStringList::split(exp,entity);
//int ii=ql.findIndex(ent);
assert(ql.count()>=2);
- label = ql[0].utf8();
- entity = ql[1].utf8();
+ label = ql[0];
+ entity = ql[1];
if ((index=entity.findRev("."))>=0)
{
entity.remove(0,index+1);
@@ -2690,8 +2690,8 @@ QCString VhdlDocGen::parseForConfig(QCString & entity,QCString & arch)
if (ql.count()==3)
{
- arch= ql[2].utf8();
- ql=QStringList::split(exp,arch,FALSE);
+ arch= ql[2];
+ ql=QCStringList::split(exp,arch);
if (ql.count()>1) // expression
{
arch="";
@@ -2708,16 +2708,16 @@ QCString VhdlDocGen::parseForBinding(QCString & entity,QCString & arch)
QRegExp exp("[()\\s]");
QCString label="";
- QStringList ql=QStringList::split(exp,entity,FALSE);
+ QCStringList ql=QCStringList::split(exp,entity);
if (ql.contains("open"))
{
return "open";
}
- label=ql[0].utf8();
+ label=ql[0];
- entity = ql[1].utf8();
+ entity = ql[1];
if ((index=entity.findRev("."))>=0)
{
entity.remove(0,index+1);
@@ -2725,7 +2725,7 @@ QCString VhdlDocGen::parseForBinding(QCString & entity,QCString & arch)
if (ql.count()==3)
{
- arch=ql[2].utf8();
+ arch=ql[2];
}
return label;
}
@@ -2843,7 +2843,7 @@ void assignBinding(VhdlConfNode * conf)
QCString inst1=VhdlDocGen::getIndexWord(archy.data(),0).lower();
QCString comp=VhdlDocGen::getIndexWord(archy.data(),1).lower();
- QStringList ql=QStringList::split(",",inst1);
+ QCStringList ql=QCStringList::split(",",inst1);
for (uint j=0;j<ql.count();j++)
{
@@ -2855,7 +2855,7 @@ void assignBinding(VhdlConfNode * conf)
}
else
{
- archy1=comp+":"+ql[j].utf8();
+ archy1=comp+":"+ql[j];
sign1=cur->type+":"+cur->name;
}
@@ -3029,11 +3029,11 @@ ferr:
void VhdlDocGen::writeRecorUnit(QCString & largs,OutputList& ol ,const MemberDef *mdef)
{
- QStringList ql=QStringList::split("#",largs,FALSE);
+ QCStringList ql=QCStringList::split("#",largs,FALSE);
uint len=ql.count();
for(uint i=0;i<len;i++)
{
- QCString n=ql[i].utf8();
+ QCString n=ql[i];
VhdlDocGen::formatString(n,ol,mdef);
if ((len-i)>1) ol.lineBreak();
}
@@ -3046,14 +3046,14 @@ void VhdlDocGen::writeRecUnitDocu(
QCString largs)
{
- QStringList ql=QStringList::split("#",largs,FALSE);
+ QCStringList ql=QCStringList::split("#",largs);
uint len=ql.count();
ol.startParameterList(TRUE);
bool first=TRUE;
for(uint i=0;i<len;i++)
{
- QCString n=ql[i].utf8();
+ QCString n=ql[i];
ol.startParameterType(first,"");
ol.endParameterType();
ol.startParameterName(TRUE);
@@ -3486,14 +3486,14 @@ void FlowChart::alignCommentNode(FTextStream &t,QCString com)
{
uint max=0;
QCString s;
- QStringList ql=QStringList::split("\n",com);
+ QCStringList ql=QCStringList::split("\n",com);
for (uint j=0;j<ql.count();j++)
{
- s=(QCString)ql[j].utf8();
+ s=(QCString)ql[j];
if (max<s.length()) max=s.length();
}
- s=ql.last().utf8();
+ s=ql.last();
int diff=max-s.length();
QCString n(1);
@@ -3508,7 +3508,7 @@ void FlowChart::alignCommentNode(FTextStream &t,QCString com)
for (uint j=0;j<ql.count();j++)
{
- s=(QCString)ql[j].utf8();
+ s=ql[j];
if (j<ql.count()-1)
{
s+="\n";
diff --git a/src/vhdljjparser.cpp b/src/vhdljjparser.cpp
index 706e8db..81a7ca1 100644
--- a/src/vhdljjparser.cpp
+++ b/src/vhdljjparser.cpp
@@ -12,7 +12,7 @@
#include <qcstring.h>
#include <qfileinfo.h>
-#include <qstringlist.h>
+#include <qcstringlist.h>
#include "vhdljjparser.h"
#include "vhdlcode.h"
#include "vhdldocgen.h"
@@ -381,11 +381,11 @@ void VhdlParser::addVhdlType(const char *n,int startLine,int section,
spec= VhdlDocGen::GENERIC;
}
- QStringList ql=QStringList::split(",",name,FALSE);
+ QCStringList ql=QCStringList::split(",",name);
for (uint u=0;u<ql.count();u++)
{
- current->name=ql[u].utf8();
+ current->name=ql[u];
current->startLine=startLine;
current->bodyLine=startLine;
current->section=section;
@@ -442,11 +442,11 @@ void VhdlParser::createFunction(const char *imp,uint64 spec,const char *fn)
VhdlDocGen::deleteAllChars(current->args,' ');
if (!fname.isEmpty())
{
- QStringList q1=QStringList::split(",",fname);
+ QCStringList q1=QCStringList::split(",",fname);
for (uint ii=0;ii<q1.count();ii++)
{
Argument *arg=new Argument;
- arg->name=q1[ii].utf8();
+ arg->name=q1[ii];
current->argList->append(arg);
}
}
@@ -540,12 +540,12 @@ void VhdlParser::addProto(const char *s1,const char *s2,const char *s3,
{
(void)s5; // avoid unused warning
QCString name=s2;
- QStringList ql=QStringList::split(",",name,FALSE);
+ QCStringList ql=QCStringList::split(",",name);
for (uint u=0;u<ql.count();u++)
{
Argument *arg=new Argument;
- arg->name=ql[u].utf8();
+ arg->name=ql[u];
if (s3)
{
arg->type=s3;
diff --git a/src/vhdljjparser.h b/src/vhdljjparser.h
index a0851d7..3a2ed61 100644
--- a/src/vhdljjparser.h
+++ b/src/vhdljjparser.h
@@ -7,6 +7,7 @@
#include <assert.h>
#include <ctype.h>
#include <qarray.h>
+#include <qcstringlist.h>
#include <qfile.h>
#include <qdict.h>
@@ -14,7 +15,6 @@
#include "types.h"
#include "entry.h"
#include "vhdldocgen.h"
-#include "qstringlist.h"
#include "vhdlcode.h"
#include "memberlist.h"
#include "config.h"
@@ -30,7 +30,6 @@ class ClassSDict;
class FileStorage;
class ClassDef;
class MemberDef;
-class QStringList;
struct VhdlConfNode;
diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp
index 93765b1..525dbf5 100644
--- a/src/xmldocvisitor.cpp
+++ b/src/xmldocvisitor.cpp
@@ -65,7 +65,7 @@ static void visitPreStart(FTextStream &t, const char *cmd, const bool doCaption,
{
t << " width=\"" << convertToXML(width) << "\"";
}
- else if (!height.isEmpty())
+ if (!height.isEmpty())
{
t << " height=\"" << convertToXML(height) << "\"";
}
@@ -164,6 +164,12 @@ void XmlDocVisitor::visit(DocStyleChange *s)
case DocStyleChange::Bold:
if (s->enable()) m_t << "<bold>"; else m_t << "</bold>";
break;
+ case DocStyleChange::Strike:
+ if (s->enable()) m_t << "<strike>"; else m_t << "</strike>";
+ break;
+ case DocStyleChange::Underline:
+ if (s->enable()) m_t << "<underline>"; else m_t << "</underline>";
+ break;
case DocStyleChange::Italic:
if (s->enable()) m_t << "<emphasis>"; else m_t << "</emphasis>";
break;