Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
f769c300
Commit
f769c300
authored
Nov 19, 2000
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.3-20001119
parent
dd4999a1
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
311 additions
and
113 deletions
+311
-113
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
configgen.cpp
addon/configgen/configgen.cpp
+5
-0
config.doc
doc/config.doc
+1
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+5
-1
code.l
src/code.l
+94
-33
diagram.cpp
src/diagram.cpp
+0
-1
doxygen.cpp
src/doxygen.cpp
+63
-17
filedef.cpp
src/filedef.cpp
+3
-2
groupdef.cpp
src/groupdef.cpp
+1
-0
latexgen.cpp
src/latexgen.cpp
+4
-4
memberdef.cpp
src/memberdef.cpp
+15
-12
membergroup.cpp
src/membergroup.cpp
+11
-1
namespacedef.cpp
src/namespacedef.cpp
+5
-1
pre.l
src/pre.l
+14
-10
scanner.l
src/scanner.l
+7
-0
translator_it.h
src/translator_it.h
+52
-24
translator_ru.h
src/translator_ru.h
+25
-0
No files found.
INSTALL
View file @
f769c300
DOXYGEN Version 1.2.3-200011
06
DOXYGEN Version 1.2.3-200011
18
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (
06
November 2000)
Dimitri van Heesch (
18
November 2000)
README
View file @
f769c300
DOXYGEN Version 1.2.3-200011
06
DOXYGEN Version 1.2.3-200011
18
Please read INSTALL for compilation instructions.
...
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (
06
November 2000)
Dimitri van Heesch (
18
November 2000)
VERSION
View file @
f769c300
1.2.3-200011
06
1.2.3-200011
18
addon/configgen/configgen.cpp
View file @
f769c300
...
...
@@ -713,6 +713,11 @@ int main(int argc,char * argv[])
while
(
!
ctfile
.
atEnd
())
{
ctfile
.
readLine
(
buf
,
maxLineLen
-
1
);
if
(
buf
[
l
-
2
]
--
'\r'
)
// remove the \r for the folks using Windows
{
buf
[
l
-
2
]
=
'\n'
;
buf
[
l
-
1
]
=
'\r'
;
}
if
(
QCString
(
"#CONFIG Config
\n
"
)
==
buf
)
FORALL
(
printConfig
(
t
))
else
if
(
QCString
(
"#CONFIG Static
\n
"
)
==
buf
)
FORALL
(
printStatic
(
t
))
else
if
(
QCString
(
"#CONFIG Rules
\n
"
)
==
buf
)
FORALL
(
printRules
(
t
))
...
...
doc/config.doc
View file @
f769c300
...
...
@@ -407,7 +407,7 @@ followed by the descriptions of the tags grouped by category.
\
anchor
cfg_enabled_sections
<
dt
>\
c
ENABLED_SECTIONS
<
dd
>
\
addindex
ENABLED_SECTIONS
The
\
c
ENABLE_SECTIONS
tag
can
be
used
to
enable
conditional
The
\
c
ENABLE
D
_SECTIONS
tag
can
be
used
to
enable
conditional
documentation
sections
,
marked
by
\
ref
cmdif
"
\\
if"
\<
section
-
label
\>
...
\
ref
cmdendif
"
\\
endif"
blocks
.
...
...
packages/rpm/doxygen.spec
View file @
f769c300
Name: doxygen
Version: 1.2.3-200011
06
Version: 1.2.3-200011
18
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
f769c300
...
...
@@ -973,9 +973,13 @@ void ClassDef::writeDocumentation(OutputList &ol)
}
// repeat brief description
if
(
!
briefDescription
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
)
{
ol
+=
briefOutput
;
}
if
(
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
&&
!
documentation
().
isEmpty
())
{
ol
.
newParagraph
();
}
// write documentation
...
...
src/code.l
View file @
f769c300
...
...
@@ -36,6 +36,9 @@
#define YY_NEVER_INTERACTIVE 1
#define SCOPEBLOCK (void *)1
#define INNERBLOCK (void *)2
/*! local class definition, used for classes that are defined
* inside code fragments.
*/
...
...
@@ -104,6 +107,8 @@ static QCString g_parmType;
static QCString g_parmName;
static bool g_inClass;
static QCString g_classScope;
static QCString g_realScope;
static QStack<void> g_scopeStack; // 1 if bracket starts a scope, 2 for internal blocks
static OutputList * g_code;
static CodeClassDef g_ccd;
static CodeVarDef g_cvd;
...
...
@@ -123,6 +128,60 @@ static ClassDef * g_classVar;
static QCString g_saveName;
static QCString g_saveType;
/*! add class/namespace name s to the scope */
static void pushScope(const char *s)
{
if (g_classScope.isEmpty())
{
g_classScope = s;
}
else
{
g_classScope += "::";
g_classScope += s;
}
//printf("pushScope() result: `%s'\n",g_classScope.data());
}
/*! remove the top class/namespace name from the scope */
static void popScope()
{
if (!g_classScope.isEmpty())
{
int i=g_classScope.findRev("::");
if (i==-1) // last name, strip all
{
g_classScope.resize(0);
}
else // strip name
{
g_classScope = g_classScope.left(i);
}
}
else
{
//err("Error: Too many end of scopes found!\n");
}
//printf("popScope() result: `%s'\n",g_classScope.data());
}
static void setClassScope(const QCString &name)
{
//printf("setClassScope(%s)\n",name.data());
QCString n=name;
n=n.simplifyWhiteSpace();
int ts=n.find('<'); // start of template
int te=n.findRev('>'); // end of template
//printf("ts=%d te=%d\n",ts,te);
if (ts!=-1 && te!=-1 && te>ts)
{
// remove template from scope
n=n.left(ts)+n.right(n.length()-te-1);
}
g_classScope = n;
//printf("--->New class scope `%s'\n",g_classScope.data());
}
/*! start a new line of code, inserting a line number if g_sourceFileDef
* is TRUE. If a definition starts at the current line, then the line
* number is linked to the documentation of that definition.
...
...
@@ -144,6 +203,8 @@ static void startCodeLine()
QCString anchor;
g_insideBody = FALSE;
g_searchingForBody = TRUE;
g_realScope = d->name().copy();
//printf("Real scope: `%s'\n",g_realScope.data());
g_bodyCurlyCount = 0;
if (g_currentMemberDef) anchor=g_currentMemberDef->anchor();
g_code->startCodeAnchor(lineAnchor);
...
...
@@ -256,27 +317,6 @@ static void addParmType()
g_parmName.resize(0) ;
}
static void setClassScope(const QCString &name)
{
//printf("setClassScope(%s)\n",name.data());
QCString n=name;
n=n.simplifyWhiteSpace();
int ts=n.find('<'); // start of template
int te=n.findRev('>'); // end of template
//printf("ts=%d te=%d\n",ts,te);
if (ts!=-1 && te!=-1 && te>ts)
{
// remove template from scope
n=n.left(ts)+n.right(n.length()-te-1);
}
int index;
if ((index=n.findRev("::"))!=-1)
g_classScope=n.left(index);
else
g_classScope.resize(0);
//printf("--->New class scope `%s'\n",g_classScope.data());
}
static void addVariable()
{
g_cvd.name=g_name.copy().simplifyWhiteSpace();
...
...
@@ -698,6 +738,9 @@ static void startFontClass(const char *s)
g_currentFontClass=s;
}
/* -----------------------------------------------------------------
*/
#undef YY_INPUT
...
...
@@ -753,7 +796,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_code->codify(yytext);
BEGIN( ReadInclude );
}
<Body>("class"|"struct"|"union")[ \t\n]+ {
<Body>("class"|"struct"|"union"
|"namespace"
)[ \t\n]+ {
startFontClass("keyword");
codifyLines(yytext);
endFontClass();
...
...
@@ -801,6 +844,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_code->codify(yytext);
}
<Body>"{" {
g_scopeStack.push(INNERBLOCK);
if (g_searchingForBody)
{
g_searchingForBody=FALSE;
...
...
@@ -813,11 +857,12 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_name.resize(0);
}
<Body>"}" {
if (g_scopeStack.pop()==SCOPEBLOCK) popScope();
g_code->codify(yytext);
g_inClass=FALSE;
if (--g_curlyCount<=0)
{
g_classScope.resize(0);
//
g_classScope.resize(0);
g_codeParmList.clear();
}
if (--g_bodyCurlyCount<=0)
...
...
@@ -855,12 +900,18 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
if (g_insideBody) g_bodyCurlyCount++;
if (!g_ccd.name.isEmpty())
{
g_classScope=g_ccd.name.copy();
g_scopeStack.push(SCOPEBLOCK);
pushScope(g_ccd.name);
//g_classScope=g_ccd.name.copy();
CodeClassDef *cd=new CodeClassDef(g_ccd);
g_codeClassList.append(cd);
g_codeClassDict.insert(cd->name,cd);
//printf("g_codeClassList.count()=%d\n",g_codeClassList.count());
}
else
{
g_scopeStack.push((void *)2);
}
BEGIN( Body );
}
<Bases>"virtual"|"public"|"protected"|"private" {
...
...
@@ -951,13 +1002,6 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_code->codify(yytext);
g_name.resize(0);g_type.resize(0);
}
/*
<Body>([a-z_A-Z~][a-z_A-Z0-9]*)/([ \t]*) {
generateClassLink(*g_code,yytext);
addType();
name+=yytext;
}
*/
<Body>{TYPEKW}/{B}* {
startFontClass("keywordtype");
g_code->codify(yytext);
...
...
@@ -1159,7 +1203,15 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
<MemberCall2,FuncCall>")"({BN}"const"|"volatile")*{BN}*"{" {
addParameter();
g_parmType.resize(0);g_parmName.resize(0);
if (g_name.find("::")!=-1) setClassScope(g_name);
if (g_name.find("::")!=-1)
{
g_scopeStack.push(SCOPEBLOCK);
setClassScope(g_realScope);
}
else
{
g_scopeStack.push(INNERBLOCK);
}
g_code->codify(")");
startFontClass("keyword");
yytext[yyleng-1]='\0';
...
...
@@ -1190,7 +1242,15 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_insideBody=TRUE;
}
if (g_insideBody) g_bodyCurlyCount++;
if (g_name.find("::")!=-1) setClassScope(g_name);
if (g_name.find("::")!=-1)
{
g_scopeStack.push(SCOPEBLOCK);
setClassScope(g_realScope);
}
else
{
g_scopeStack.push(INNERBLOCK);
}
g_type.resize(0); g_name.resize(0);
BEGIN( Body );
}
...
...
@@ -1520,6 +1580,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
g_sharpCount = 0;
g_insideTemplate = FALSE;
g_classVar = 0;
g_scopeStack.clear();
g_classScope = className;
g_exampleBlock = exBlock;
g_exampleName = exName;
...
...
src/diagram.cpp
View file @
f769c300
...
...
@@ -1243,7 +1243,6 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
return
;
}
printf
(
"done
\n
"
);
}
}
...
...
src/doxygen.cpp
View file @
f769c300
...
...
@@ -137,10 +137,51 @@ void clearAll()
delete
mainPage
;
mainPage
=
0
;
}
//bool unrelatedFunctionsUsed;
//ClassDef unrelatedClass("nothing",ClassDef::Class);
// dummy class for unrelated functions
void
statistics
()
{
fprintf
(
stderr
,
"--- inputNameDict stats ----
\n
"
);
inputNameDict
->
statistics
();
fprintf
(
stderr
,
"--- includeNameDict stats ----
\n
"
);
includeNameDict
->
statistics
();
fprintf
(
stderr
,
"--- exampleNameDict stats ----
\n
"
);
exampleNameDict
->
statistics
();
fprintf
(
stderr
,
"--- imageNameDict stats ----
\n
"
);
imageNameDict
->
statistics
();
fprintf
(
stderr
,
"--- classDict stats ----
\n
"
);
classDict
.
statistics
();
fprintf
(
stderr
,
"--- namespaceDict stats ----
\n
"
);
namespaceDict
.
statistics
();
fprintf
(
stderr
,
"--- memberNameDict stats ----
\n
"
);
memberNameDict
.
statistics
();
fprintf
(
stderr
,
"--- functionNameDict stats ----
\n
"
);
functionNameDict
.
statistics
();
fprintf
(
stderr
,
"--- sectionDict stats ----
\n
"
);
sectionDict
.
statistics
();
fprintf
(
stderr
,
"--- excludeNameDict stats ----
\n
"
);
excludeNameDict
.
statistics
();
fprintf
(
stderr
,
"--- aliasDict stats ----
\n
"
);
aliasDict
.
statistics
();
fprintf
(
stderr
,
"--- typedefDict stats ----
\n
"
);
typedefDict
.
statistics
();
fprintf
(
stderr
,
"--- namespaceAliasDict stats ----
\n
"
);
namespaceAliasDict
.
statistics
();
fprintf
(
stderr
,
"--- groupDict stats ----
\n
"
);
groupDict
.
statistics
();
fprintf
(
stderr
,
"--- formulaDict stats ----
\n
"
);
formulaDict
.
statistics
();
fprintf
(
stderr
,
"--- formulaNameDict stats ----
\n
"
);
formulaNameDict
.
statistics
();
fprintf
(
stderr
,
"--- tagDestinationDict stats ----
\n
"
);
tagDestinationDict
.
statistics
();
fprintf
(
stderr
,
"--- compoundKeywordDict stats ----
\n
"
);
compoundKeywordDict
.
statistics
();
fprintf
(
stderr
,
"--- expandAsDefinedDict stats ----
\n
"
);
expandAsDefinedDict
.
statistics
();
fprintf
(
stderr
,
"--- memberHeaderDict stats ----
\n
"
);
memberHeaderDict
.
statistics
();
fprintf
(
stderr
,
"--- memberDocDict stats ----
\n
"
);
memberDocDict
.
statistics
();
}
int
annotatedClasses
;
int
hierarchyClasses
;
...
...
@@ -813,6 +854,8 @@ static void buildNamespaceList(Entry *root)
// the empty string test is needed for extract all case
nd
->
setBriefDescription
(
root
->
brief
);
nd
->
insertUsedFile
(
root
->
fileName
);
nd
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
nd
->
setBodyDef
(
fd
);
// add class to the list
namespaceList
.
inSort
(
nd
);
namespaceDict
.
insert
(
fullName
,
nd
);
...
...
@@ -4190,6 +4233,7 @@ static void generateFileDocs()
static
void
addSourceReferences
()
{
// add source references for class definitions
ClassListIterator
cli
(
classList
);
ClassDef
*
cd
=
0
;
for
(
cli
.
toFirst
();(
cd
=
cli
.
current
());
++
cli
)
...
...
@@ -4200,6 +4244,19 @@ static void addSourceReferences()
fd
->
addSourceRef
(
cd
->
getStartBodyLine
(),
cd
,
0
);
}
}
// add source references for namespace definitions
NamespaceListIterator
nli
(
namespaceList
);
NamespaceDef
*
nd
=
0
;
for
(
nli
.
toFirst
();(
nd
=
nli
.
current
());
++
nli
)
{
FileDef
*
fd
=
nd
->
getBodyDef
();
if
(
fd
&&
nd
->
isLinkableInProject
()
&&
nd
->
getStartBodyLine
()
!=-
1
)
{
fd
->
addSourceRef
(
nd
->
getStartBodyLine
(),
nd
,
0
);
}
}
// add source references for member names
MemberNameListIterator
mnli
(
memberNameList
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
...
...
@@ -4441,11 +4498,6 @@ static void findDefineDocumentation(Entry *root)
md
->
setMaxInitLines
(
root
->
initLines
);
if
(
root
->
mGrpId
!=-
1
)
md
->
setMemberGroupId
(
root
->
mGrpId
);
addMemberToGroups
(
root
,
md
);
//FileDef *fd=md->getFileDef();
//if (fd && root->mGrpId!=-1)
//{
// fd->addMemberToGroup(md,root->mGrpId);
//}
}
md
=
mn
->
next
();
}
...
...
@@ -4476,16 +4528,8 @@ static void findDefineDocumentation(Entry *root)
bool
ambig
;
md
->
setBodyDef
(
findFileDef
(
inputNameDict
,
root
->
fileName
,
ambig
));
md
->
addSectionsToDefinition
(
root
->
anchors
);
//if (root->mGrpId!=-1 && md->getMemberGroup()==0)
//{
// md->setMemberGroup(memberGroupDict[root->mGrpId]);
//}
if
(
root
->
mGrpId
!=-
1
)
md
->
setMemberGroupId
(
root
->
mGrpId
);
addMemberToGroups
(
root
,
md
);
//if (root->mGrpId!=-1)
//{
// fd->addMemberToGroup(md,root->mGrpId);
//}
}
}
md
=
mn
->
next
();
...
...
@@ -5979,6 +6023,8 @@ int main(int argc,char **argv)
if
(
Config
::
generateHtml
)
writeDoxFont
(
Config
::
htmlOutputDir
);
if
(
Config
::
generateRTF
)
writeDoxFont
(
Config
::
rtfOutputDir
);
//statistics();
// count the number of documented elements in the lists we have built.
// If the result is 0 we do not generate the lists and omit the
// corresponding links in the index.
...
...
src/filedef.cpp
View file @
f769c300
...
...
@@ -318,11 +318,12 @@ void FileDef::writeDocumentation(OutputList &ol)
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
ol
.
endGroupHeader
();
if
(
!
briefDescription
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
)
{
ol
+=
briefOutput
;
}
if
(
!
briefDescription
().
isEmpty
()
&&
!
documentation
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
&&
!
documentation
().
isEmpty
())
{
ol
.
newParagraph
();
}
...
...
src/groupdef.cpp
View file @
f769c300
...
...
@@ -478,6 +478,7 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup)
}
}
/*! Add a member to all groups it is contained in */
void
addMemberToGroups
(
Entry
*
root
,
MemberDef
*
md
)
{
QListIterator
<
QCString
>
sli
(
*
root
->
groups
);
...
...
src/latexgen.cpp
View file @
f769c300
...
...
@@ -407,11 +407,11 @@ void LatexGenerator::writeStyleSheetFile(QFile &f)
writeDefaultStyleSheetPart1
(
t
);
t
<<
"Generated at "
<<
dateToString
(
TRUE
);
if
(
Config
::
projectName
.
isEmpty
())
t
<<
" for "
<<
Config
::
projectName
<<
" "
;
t
<<
"by doxygen written by Dimitri van Heesch
\\
copyright
{}
1997-2000"
;
t
<<
"by doxygen written by Dimitri van Heesch
\\
copyright
~
1997-2000"
;
writeDefaultStyleSheetPart2
(
t
);
t
<<
"Generated at "
<<
dateToString
(
TRUE
);
if
(
Config
::
projectName
.
isEmpty
())
t
<<
" for "
<<
Config
::
projectName
<<
" "
;
t
<<
"by doxygen written by Dimitri van Heesch
\\
copyright
{}
1997-2000"
;
t
<<
"by doxygen written by Dimitri van Heesch
\\
copyright
~
1997-2000"
;
writeDefaultStyleSheetPart3
(
t
);
}
...
...
@@ -778,14 +778,14 @@ void LatexGenerator::writeStyleInfo(int part)
break
;
case
2
:
{
t
<<
" Dimitri van Heesch
\\
copyright
{}
1997-2000"
;
t
<<
" Dimitri van Heesch
\\
copyright
~
1997-2000"
;
t
<<
"}]{}
\n
"
;
writeDefaultStyleSheetPart2
(
t
);
}
break
;
case
4
:
{
t
<<
" Dimitri van Heesch
\\
copyright
{}
1997-2000"
;
t
<<
" Dimitri van Heesch
\\
copyright
~
1997-2000"
;
writeDefaultStyleSheetPart3
(
t
);
endPlainFile
();
}
...
...
src/memberdef.cpp
View file @
f769c300
...
...
@@ -1538,21 +1538,24 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
else
if
(
xmlType
==
enum_t
)
// enum
{
t
<<
" <enumvaluelist>"
<<
endl
;
MemberListIterator
emli
(
*
enumFields
);
MemberDef
*
emd
;
for
(
emli
.
toFirst
();(
emd
=
emli
.
current
());
++
emli
)
if
(
enumFields
)
{
t
<<
" <enumvalue>"
<<
endl
;
t
<<
" <name>"
;
writeXMLString
(
t
,
emd
->
name
());
t
<<
"</name>"
<<
endl
;
if
(
!
emd
->
init
.
isEmpty
())
MemberListIterator
emli
(
*
enumFields
);
MemberDef
*
emd
;
for
(
emli
.
toFirst
();(
emd
=
emli
.
current
());
++
emli
)
{
t
<<
" <initializer>"
;
writeXMLString
(
t
,
emd
->
init
);
t
<<
"</initializer>"
<<
endl
;
t
<<
" <enumvalue>"
<<
endl
;
t
<<
" <name>"
;
writeXMLString
(
t
,
emd
->
name
());
t
<<
"</name>"
<<
endl
;
if
(
!
emd
->
init
.
isEmpty
())
{
t
<<
" <initializer>"
;
writeXMLString
(
t
,
emd
->
init
);
t
<<
"</initializer>"
<<
endl
;
}
t
<<
" </enumvalue>"
<<
endl
;
}
t
<<
" </enumvalue>"
<<
endl
;
}
t
<<
" </enumvaluelist>"
<<
endl
;
}
...
...
src/membergroup.cpp
View file @
f769c300
...
...
@@ -25,6 +25,7 @@
#include "filedef.h"
#include "language.h"
#include "scanner.h"
#include "groupdef.h"
//static QCString idToName(int id)
//{
...
...
@@ -58,8 +59,9 @@ void MemberGroup::insertMember(MemberDef *md)
// memberList->first() ? memberList->first()->getSectionList() : 0,
// memberList->count(),
// md->getSectionList());
MemberDef
*
firstMd
=
memberList
->
first
();
if
(
inSameSection
&&
memberList
->
count
()
>
0
&&
memberList
->
first
()
->
getSectionList
()
!=
md
->
getSectionList
())
firstMd
->
getSectionList
()
!=
md
->
getSectionList
())
{
inSameSection
=
FALSE
;
}
...
...
@@ -68,6 +70,14 @@ void MemberGroup::insertMember(MemberDef *md)
inDeclSection
=
md
->
getSectionList
();
}
memberList
->
append
(
md
);
// copy the group of the first member in the memberGroup
GroupDef
*
gd
;
if
(
firstMd
&&
(
gd
=
firstMd
->
getGroupDef
()))
{
md
->
setGroupDef
(
gd
);
gd
->
insertMember
(
md
);
}
}
...
...
src/namespacedef.cpp
View file @
f769c300
...
...
@@ -251,9 +251,13 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
ol
.
endGroupHeader
();
ol
.
startTextBlock
();
if
(
!
briefDescription
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
)
{
ol
+=
briefOutput
;
}
if
(
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
&&
!
documentation
().
isEmpty
())
{
ol
.
newParagraph
();
}
if
(
!
documentation
().
isEmpty
())
...
...
src/pre.l
View file @
f769c300
...
...
@@ -278,16 +278,19 @@ static QCString stringize(const QCString &s)
*/
static void processConcatOperators(QCString &expr)
{
//printf("processConcatOperators: in=`%s'\n",expr.data());
QRegExp r("[ \\t\\n]*##[ \\t\\n]*");
int l,n,i=0;
if (expr.isEmpty()) return;
while ((n=r.match(expr,i,&l))!=-1)
{
//printf("Match: `%s'\n",expr.data()+i);
if (n+l+1<(int)expr.length() && expr.at(n+l)=='@' && expr.at(n+l+1)=='-')
{
// remove no-rescan marker after ID
l+=2;
}
//printf("found `%s'\n",expr.mid(n,l).data());
// remove the ## operator and the surrounding whitespace
expr=expr.left(n)+expr.right(expr.length()-n-l);
int k=n-1;
...
...
@@ -298,14 +301,15 @@ static void processConcatOperators(QCString &expr)
expr=expr.left(k-1)+expr.right(expr.length()-k-1);
n-=2;
}
i=n
+l
;
i=n;
}
//printf("processConcatOperators: out=`%s'\n",expr.data());
}
/*! replaces the function macro \a def whose argument list starts at
* \a pos in expression \a expr.
* Notice that this routine may scan beyond the \a expr string if needed.
*
The characters from the input file will be read
.
*
In that case the characters will be read from the input file
.
* The replacement string will be returned in \a result and the
* length of the (unexpanded) argument list is stored in \a len.
*/
...
...
@@ -338,7 +342,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
int argCount=0;
bool done=FALSE;
//
F
ASE 1: read the macro arguments
//
PH
ASE 1: read the macro arguments
if (def->nargs==0)
{
while ((cc=getNextChar(expr,rest,j))!=EOF)
...
...
@@ -442,7 +446,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
}
}
//
F
ASE 2: apply the macro function
//
PH
ASE 2: apply the macro function
if (argCount==def->nargs ||
(argCount>def->nargs && def->varArgs)) // matching parameters lists
{
...
...
@@ -486,7 +490,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
while (l<(int)d.length() && d.at(l)==' ') l++;
if (l<(int)d.length()-1 && d.at(l)=='#' && d.at(l+1)=='#') hash=TRUE;
}
//printf("request key %s result %s\n",key.data(),arg
s
[key]->data());
//printf("request key %s result %s\n",key.data(),arg
Table
[key]->data());
if (key.length()>1 && (subst=argTable[key]))
{
QCString substArg=*subst;
...
...
@@ -817,12 +821,12 @@ void addDefine()
//if ((d=defineDict[g_defName])==0) defineDict.insert(g_defName,newDefine());
}
static void outputChar(char c)
static
inline
void outputChar(char c)
{
if (g_includeStack.isEmpty() || g_curlyCount>0) g_outputBuf->addChar(c);
}
static void outputArray(const char *a,int len)
static
inline
void outputArray(const char *a,int len)
{
if (g_includeStack.isEmpty() || g_curlyCount>0) g_outputBuf->addArray(a,len);
}
...
...
@@ -1007,7 +1011,7 @@ BN [ \t\r\n]
<CopyLine>{ID}/{BN}*"(" {
Define *def=0;
//printf("Search for define %s\n",yytext);
if (
g_includeStack.isEmpty(
) &&
if (
(g_includeStack.isEmpty() || g_curlyCount>0
) &&
Config::macroExpansionFlag &&
/* (expandDefine=fileDefineCache->findDefine(g_yyFileName,yytext)) */
(def=g_fileDefineDict->find(yytext)) &&
...
...
@@ -1037,7 +1041,7 @@ BN [ \t\r\n]
<CopyLine>{ID} {
Define *def=0;
//printf("Search for define %s\n",yytext);
if (
g_includeStack.isEmpty(
) &&
if (
(g_includeStack.isEmpty() || g_curlyCount>0
) &&
Config::macroExpansionFlag &&
(def=g_fileDefineDict->find(yytext)) &&
def->nargs==-1 &&
...
...
@@ -1557,7 +1561,7 @@ BN [ \t\r\n]
outputChar('\n');
Define *def=0;
//printf("Define name=`%s' text=`%s' litTexti=`%s'\n",g_defName.data(),g_defText.data(),g_defLitText.data());
if (g_includeStack.isEmpty())
if (g_includeStack.isEmpty()
|| g_curlyCount>0
)
{
addDefine();
}
...
...
src/scanner.l
View file @
f769c300
...
...
@@ -87,6 +87,7 @@ static int roundCount = 0 ;
static int curlyCount = 0 ;
static int squareCount = 0 ;
static int ifCount = 0 ;
static int padCount = 0 ;
static int todoStartContext = 0;
static QCString todoString = 0;
static int testStartContext = 0;
...
...
@@ -1267,6 +1268,11 @@ TITLE [tT][iI][tT][lL][eE]
*pCopyCurlyString+=*yytext;
}
<FindMembers>":" {
if (current->type.isEmpty()) // bit pad field
{
addType(current);
current->name.sprintf("__pad%d__",padCount++);
}
BEGIN(BitFields);
current->bitfields+=":";
}
...
...
@@ -3485,6 +3491,7 @@ static void parseCompounds(Entry *rt)
//printf("-- %s ---------\n%s\n---------------\n",
// ce->name.data(),ce->program.data());
// init scanner state
padCount=0;
inputString = ce->program;
inputPosition = 0;
scanYYrestart( scanYYin ) ;
...
...
src/translator_it.h
View file @
f769c300
...
...
@@ -5,13 +5,15 @@
* Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (June 1999)
* Updates:
* 2000/08: translated new items used since version 1.1.3, 1.1.4, 1.1.5 and 1.2.0
* 2000/03: translated new items used since version 1.0 and 1.1.0
* 1999/19: entirely rewritten the translation to correct small variations due
* to feature additions and to conform to the layout of the latest
* commented translator.h for the english language
* 1999/09: corrected some small typos in the "new since 0.49-990425" section
* added the "new since 0.49-990728" section
* 2000/11: modified slightly the translation in trLegendDocs() function,
* translated new items used since version 1.2.1 and 1.2.2
* 2000/08: translated new items used since version 1.1.3, 1.1.4, 1.1.5 and 1.2.0
* 2000/03: translated new items used since version 1.0 and 1.1.0
* 1999/19: entirely rewritten the translation to correct small variations due
* to feature additions and to conform to the layout of the latest
* commented translator.h for the english language
* 1999/09: corrected some small typos in the "new since 0.49-990425" section
* added the "new since 0.49-990728" section
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
...
...
@@ -91,7 +93,7 @@ class TranslatorItalian : public Translator
*/
QCString
trGeneratedAutomatically
(
const
char
*
s
)
{
QCString
result
=
"Generato automaticamente da Doxygen"
;
QCString
result
=
"Generato automaticamente da Doxygen"
;
if
(
s
)
result
+=
(
QCString
)
" per "
+
s
;
result
+=
" a partire dal codice sorgente."
;
return
result
;
...
...
@@ -162,8 +164,8 @@ class TranslatorItalian : public Translator
/*! This is an introduction to the class hierarchy. */
QCString
trClassHierarchyDescription
()
{
return
"Questa lista di ereditarietà è ordinata "
"approssimativamente, ma non completamente, in ordine alfabetico:"
;
return
"Questa lista di ereditarietà è ordinata "
"approssimativamente, ma non completamente, in ordine alfabetico:"
;
}
/*! This is an introduction to the list with all files. */
...
...
@@ -171,7 +173,7 @@ class TranslatorItalian : public Translator
{
QCString
result
=
"Questa è una lista "
;
if
(
!
extractAll
)
result
+=
"dei files documentati "
;
else
result
+=
"di tutti i files "
;
else
result
+=
"di tutti i files "
;
result
+=
"con una loro breve descrizione:"
;
return
result
;
}
...
...
@@ -186,7 +188,7 @@ class TranslatorItalian : public Translator
{
QCString
result
=
"Questa è una lista "
;
if
(
!
extractAll
)
result
+=
"dei membri documentati, "
;
else
result
+=
"di tutti i membri "
;
else
result
+=
"di tutti i membri "
;
result
+=
"con collegamenti "
;
if
(
extractAll
)
result
+=
"alla documentazione della classe di ciascun membro:"
;
else
result
+=
"alla documentazione delle classi a cui appartengono:"
;
...
...
@@ -198,7 +200,7 @@ class TranslatorItalian : public Translator
{
QCString
result
=
"Questa è una lista "
;
if
(
!
extractAll
)
result
+=
"dei membri dei files documentati, "
;
else
result
+=
"di tutti i membri dei files "
;
else
result
+=
"di tutti i membri dei files "
;
result
+=
"con collegamenti "
;
if
(
extractAll
)
result
+=
"alla documentazione del file di ciascun membro:"
;
else
result
+=
"alla documentazione dei files a cui appartengono:"
;
...
...
@@ -476,7 +478,7 @@ class TranslatorItalian : public Translator
{
QCString
result
=
"Questa è la lista "
;
if
(
!
extractAll
)
result
+=
"dei namespaces documentati, "
;
else
result
+=
"di tutti i namespaces "
;
else
result
+=
"di tutti i namespaces "
;
result
+=
"con una loro breve descrizione:"
;
return
result
;
}
...
...
@@ -627,7 +629,7 @@ class TranslatorItalian : public Translator
{
QCString
result
=
"Questa è la lista "
;
if
(
!
extractAll
)
result
+=
"dei membri dei namespaces documentati, "
;
else
result
+=
"di tutti i membri dei namespaces "
;
else
result
+=
"di tutti i membri dei namespaces "
;
result
+=
"con collegamenti "
;
if
(
extractAll
)
result
+=
"alla documentazione del namespace per ciascun membro:"
;
...
...
@@ -679,7 +681,7 @@ class TranslatorItalian : public Translator
}
result
+=
" è stata generata a partire "
;
if
(
single
)
result
+=
"dal seguente file:"
;
else
result
+=
"dai seguenti files:"
;
else
result
+=
"dai seguenti files:"
;
return
result
;
}
...
...
@@ -906,21 +908,21 @@ class TranslatorItalian : public Translator
"Questa pagina spiega come interpretare i grafi generati da doxygen.<p>
\n
"
"Considerate l'esempio seguente:
\n
"
"
\\
code
\n
"
"/*!
Invisible class because of truncation
*/
\n
"
"/*!
Classe invisibile per troncamento
*/
\n
"
"class Invisible { };
\n\n
"
"/*!
Truncated class, inheritance relation is hidden
*/
\n
"
"/*!
Classe troncata, la relazione di ereditarietà e nascost
a */
\n
"
"class Truncated : public Invisible { };
\n\n
"
"/* Class
not documented with doxygen comments
*/
\n
"
"/* Class
e non documentata con i commenti speciali di doxygen
*/
\n
"
"class Undocumented { };
\n\n
"
"/*! Class
that is inherited using public inheritance
*/
\n
"
"/*! Class
e che utilizza una ereditarietà pubblic
a */
\n
"
"class PublicBase : public Truncated { };
\n\n
"
"/*! Class
that is inherited using protected inheritance
*/
\n
"
"/*! Class
e che utilizza una ereditarietà protett
a*/
\n
"
"class ProtectedBase { };
\n\n
"
"/*! Class
that is inherited using private inheritance
*/
\n
"
"/*! Class
e che utilizza una ereditarietà privat
a*/
\n
"
"class PrivateBase { };
\n\n
"
"/*! Class
that is used by the Inherited class
*/
\n
"
"/*! Class
e utilizzata dalla classe Inherited
*/
\n
"
"class Used { };
\n\n
"
"/*!
Super class that inherits a number of other classes
*/
\n
"
"/*!
Classe che eredita da varie classi
*/
\n
"
"class Inherited : public PublicBase,
\n
"
" protected ProtectedBase,
\n
"
" private PrivateBase,
\n
"
...
...
@@ -970,6 +972,32 @@ class TranslatorItalian : public Translator
{
return
"Lista dei test"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.1
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for KDE-2 IDL methods */
virtual
QCString
trDCOPMethods
()
{
return
"Metodi DCOP"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.2
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for IDL properties */
virtual
QCString
trProperties
()
{
return
"Proprietà"
;
}
/*! Used as a section header for IDL property documentation */
virtual
QCString
trPropertyDocumentation
()
{
return
"Documentazione delle Proprietà"
;
}
};
#endif
src/translator_ru.h
View file @
f769c300
...
...
@@ -796,6 +796,31 @@ class TranslatorRussian : public Translator
{
return
" "
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.1
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for KDE-2 IDL methods */
virtual
QCString
trDCOPMethods
()
{
return
" DCOP"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.2
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for IDL properties */
virtual
QCString
trProperties
()
{
return
""
;
}
/*! Used as a section header for IDL property documentation */
virtual
QCString
trPropertyDocumentation
()
{
return
" "
;
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment