From bf19958a28329f21c92503247ad8d199b080f47b Mon Sep 17 00:00:00 2001 From: albert-github Date: Mon, 3 Jun 2019 14:36:19 +0200 Subject: Doxygen crash on ceph project When running doxygen (master) on the ceph project (https://github.com/ceph/ceph/archive/v15.0.0.tar.gz) doxygen crashes with what looks like an endless loop. Seen the code: ``` virtual int countMemberDeclarations(MemberListType lt,const ClassDef *inheritedFrom, int lt2,bool invert,bool showAlways,QPtrDict *visitedClasses) const { return countMemberDeclarations(lt,inheritedFrom,lt2,invert,showAlways,visitedClasses); } ``` and the above code, it looks like the fix might be: ``` virtual int countMemberDeclarations(MemberListType lt,const ClassDef *inheritedFrom, int lt2,bool invert,bool showAlways,QPtrDict *visitedClasses) const { return getCdAlias()->countMemberDeclarations(lt,inheritedFrom,lt2,invert,showAlways,visitedClasses); } ``` --- src/classdef.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/classdef.cpp b/src/classdef.cpp index 3a680c5..8f04505 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -516,7 +516,7 @@ class ClassDefAliasImpl : public DefinitionAliasImpl, public ClassDef { return getCdAlias()->countInheritanceNodes(); } virtual int countMemberDeclarations(MemberListType lt,const ClassDef *inheritedFrom, int lt2,bool invert,bool showAlways,QPtrDict *visitedClasses) const - { return countMemberDeclarations(lt,inheritedFrom,lt2,invert,showAlways,visitedClasses); } + { return getCdAlias()->countMemberDeclarations(lt,inheritedFrom,lt2,invert,showAlways,visitedClasses); } virtual void writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title, const char *subTitle=0,bool showInline=FALSE,const ClassDef *inheritedFrom=0, int lt2=-1,bool invert=FALSE,bool showAlways=FALSE, -- cgit v0.12 From ce9fc8957c25d31a5ee00e944fb297624013241a Mon Sep 17 00:00:00 2001 From: albert-github Date: Thu, 6 Jun 2019 19:21:00 +0200 Subject: issue #7038 Broken refman.tex with SHOW_FILES=NO and doxygen groups Only have index section when SHOW_FILES is set (analogous to index for namespaces)i --- src/index.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.cpp b/src/index.cpp index a577d9a..ff22a60 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -4730,7 +4730,7 @@ static void writeIndex(OutputList &ol) ol.parseText(/*projPrefix+*/theTranslator->trExceptionIndex()); ol.endIndexSection(isCompoundIndex); } - if (documentedFiles>0) + if (Config_getBool(SHOW_FILES) && (documentedFiles>0)) { ol.startIndexSection(isFileIndex); ol.parseText(/*projPrefix+*/theTranslator->trFileIndex()); -- cgit v0.12 From ef859cbf50b26457caee9bad26ed293951e70ce1 Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 7 Jun 2019 12:29:34 +0200 Subject: Consistency not generated inheritance diagram Also warn when an inheritance diagram is not generated. Corrected "dead" code in if statement --- src/classdef.cpp | 6 +++++- src/memberdef.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/classdef.cpp b/src/classdef.cpp index 8f04505..f7abbe4 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1718,7 +1718,11 @@ void ClassDefImpl::writeInheritanceGraph(OutputList &ol) const // write class diagram using dot { DotClassGraph inheritanceGraph(this,DotNode::Inheritance); - if (!inheritanceGraph.isTrivial() && !inheritanceGraph.isTooBig()) + if (inheritanceGraph.isTooBig()) + { + warn_uncond("Inheritance graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",name().data()); + } + else if (!inheritanceGraph.isTrivial()) { ol.pushGeneratorState(); ol.disable(OutputGenerator::Man); diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 3442229..912d7b2 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -2945,7 +2945,7 @@ void MemberDefImpl::_writeCallerGraph(OutputList &ol) const { warn_uncond("Caller graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",qPrint(qualifiedName())); } - else if (!callerGraph.isTrivial() && !callerGraph.isTooBig()) + else if (!callerGraph.isTrivial()) { msg("Generating caller graph for function %s\n",qPrint(qualifiedName())); ol.disable(OutputGenerator::Man); -- cgit v0.12 From 0937e9ce7d04cbb701f58aaa724866a9f213822f Mon Sep 17 00:00:00 2001 From: albert-github Date: Sat, 8 Jun 2019 15:09:17 +0200 Subject: No space when replacing `\copydoc` by `\copydetails` In case we have something like (taken loosely from issue #4554): ``` - \subpage id_201201031218 \copydoc id_201201031218 ``` this would be translated into: ``` - @subpage id_201201031218\copydetails id_201201031218] ``` and subsequently the first word of the `\copydetails` part is placed directly to the `id_201201031218` resulting in an unknown id like `id_201201031218this` (This actual case it doesn't make much sense to use a `\copydoc` but this can happen in other cases as well). --- src/commentscan.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commentscan.l b/src/commentscan.l index eb1629e..e75d023 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -2298,7 +2298,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" if (*yytext=='\n') yyLineNr++; addOutput('\n'); setOutput(OutputDoc); - addOutput("\\copydetails "); + addOutput(" \\copydetails "); addOutput(g_copyDocArg); addOutput("\n"); BEGIN(Comment); -- cgit v0.12 From 38924a2423ce806357b66465ec39a35868c5cb71 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sun, 9 Jun 2019 13:53:04 +0200 Subject: issue #7043 html output for markdown: different output when using '# Header {#mainpage}' and 'Header {#mainpage}\n====' In case of an ATX header the id was overwritten again by the subsequent call to extractTitleId, this should only happen in case of a non ATX header ('===' headers returned already beforehand). --- src/markdown.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/markdown.cpp b/src/markdown.cpp index 15f119b..8670642 100644 --- a/src/markdown.cpp +++ b/src/markdown.cpp @@ -2439,7 +2439,10 @@ static QCString extractPageTitle(QCString &docs,QCString &id) { docs=docs.mid(end1); } - id = extractTitleId(title, 0); + else + { + id = extractTitleId(title, 0); + } //printf("extractPageTitle(title='%s' docs='%s' id='%s')\n",title.data(),docs.data(),id.data()); return title; } -- cgit v0.12 From 37cf9b2648bf12cf6c3db9f734735a4682535b9a Mon Sep 17 00:00:00 2001 From: albert-github Date: Mon, 10 Jun 2019 15:54:09 +0200 Subject: Bug 535853 - C# consts incorrectly placed under instance variables Handle consts separately and in case of CSharp set the static flag. --- src/scanner.l | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/scanner.l b/src/scanner.l index f94e4f8..e36b36d 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -1390,6 +1390,10 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) current->explicitExternal = TRUE; lineCount(); } +{B}*"const"{BN}+ { current->type += " const "; + if (insideCS) current->stat = TRUE; + lineCount(); + } {B}*"virtual"{BN}+ { current->type += " virtual "; current->virt = Virtual; lineCount(); -- cgit v0.12