summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/commands.doc28
-rw-r--r--src/debug.cpp1
-rw-r--r--src/debug.h3
-rw-r--r--src/doxygen.cpp9
-rw-r--r--src/formula.cpp1
-rw-r--r--src/fortranscanner.l3
-rw-r--r--src/htmldocvisitor.cpp42
-rw-r--r--src/memberdef.cpp4
-rw-r--r--src/pre.l16
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());
}
}
}
diff --git a/src/pre.l b/src/pre.l
index 82c050c..5492d15 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -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);