summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2015-08-30 09:59:51 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2015-08-30 09:59:51 (GMT)
commit5dc8371ffb4fb0542a67656b0de900e265e96dc1 (patch)
tree868e726eaeb10f08842e43a7179b53d857569b33
parent4bd50c9f0dc1d7b1413a6bda587b8a5999cd7a19 (diff)
parent189feb213f71f8fda716cff9d8f7393dc6b96bea (diff)
downloadDoxygen-5dc8371ffb4fb0542a67656b0de900e265e96dc1.zip
Doxygen-5dc8371ffb4fb0542a67656b0de900e265e96dc1.tar.gz
Doxygen-5dc8371ffb4fb0542a67656b0de900e265e96dc1.tar.bz2
Merge branch 'master' of github.com:doxygen/doxygen
-rw-r--r--doc/CMakeLists.txt2
-rw-r--r--doc/docblocks.doc6
-rw-r--r--doc/markdown.doc4
-rw-r--r--doc/tables.doc4
-rw-r--r--src/config.l5
-rw-r--r--src/docparser.cpp6
-rw-r--r--src/fortrancode.l2
-rw-r--r--src/fortranscanner.l15
-rw-r--r--templates/latex/doxygen.sty6
9 files changed, 32 insertions, 18 deletions
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 20eafa9..345e898 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -142,7 +142,7 @@ add_custom_target(run_doxygen
add_custom_target(doxygen_pdf
COMMENT "Generating Doxygen Manual PDF."
- COMMAND ${CMAKE_COMMAND} -E remove_directory refman.tex
+ COMMAND ${CMAKE_COMMAND} -E remove refman.tex
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/doc/doxygen_manual.tex .
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/doc/manual.sty .
COMMAND ${EPSTOPDF} ${CMAKE_SOURCE_DIR}/doc/doxygen_logo.eps --outfile=doxygen_logo.pdf
diff --git a/doc/docblocks.doc b/doc/docblocks.doc
index f073de5..3b42506 100644
--- a/doc/docblocks.doc
+++ b/doc/docblocks.doc
@@ -601,15 +601,15 @@ Markdown is designed to be very easy to read and write.
It's formatting is inspired by plain text mail.
Markdown works great for simple, generic formatting, like an introduction
page for your project. Doxygen also supports reading of markdown files
-directly. See \ref markdown "here" for more details regards Markdown support.
+directly. For more details see chapter \ref markdown.
For programming language specific formatting doxygen has two
forms of additional markup on top of Markdown formatting.
1. <a href="http://en.wikipedia.org/wiki/Javadoc">Javadoc</a> like markup.
- See \ref cmd_intro "here" for a complete overview of all commands supported by doxygen.
+ See \ref commands for a complete overview of all commands supported by doxygen.
2. <a href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)#XML_documentation_system">XML</a> markup
- as specified in the C# standard. See \ref xmlcmds "here" for the XML commands supported by doxygen.
+ as specified in the C# standard. See \ref xmlcmds for the XML commands supported by doxygen.
If this is still not enough doxygen also supports a \ref htmlcmds "subset" of
the <a href="http://en.wikipedia.org/wiki/HTML">HTML</a> markup language.
diff --git a/doc/markdown.doc b/doc/markdown.doc
index 87af3d8..cec2191 100644
--- a/doc/markdown.doc
+++ b/doc/markdown.doc
@@ -337,6 +337,8 @@ which will look as follows:
| 10 | 10 | 10 |
| 1000 | 1000 | 1000 |
+For more complex tables in doxygen please have a look at: \ref tables
+
\subsection md_fenced Fenced Code Blocks
Another feature defined by "Markdown Extra" is support for
@@ -437,7 +439,7 @@ details).
By default the name and title of the page are derived from the file name.
If the file starts with a level 1 header however, it is used as the title
of the page. If you specify a label for the
-header (as shown \ref md_header_id "here") doxygen will use that as the
+header (as shown in \ref md_header_id) doxygen will use that as the
page name.
If the label is called `index` or `mainpage` doxygen will put the
diff --git a/doc/tables.doc b/doc/tables.doc
index 32bd1c0..5dc166d 100644
--- a/doc/tables.doc
+++ b/doc/tables.doc
@@ -18,7 +18,7 @@
Doxygen supports two ways to put tables in the documentation.
-The easiest is to use the Markdown format as shown @ref md_tables "here".
+The easiest is to use the Markdown format as shown in @ref markdown_extra section @ref md_tables.
Although this format is easy to use and read, it is also rather limited.
It supports only a simple grid of cells, while each cell is a
@@ -58,7 +58,7 @@ It has a caption, table heading, various row and column spans,
a nested table as one of the cells, and a item list in another cell.
Note that the end tags (like `</td>`) are left out in the example above.
-This is allowed, and in the HTML output doxygen will be add the end tags again.
+This is allowed, and in the HTML output doxygen will add the end tags again.
The output will look as follows:
diff --git a/src/config.l b/src/config.l
index 63a5b30..2a16905 100644
--- a/src/config.l
+++ b/src/config.l
@@ -242,7 +242,7 @@ QStrList &Config::getList(const char *fileName,int num,const char *name) const
}
else if (opt->kind()!=ConfigOption::O_List)
{
- config_err("%d<%d>: Internal error: Requested option %s not of list type!\n",fileName,num,name);
+ config_err("%s<%d>: Internal error: Requested option %s not of list type!\n",fileName,num,name);
exit(1);
}
return *((ConfigList *)opt)->valueRef();
@@ -1077,7 +1077,7 @@ void Config::checkFileName(const char *optionName)
(val=="no" || val=="false" || val=="0" || val=="none"))
{
config_err("file name expected for option %s, got %s instead. Ignoring...\n",optionName,s.data());
- s=""; // note tihe use of &s above: this will change the option value!
+ s=""; // note the use of &s above: this will change the option value!
}
}
@@ -1763,6 +1763,7 @@ static QCString configFileToString(const char *name)
if (!fileOpened)
{
config_err("cannot open file `%s' for reading\n",name);
+ exit(1);
}
return "";
}
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 3588efd..c3963c9 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -5945,7 +5945,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
{
if (Config_getBool("WARN_NO_PARAMDOC"))
{
- warn_doc_error(g_fileName,doctokenizerYYlineno,"empty 'name' attribute for <param> tag.");
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"empty 'name' attribute for <param%s> tag.",tagId==XML_PARAM?"":"type");
}
}
else
@@ -5957,7 +5957,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
}
else
{
- warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'name' attribute from <param> tag.");
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'name' attribute from <param%s> tag.",tagId==XML_PARAM?"":"type");
}
}
break;
@@ -5990,7 +5990,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
}
else
{
- warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'name' attribute from <exception> tag.");
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'cref' attribute from <exception> tag.");
}
}
break;
diff --git a/src/fortrancode.l b/src/fortrancode.l
index af1a82e..fb91a83 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -795,7 +795,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I
codifyLines(yytext);
endFontClass();
}
-<Start>"implicit"{BS}"none" {
+<Start>"implicit"{BS}("none"|{TYPE_SPEC}) {
startFontClass("keywordtype");
codifyLines(yytext);
endFontClass();
diff --git a/src/fortranscanner.l b/src/fortranscanner.l
index cbe13fd..bd1fe83 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -100,13 +100,14 @@ struct SymbolModifiers {
bool pass;
bool contiguous;
bool volat; /* volatile is a reserverd name */
+ bool value; /* volatile is a reserverd name */
QCString passVar;
SymbolModifiers() : type(), returnName(), protection(NONE_P), direction(NONE_D),
optional(FALSE), protect(FALSE), dimension(), allocatable(FALSE),
external(FALSE), intrinsic(FALSE), parameter(FALSE),
pointer(FALSE), target(FALSE), save(FALSE), deferred(FALSE), nonoverridable(FALSE),
- nopass(FALSE), pass(FALSE), contiguous(FALSE), volat(FALSE), passVar() {}
+ nopass(FALSE), pass(FALSE), contiguous(FALSE), volat(FALSE), value(FALSE), passVar() {}
SymbolModifiers& operator|=(const SymbolModifiers &mdfs);
SymbolModifiers& operator|=(QCString mdfrString);
@@ -259,7 +260,7 @@ CHAR (CHARACTER{ARGS}?|CHARACTER{BS}"*"({BS}[0-9]+|{ARGS}))
TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS}COMPLEX|DOUBLE{BS}PRECISION|{CHAR}|TYPE{ARGS}|CLASS{ARGS}|PROCEDURE{ARGS}?)
INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")"
-ATTR_SPEC (EXTERNAL|ALLOCATABLE|DIMENSION{ARGS}|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|NOPASS|PASS{ARGS}?|DEFERRED|NON_OVERRIDABLE|CONTIGUOUS|VOLATILE)
+ATTR_SPEC (EXTERNAL|ALLOCATABLE|DIMENSION{ARGS}|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|NOPASS|PASS{ARGS}?|DEFERRED|NON_OVERRIDABLE|CONTIGUOUS|VOLATILE|VALUE)
ACCESS_SPEC (PRIVATE|PUBLIC)
LANGUAGE_BIND_SPEC BIND{BS}"("{BS}C{BS}(,{BS}NAME{BS}"="{BS}"\""(.*)"\""{BS})?")"
/* Assume that attribute statements are almost the same as attributes. */
@@ -1652,6 +1653,7 @@ SymbolModifiers& SymbolModifiers::operator|=(const SymbolModifiers &mdfs)
passVar = mdfs.passVar;
contiguous |= mdfs.contiguous;
volat |= mdfs.volat;
+ value |= mdfs.value;
return *this;
}
@@ -1738,6 +1740,10 @@ SymbolModifiers& SymbolModifiers::operator|=(QCString mdfString)
{
newMdf.volat = TRUE;
}
+ else if (mdfString=="value")
+ {
+ newMdf.value = TRUE;
+ }
else if (mdfString.contains("pass"))
{
newMdf.pass = TRUE;
@@ -1902,6 +1908,11 @@ static QCString applyModifiers(QCString typeName, SymbolModifiers& mdfs)
if (!typeName.isEmpty()) typeName += ", ";
typeName += "volatile";
}
+ if (mdfs.value)
+ {
+ if (!typeName.isEmpty()) typeName += ", ";
+ typeName += "value";
+ }
return typeName;
}
diff --git a/templates/latex/doxygen.sty b/templates/latex/doxygen.sty
index 948acf7..3f21871 100644
--- a/templates/latex/doxygen.sty
+++ b/templates/latex/doxygen.sty
@@ -273,10 +273,10 @@
\tabulinesep=1mm%
\par%
\ifthenelse{\equal{#1}{}}%
- {\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}}% name + description
+ {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
{\ifthenelse{\equal{#1}{1}}%
- {\begin{longtabu} spread 0pt [l]{|X[-1,c]|X[-1,r]|X[-1,l]|}}% in/out + name + desc
- {\begin{longtabu} spread 0pt [l]{|X[-1,c]|X[-1,c]|X[-1,r]|X[-1,l]|}}% in/out + type + name + desc
+ {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
+ {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
}
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%