diff options
Diffstat (limited to 'src/commentscan.l')
-rw-r--r-- | src/commentscan.l | 355 |
1 files changed, 191 insertions, 164 deletions
diff --git a/src/commentscan.l b/src/commentscan.l index 6d3bec0..1d84917 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 @@ -2297,14 +2298,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); @@ -2313,7 +2314,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); @@ -2321,21 +2322,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; @@ -2343,7 +2344,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; @@ -2351,7 +2352,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; @@ -2359,83 +2360,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) @@ -2446,7 +2447,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) @@ -2457,7 +2458,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 @@ -2466,14 +2467,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; @@ -2481,15 +2482,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) { @@ -2500,7 +2516,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) @@ -2515,7 +2531,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); @@ -2523,7 +2539,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); @@ -2531,7 +2547,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); @@ -2539,7 +2555,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); @@ -2547,14 +2563,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) { @@ -2571,7 +2587,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) { @@ -2584,7 +2600,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()) { @@ -2596,7 +2612,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()) { @@ -2608,7 +2624,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()) { @@ -2620,14 +2636,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+" "); @@ -2639,7 +2655,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 && @@ -2659,14 +2675,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()) { @@ -2678,9 +2694,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; @@ -2688,14 +2711,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; @@ -2704,7 +2727,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; @@ -2713,7 +2736,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()) { @@ -2728,7 +2751,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()) { @@ -2742,7 +2765,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()) { @@ -2763,56 +2786,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)) { @@ -2834,74 +2857,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(':'); @@ -2933,7 +2953,14 @@ 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 if (opt == "docbook") + { + current->localToc.enableDocbook(level); + } + else + { + warn(yyFileName,yyLineNr,"Unknown option specified with \\tableofcontents: `%s'", (*it).stripWhiteSpace().data()); + } } } if (current->localToc.nothingEnabled()) @@ -2944,19 +2971,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, @@ -2973,7 +3000,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()) @@ -2985,7 +3012,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()) |