summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2004-12-31 14:25:22 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2004-12-31 14:25:22 (GMT)
commit8dc1328efbd82110ca3def379951286b09fddd15 (patch)
tree80d6e1da5b77f60b041b9a10aadb418c8b25933e
parent81adebde00a3fe5954b403f8c0d1a1a6ed833fa8 (diff)
downloadDoxygen-8dc1328efbd82110ca3def379951286b09fddd15.zip
Doxygen-8dc1328efbd82110ca3def379951286b09fddd15.tar.gz
Doxygen-8dc1328efbd82110ca3def379951286b09fddd15.tar.bz2
Release-1.4.0
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/code.l14
-rw-r--r--src/docparser.cpp18
-rw-r--r--src/doctokenizer.l4
-rw-r--r--src/xmldocvisitor.cpp16
8 files changed, 36 insertions, 28 deletions
diff --git a/INSTALL b/INSTALL
index 887f7b1..051f0cc 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.3.9.1-20041228
+DOXYGEN Version 1.4.0
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (28 December 2004)
+Dimitri van Heesch (31 December 2004)
diff --git a/README b/README
index 34f8162..73fd2a6 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.3.9.1_20041228
+DOXYGEN Version 1.4.0
Please read INSTALL for compilation instructions.
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (28 December 2004)
+Dimitri van Heesch (dimitri@stack.nl) (31 December 2004)
diff --git a/VERSION b/VERSION
index ba9fa2a..88c5fb8 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.9.1-20041228
+1.4.0
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index b983065..0bb2dc6 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,6 +1,6 @@
Summary: A documentation system for C/C++.
Name: doxygen
-Version: 1.3.9.1_20041228
+Version: 1.4.0
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
diff --git a/src/code.l b/src/code.l
index bd1a4a6..9dc4e05 100644
--- a/src/code.l
+++ b/src/code.l
@@ -2178,12 +2178,6 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_type.resize(0);
BEGIN(g_memCallContext);
}
-<MemberCall>[^a-z_A-Z0-9(\n] {
- g_code->codify(yytext);
- g_type.resize(0);
- g_name.resize(0);
- BEGIN(g_memCallContext);
- }
<Body>[,=;\[] {
if (g_insideObjC && *yytext=='[')
{
@@ -2394,7 +2388,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_code->codify(yytext);
g_parmType.resize(0);g_parmName.resize(0);
}
-<MemberCall2,FuncCall>")" {
+<MemberCall,MemberCall2,FuncCall>")" {
g_theVarContext.addVariable(g_parmType,g_parmName);
g_theCallContext.popScope();
g_theCallContext.setClass(0);
@@ -2638,6 +2632,12 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
<RemoveSpecialCComment>"//"|"/*"
<RemoveSpecialCComment>\n { g_yyLineNr++; }
<RemoveSpecialCComment>.
+<MemberCall>[^a-z_A-Z0-9(\n] {
+ g_code->codify(yytext);
+ g_type.resize(0);
+ g_name.resize(0);
+ BEGIN(g_memCallContext);
+ }
<*>\n({B}*"//"[!/][^\n]*\n)+ { // remove special one-line comment
if (Config_getBool("STRIP_CODE_COMMENTS"))
{
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 74aa938..497f595 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -372,11 +372,12 @@ static void detectNoDocumentedParams()
if (!g_memberDef->hasDocumentedParams() &&
g_hasParamCommand)
{
+ //printf("%s->setHasDocumentedParams(TRUE);\n",g_memberDef->name().data());
g_memberDef->setHasDocumentedParams(TRUE);
}
else if (!g_memberDef->hasDocumentedParams())
{
- bool allDoc=TRUE;
+ bool allDoc=TRUE; // no paramater => all parameters are documented
if ( // member has parameters
al && // but the member has a parameter list
al->count()>0 // with at least one parameter (that is not void)
@@ -388,8 +389,12 @@ static void detectNoDocumentedParams()
// see if all parameters have documentation
for (ali.toFirst();(a=ali.current()) && allDoc;++ali)
{
- allDoc = !a->docs.isEmpty();
- //printf("a->name=%s doc=%s\n",a->name.data(),a->docs.data());
+ if (!a->name.isEmpty() && a->type!="void")
+ {
+ allDoc = !a->docs.isEmpty();
+ }
+ //printf("a->type=%s a->name=%s doc=%s\n",
+ // a->type.data(),a->name.data(),a->docs.data());
}
if (!allDoc && declAl) // try declaration arguments as well
{
@@ -398,16 +403,19 @@ static void detectNoDocumentedParams()
Argument *a;
for (ali.toFirst();(a=ali.current()) && allDoc;++ali)
{
- allDoc = !a->docs.isEmpty();
+ if (!a->name.isEmpty() && a->type!="void")
+ {
+ allDoc = !a->docs.isEmpty();
+ }
//printf("a->name=%s doc=%s\n",a->name.data(),a->docs.data());
}
}
}
if (allDoc)
{
+ //printf("%s->setHasDocumentedParams(TRUE);\n",g_memberDef->name().data());
g_memberDef->setHasDocumentedParams(TRUE);
}
-
}
//printf("Member %s hasReturnCommand=%d\n",g_memberDef->name().data(),g_hasReturnCommand);
if (!g_memberDef->hasDocumentedReturnType() && // docs not yet found
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index 35c166c..ff0beef 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -279,7 +279,7 @@ OPTSTARS ("//"{BLANK}*)?"*"*{BLANK}*
LISTITEM {BLANK}*{OPTSTARS}"-"("#")?{WS}
ENDLIST {BLANK}*{OPTSTARS}"."{BLANK}*\n
ATTRIB {ID}{WS}*("="{WS}*(("\""[^\"]*"\"")|("'"[^\']*"'")|[^ \t\r\n'"><]+))?
-URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
+URLCHAR [a-z_A-Z0-9\!\~\,\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [a-z_A-Z0-9\-\+]
@@ -675,7 +675,7 @@ REFWORD ("#"|"::")?({ID}("."|"#"|"::"|"-"))*{ID}{FUNCARG}?
unput(' ');
return 0;
}
-<St_Ref>{BLANK}+"\"" {
+<St_Ref>{WS}+"\"" {
BEGIN(St_Ref2);
}
<St_Ref>\n {
diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp
index a4cb16a..bee6298 100644
--- a/src/xmldocvisitor.cpp
+++ b/src/xmldocvisitor.cpp
@@ -125,25 +125,25 @@ void XmlDocVisitor::visit(DocStyleChange *s)
switch (s->style())
{
case DocStyleChange::Bold:
- if (s->enable()) m_t << "<bold>"; else m_t << "</bold> ";
+ if (s->enable()) m_t << "<bold>"; else m_t << "</bold>";
break;
case DocStyleChange::Italic:
- if (s->enable()) m_t << "<emphasis>"; else m_t << "</emphasis> ";
+ if (s->enable()) m_t << "<emphasis>"; else m_t << "</emphasis>";
break;
case DocStyleChange::Code:
- if (s->enable()) m_t << "<computeroutput>"; else m_t << "</computeroutput> ";
+ if (s->enable()) m_t << "<computeroutput>"; else m_t << "</computeroutput>";
break;
case DocStyleChange::Subscript:
- if (s->enable()) m_t << "<subscript>"; else m_t << "</subscript> ";
+ if (s->enable()) m_t << "<subscript>"; else m_t << "</subscript>";
break;
case DocStyleChange::Superscript:
- if (s->enable()) m_t << "<superscript>"; else m_t << "</superscript> ";
+ if (s->enable()) m_t << "<superscript>"; else m_t << "</superscript>";
break;
case DocStyleChange::Center:
- if (s->enable()) m_t << "<center>"; else m_t << "</center> ";
+ if (s->enable()) m_t << "<center>"; else m_t << "</center>";
break;
case DocStyleChange::Small:
- if (s->enable()) m_t << "<small>"; else m_t << "</small> ";
+ if (s->enable()) m_t << "<small>"; else m_t << "</small>";
break;
case DocStyleChange::Preformatted:
if (s->enable())
@@ -153,7 +153,7 @@ void XmlDocVisitor::visit(DocStyleChange *s)
}
else
{
- m_t << "</preformatted> ";
+ m_t << "</preformatted>";
m_insidePre=FALSE;
}
break;