diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2019-03-16 19:06:20 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2019-03-16 19:06:20 (GMT) |
commit | 00d6d827b5230273ad16e25c10053ef005171b51 (patch) | |
tree | 596b552b55da98424ed7be049ec993c625ff3c81 | |
parent | 9fdeef7b5a1018872c7f07b8d03e374a3da840a0 (diff) | |
parent | 1ea163ff9386266ef6ed6ad68773c29ae814dca2 (diff) | |
download | Doxygen-00d6d827b5230273ad16e25c10053ef005171b51.zip Doxygen-00d6d827b5230273ad16e25c10053ef005171b51.tar.gz Doxygen-00d6d827b5230273ad16e25c10053ef005171b51.tar.bz2 |
Merge branch 'master' of github.com:doxygen/doxygen
-rw-r--r-- | doc/commands.doc | 28 | ||||
-rw-r--r-- | src/debug.cpp | 1 | ||||
-rw-r--r-- | src/debug.h | 3 | ||||
-rw-r--r-- | src/doxygen.cpp | 9 | ||||
-rw-r--r-- | src/formula.cpp | 1 | ||||
-rw-r--r-- | src/fortranscanner.l | 3 | ||||
-rw-r--r-- | src/htmldocvisitor.cpp | 42 | ||||
-rw-r--r-- | src/memberdef.cpp | 4 | ||||
-rw-r--r-- | src/pre.l | 16 |
9 files changed, 85 insertions, 22 deletions
diff --git a/doc/commands.doc b/doc/commands.doc index b6c8f6b..ae27a7a 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -445,7 +445,7 @@ Structural indicators for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmddef \\def <name> \addindex \\def @@ -463,7 +463,7 @@ Structural indicators for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmddefgroup \\defgroup <name> (group title) \addindex \\defgroup @@ -515,7 +515,7 @@ Structural indicators for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmdexample \\example[{lineno}] <file-name> \addindex \\example @@ -553,7 +553,7 @@ Structural indicators \sa section \ref cmdinclude "\\include". -</p><hr> +<hr> \section cmdendinternal \\endinternal \addindex \\endinternal @@ -612,7 +612,7 @@ Structural indicators \note In the above example \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" has been set to \c YES in the configuration file. -</p><hr> +<hr> \section cmdfn \\fn (function declaration) \addindex \\fn @@ -650,7 +650,7 @@ Structural indicators \sa sections \ref cmdvar "\\var", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef". -</p><hr> +<hr> \section cmdheaderfile \\headerfile <header-file> [<header-name>] \addindex \\headerfile @@ -836,7 +836,7 @@ Structural indicators \ref cmdpublic "\\public", \ref cmdprotected "\\protected" and \ref cmdprivate "\\private". -</p><hr> +<hr> \section cmdname \\name [(header)] \addindex \\name @@ -904,7 +904,7 @@ Structural indicators for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmdpackage \\package <name> \addindex \\package @@ -945,7 +945,7 @@ Structural indicators \ref cmdsubsection "\\subsection", and section \ref cmdref "\\ref". -</p><hr> +<hr> \section cmdprivate \\private \addindex \\private @@ -1092,7 +1092,7 @@ Structural indicators for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmdrelated \\related <name> \addindex \\related @@ -1255,7 +1255,7 @@ Section indicators for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmdauthors \\authors { list of authors } \addindex \\authors @@ -1606,7 +1606,7 @@ ALIASES = "english=\if english" \ for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen. \endlatexonly -</p><hr> +<hr> \section cmdparam \\param [(dir)] <parameter-name> { parameter description } \addindex \\param @@ -2226,7 +2226,7 @@ Commands for displaying examples \ref cmdskipline "\\skipline", \ref cmduntil "\\until", and \ref cmdinclude "\\include". -</p><hr> +<hr> \section cmdinclude \\include[{lineno|doc}] <file-name> \addindex \\include @@ -3524,10 +3524,8 @@ browser generator. Do \e not use these commands in your own documentation. \htmlonly -</p> Go to the <a href="htmlcmds.html">next</a> section or return to the <a href="index.html">index</a>. -<p> \endhtmlonly */ diff --git a/src/debug.cpp b/src/debug.cpp index 2f343ac..4c7afb3 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -49,6 +49,7 @@ static LabelMap s_labels[] = { "filteroutput", Debug::FilterOutput }, { "lex", Debug::Lex }, { "plantuml", Debug::Plantuml }, + { "fortranfixed2free", Debug::FortranFixed2Free }, { 0, (Debug::DebugMask)0 } }; diff --git a/src/debug.h b/src/debug.h index 9a2070c..79bc3d8 100644 --- a/src/debug.h +++ b/src/debug.h @@ -38,7 +38,8 @@ class Debug Markdown = 0x00000800, FilterOutput = 0x00001000, Lex = 0x00002000, - Plantuml = 0x00004000 + Plantuml = 0x00004000, + FortranFixed2Free = 0x00008000 }; static void print(DebugMask mask,int prio,const char *fmt,...); static int setFlag(const char *label); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index fa54d68..99878a5 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -8705,7 +8705,14 @@ static void computePageRelations(Entry *root) for (bii.toFirst();(bi=bii.current());++bii) { PageDef *subPd = Doxygen::pageSDict->find(bi->name); - if (subPd) + if (pd==subPd) + { + err("page defined at line %d of file %s with label %s is a direct " + "subpage of itself! Please remove this cyclic dependency.\n", + pd->docLine(),pd->docFile().data(),pd->name().data()); + exit(1); + } + else if (subPd) { pd->addInnerCompound(subPd); //printf("*** Added subpage relation: %s->%s\n", diff --git a/src/formula.cpp b/src/formula.cpp index c252e07..1c5042e 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -71,6 +71,7 @@ void FormulaList::generateBitmaps(const char *path) t << "\\documentclass{article}" << endl; t << "\\usepackage{ifthen}" << endl; t << "\\usepackage{epsfig}" << endl; // for those who want to include images + t << "\\usepackage[utf8]{inputenc}" << endl; // looks like some older distributions with newunicode package 1.1 need this option. writeExtraLatexPackages(t); writeLatexSpecialFormulaChars(t); t << "\\pagestyle{empty}" << endl; diff --git a/src/fortranscanner.l b/src/fortranscanner.l index 1f0c356..e5dc5ca 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -66,6 +66,7 @@ #include "fortrancode.h" #include "pre.h" #include "arguments.h" +#include "debug.h" // Toggle for some debugging info //#define DBG_CTX(x) fprintf x @@ -2640,6 +2641,8 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt, Fortra //printf("Input fixed form string:\n%s\n", fileBuf); //printf("===========================\n"); inputString = prepassFixedForm(fileBuf, NULL); + Debug::print(Debug::FortranFixed2Free,0,"======== Fixed to Free format =========\n---- Input fixed form string ------- \n%s\n", fileBuf); + Debug::print(Debug::FortranFixed2Free,0,"---- Resulting free form string ------- \n%s\n", inputString); //printf("Resulting free form string:\n%s\n", inputString); //printf("===========================\n"); diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index 9bd0b4f..37f6bd0 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -211,6 +211,34 @@ static bool isInvisibleNode(DocNode *node) ; } +static void mergeHtmlAttributes(const HtmlAttribList &attribs, HtmlAttribList *mergeInto) +{ + HtmlAttribListIterator li(attribs); + HtmlAttrib *att; + for (li.toFirst();(att=li.current());++li) + { + HtmlAttribListIterator ml(*mergeInto); + HtmlAttrib *opt; + bool found = false; + for (ml.toFirst();(opt=ml.current());++ml) + { + if (opt->name == att -> name) + { + found = true; + break; + } + } + if (found) + { + opt->value = opt->value + " " + att->value; + } + else + { + mergeInto->append(att); + } + } +} + static QCString htmlAttribsToString(const HtmlAttribList &attribs, QCString *pAltValue = 0) { QCString result; @@ -1660,8 +1688,18 @@ void HtmlDocVisitor::visitPre(DocImage *img) sizeAttribs+=" height=\""+img->height()+"\""; } // 16 cases: url.isEmpty() | typeSVG | inlineImage | img->hasCaption() + + HtmlAttribList extraAttribs; + if (typeSVG) + { + HtmlAttrib opt; + opt.name = "style"; + opt.value = "pointer-events: none;"; + extraAttribs.append(&opt); + } QCString alt; - QCString attrs = htmlAttribsToString(img->attribs(),&alt); + mergeHtmlAttributes(img->attribs(),&extraAttribs); + QCString attrs = htmlAttribsToString(extraAttribs,&alt); QCString src; if (url.isEmpty()) { @@ -1673,7 +1711,7 @@ void HtmlDocVisitor::visitPre(DocImage *img) } if (typeSVG) { - m_t << "<object type=\"image/svg+xml\" style=\"pointer-events: none;\" data=\"" << src + m_t << "<object type=\"image/svg+xml\" data=\"" << src << "\"" << sizeAttribs << attrs; if (inlineImage) { diff --git a/src/memberdef.cpp b/src/memberdef.cpp index a73975d..995901a 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -5572,9 +5572,9 @@ void combineDeclarationAndDefinition(MemberDef *mdec,MemberDef *mdef) mdec->enableCallerGraph(mdec->hasCallerGraph() || mdef->hasCallerGraph()); mdef->enableReferencedByRelation(mdec->hasReferencedByRelation() || mdef->hasReferencedByRelation()); - mdef->enableCallerGraph(mdec->hasReferencesRelation() || mdef->hasReferencesRelation()); + mdef->enableReferencesRelation(mdec->hasReferencesRelation() || mdef->hasReferencesRelation()); mdec->enableReferencedByRelation(mdec->hasReferencedByRelation() || mdef->hasReferencedByRelation()); - mdec->enableCallerGraph(mdec->hasReferencesRelation() || mdef->hasReferencesRelation()); + mdec->enableReferencesRelation(mdec->hasReferencesRelation() || mdef->hasReferencesRelation()); } } } @@ -882,6 +882,21 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int arg+=c; } } + else if (c=='/') // possible start of a comment + { + char prevChar = '\0'; + arg+=c; + if ((cc=getCurrentChar(expr,rest,j)) == '*') // we have a comment + { + while ((cc=getNextChar(expr,rest,j))!=EOF && cc!=0) + { + c=(char)cc; + arg+=c; + if (c == '/' && prevChar == '*') break; // we have an end of comment + prevChar = c; + } + } + } else // append other characters { arg+=c; @@ -1110,7 +1125,6 @@ static void expandExpression(QCString &expr,QCString *rest,int pos) if (replaced) // expand the macro and rescan the expression { - //printf("replacing `%s'->`%s'\n",expr.mid(p,len).data(),expMacro.data()); QCString resultExpr=expMacro; QCString restExpr=expr.right(expr.length()-len-p); |