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
ea948596
Commit
ea948596
authored
Mar 19, 2001
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.6-20010319
parent
f280bea9
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
369 additions
and
53 deletions
+369
-53
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
configgen.cpp
addon/configgen/configgen.cpp
+9
-0
config.doc
doc/config.doc
+8
-0
index.doc
doc/index.doc
+2
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classlist.cpp
src/classlist.cpp
+2
-1
config.h
src/config.h
+2
-1
config.l
src/config.l
+16
-1
definition.cpp
src/definition.cpp
+3
-2
doc.l
src/doc.l
+38
-1
doxygen.cpp
src/doxygen.cpp
+61
-10
filedef.cpp
src/filedef.cpp
+2
-1
groupdef.cpp
src/groupdef.cpp
+17
-0
groupdef.h
src/groupdef.h
+5
-1
index.cpp
src/index.cpp
+4
-4
memberdef.cpp
src/memberdef.cpp
+1
-1
rtfgen.cpp
src/rtfgen.cpp
+171
-9
rtfgen.h
src/rtfgen.h
+1
-0
scanner.l
src/scanner.l
+3
-2
translator_cz.h
src/translator_cz.h
+18
-13
No files found.
INSTALL
View file @
ea948596
DOXYGEN Version 1.2.6
DOXYGEN Version 1.2.6
-20010319
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (1
1
March 2001)
Dimitri van Heesch (1
9
March 2001)
README
View file @
ea948596
DOXYGEN Version 1.2.6
DOXYGEN Version 1.2.6
-20010319
Please read INSTALL for compilation instructions.
...
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (1
1
March 2001)
Dimitri van Heesch (1
9
March 2001)
VERSION
View file @
ea948596
1.2.6
1.2.6
-20010319
addon/configgen/configgen.cpp
View file @
ea948596
...
...
@@ -1544,6 +1544,15 @@ void init()
ConfigString
::
File
);
addDependency
(
"rtfStylesheetFile"
,
"generateRTF"
);
ConfigString
::
add
(
"rtfExtensionsFile"
,
"RTF_EXTENSIONS_FILE"
,
""
,
"file to load rtf extensions from"
,
"Set optional variables used in the generation of an rtf document.
\n
"
"Syntax is similar to doxygen's config file.
\n
"
,
ConfigString
::
File
);
addDependency
(
"rtfExtensionsFile"
,
"generateRTF"
);
//-----------------------------------------------------------------------------------------------
ConfigInfo
::
add
(
"Man"
,
"configuration options related to the man page output"
);
//-----------------------------------------------------------------------------------------------
...
...
doc/config.doc
View file @
ea948596
...
...
@@ -158,6 +158,7 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_quiet
QUIET
<
li
>
\
refitem
cfg_recursive
RECURSIVE
<
li
>
\
refitem
cfg_repeat_brief
REPEAT_BRIEF
<
li
>
\
refitem
cfg_rtf_extensions_file
RTF_EXTENSIONS_FILE
<
li
>
\
refitem
cfg_rtf_hyperlinks
RTF_HYPERLINKS
<
li
>
\
refitem
cfg_rtf_output
RTF_OUTPUT
<
li
>
\
refitem
cfg_rtf_stylesheet_file
RTF_STYLESHEET_FILE
...
...
@@ -956,6 +957,13 @@ EXTRA_PACKAGES = times
See
also
section
\
ref
doxygen_usage
for
information
on
how
to
generate
the
default
style
sheet
that
doxygen
normally
uses
.
\
anchor
cfg_rtf_extensions_file
<
dt
>\
c
RTF_EXTENSIONS_FILE
<
dd
>
Set
optional
variables
used
in
the
generation
of
an
rtf
document
.
Syntax
is
similar
to
doxygen
's config file.
A template extensions file can be generated using
<code>doxygen -e rtf extensionFile</code>.
</dl>
\subsection man_output Man page related options
...
...
doc/index.doc
View file @
ea948596
...
...
@@ -175,6 +175,8 @@ Thanks go to:
<li>The Comms group of <a href="http://www.symbian.com">Symbian</a> for donating
me an ultra cool <a href="http://www.psion.com/revoplus>Revo plus</a>
organizer!
<li>The band <a href="http://www.porcupinetree.com">Porcupine Tree</a> for
providing hours of great music to listen to while coding.
<li>many, many others for suggestions, patches and bug reports.
</ul>
*/
...
...
packages/rpm/doxygen.spec
View file @
ea948596
Name: doxygen
Version: 1.2.6
Version: 1.2.6
-20010319
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
...
...
src/classlist.cpp
View file @
ea948596
...
...
@@ -84,7 +84,8 @@ void ClassList::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *fi
<<
"
\"
>"
<<
convertToXML
(
cd
->
name
())
<<
"</class>"
<<
endl
;
}
ol
.
startMemberItem
(
FALSE
);
ol
.
writeString
(
cd
->
compoundTypeString
());
QCString
tmp
=
cd
->
compoundTypeString
();
ol
.
writeString
(
tmp
);
ol
.
writeString
(
" "
);
ol
.
insertMemberAlign
();
if
(
isLink
)
...
...
src/config.h
View file @
ea948596
/* This file was generated by configgen on
Sun Feb 25 14:30:1
8 2001
/* This file was generated by configgen on
Mon Mar 19 20:34:5
8 2001
* from config_templ.h
*
* DO NOT EDIT!
...
...
@@ -125,6 +125,7 @@ struct Config
static
bool
compactRTFFlag
;
/*!< generate more compact RTF */
static
bool
rtfHyperFlag
;
/*!< generate hyper links in RTF */
static
QCString
rtfStylesheetFile
;
/*!< file to load stylesheet definitions from */
static
QCString
rtfExtensionsFile
;
/*!< file to load rtf extensions from */
static
bool
generateMan
;
/*!< generate Man pages */
static
QCString
manOutputDir
;
/*!< the directory to put the man pages */
static
QCString
manExtension
;
/*!< extension the man page files */
...
...
src/config.l
View file @
ea948596
/* This file was generated by configgen on Mon
Feb 26 19:52:21
2001
/* This file was generated by configgen on Mon
Mar 19 20:34:59
2001
* from config_templ.l
*
* DO NOT EDIT!
...
...
@@ -157,6 +157,7 @@ QCString Config::rtfOutputDir = "rtf";
bool Config::compactRTFFlag = FALSE;
bool Config::rtfHyperFlag = FALSE;
QCString Config::rtfStylesheetFile;
QCString Config::rtfExtensionsFile;
bool Config::generateMan = TRUE;
QCString Config::manOutputDir = "man";
QCString Config::manExtension = ".3";
...
...
@@ -446,6 +447,7 @@ static void readIncludeFile(const char *incName)
<Start>"COMPACT_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactRTFFlag; }
<Start>"RTF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::rtfHyperFlag; }
<Start>"RTF_STYLESHEET_FILE"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfStylesheetFile; s->resize(0); }
<Start>"RTF_EXTENSIONS_FILE"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfExtensionsFile; s->resize(0); }
<Start>"GENERATE_MAN"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateMan; }
<Start>"MAN_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::manOutputDir; s->resize(0); }
<Start>"MAN_EXTENSION"[ \t]*"=" { BEGIN(GetString); s=&Config::manExtension; s->resize(0); }
...
...
@@ -762,6 +764,7 @@ void dumpConfig()
printf("compactRTFFlag=`%d'\n",Config::compactRTFFlag);
printf("rtfHyperFlag=`%d'\n",Config::rtfHyperFlag);
printf("rtfStylesheetFile=`%s'\n",Config::rtfStylesheetFile.data());
printf("rtfExtensionsFile=`%s'\n",Config::rtfExtensionsFile.data());
printf("# configuration options related to the man page output\n");
printf("generateMan=`%d'\n",Config::generateMan);
printf("manOutputDir=`%s'\n",Config::manOutputDir.data());
...
...
@@ -929,6 +932,7 @@ void Config::init()
Config::compactRTFFlag = FALSE;
Config::rtfHyperFlag = FALSE;
Config::rtfStylesheetFile.resize(0);
Config::rtfExtensionsFile.resize(0);
Config::generateMan = TRUE;
Config::manOutputDir = "man";
Config::manExtension = ".3";
...
...
@@ -2020,6 +2024,16 @@ void writeTemplateConfig(QFile *f,bool sl)
writeStringValue(t,Config::rtfStylesheetFile);
t << "\n";
if (!sl)
{
t << "\n";
t << "# Set optional variables used in the generation of an rtf document. \n";
t << "# Syntax is similar to doxygen's config file.\n";
t << "\n";
}
t << "RTF_EXTENSIONS_FILE = ";
writeStringValue(t,Config::rtfExtensionsFile);
t << "\n";
if (!sl)
{
t << "\n";
}
...
...
@@ -2698,6 +2712,7 @@ void substituteEnvironmentVars()
substEnvVarsInString( Config::latexHeaderFile );
substEnvVarsInString( Config::rtfOutputDir );
substEnvVarsInString( Config::rtfStylesheetFile );
substEnvVarsInString( Config::rtfExtensionsFile );
substEnvVarsInString( Config::manOutputDir );
substEnvVarsInString( Config::manExtension );
substEnvVarsInStrList( Config::includePath );
...
...
src/definition.cpp
View file @
ea948596
...
...
@@ -344,11 +344,11 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
void
Definition
::
writeInlineCode
(
OutputList
&
ol
,
const
char
*
scopeName
)
{
ol
.
pushGeneratorState
();
//printf("Source Fragment %s: %d-%d bodyDef=%p\n",name().data(),
// startBodyLine,endBodyLine,bodyDef);
if
(
Config
::
inlineSourceFlag
&&
startBodyLine
!=-
1
&&
endBodyLine
>=
startBodyLine
&&
bodyDef
)
{
//printf("Source Fragment %s: %d-%d\n",name().data(),
// startBodyLine,endBodyLine);
QCString
codeFragment
;
int
actualStart
=
startBodyLine
,
actualEnd
=
endBodyLine
;
if
(
readCodeFragment
(
bodyDef
->
absFilePath
(),
...
...
@@ -425,6 +425,7 @@ void Definition::writeSourceRefs(OutputList &ol,const char *scopeName)
}
parseText
(
ol
,
ldefLine
.
right
(
ldefLine
.
length
()
-
index
));
ol
.
writeString
(
"."
);
ol
.
newParagraph
();
}
ol
.
popGeneratorState
();
}
...
...
src/doc.l
View file @
ea948596
...
...
@@ -625,7 +625,8 @@ static void forceEndItemList()
enum ImageTypes
{
IT_Html,
IT_Latex
IT_Latex,
IT_RTF
};
// search for an image in the imageNameDict and if found
...
...
@@ -657,6 +658,9 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
case IT_Latex:
outputDir = Config::latexOutputDir;
break;
case IT_RTF:
outputDir = Config::rtfOutputDir;
break;
}
QCString outputFile = outputDir+"/"+result;
QFile outImage(QString(outputFile.data()));
...
...
@@ -731,6 +735,16 @@ void writeImage(ImageTypes it,const char *size)
outDoc->endImage(hasCaption);
}
break;
case IT_RTF:
{
outDoc->disableAllBut(OutputGenerator::RTF);
outDoc->startImage(curImageName,0,hasCaption);
if (hasCaption)
{
scanString(curImageCaption);
}
outDoc->endImage(hasCaption);
}
}
outDoc->popGeneratorState();
}
...
...
@@ -864,6 +878,8 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
%x DocHtmlImageOpt
%x DocLatexImageName
%x DocLatexImageOpt
%x DocRtfImageName
%x DocRtfImageOpt
%%
...
...
@@ -1708,6 +1724,9 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
<DocImage>[lL][aA][tT][eE][xX] {
BEGIN(DocLatexImageName);
}
<DocImage>[rR][tT][fF] {
BEGIN(DocRtfImageName);
}
<DocHtmlImageName>{FILE}|{URLMASK} {
curImageName = findAndCopyImage(stripQuotes(yytext),IT_Html);
curImageCaption.resize(0);
...
...
@@ -1727,6 +1746,24 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
<DocHtmlImageOpt>\"[^\n"]*\" {
curImageCaption=stripQuotes(yytext);
}
<DocRtfImageName>{FILE} {
curImageName = findAndCopyImage(stripQuotes(yytext),IT_RTF);
curImageCaption.resize(0);
if (curImageName.isEmpty())
{
BEGIN(DocScan);
}
else
{
BEGIN(DocRtfImageOpt);
}
}
<DocRtfImageOpt>\n {
writeImage(IT_RTF,0);
}
<DocRtfImageOpt>\"[^\n"]*\" {
curImageCaption=stripQuotes(yytext);
}
<DocLatexImageName>{FILE} {
curImageName = findAndCopyImage(stripQuotes(yytext),IT_Latex);
curImageCaption.resize(0);
...
...
src/doxygen.cpp
View file @
ea948596
...
...
@@ -407,7 +407,6 @@ static void buildGroupList(Entry *root)
gd
->
addSectionsToDefinition
(
root
->
anchors
);
Doxygen
::
groupList
.
append
(
gd
);
Doxygen
::
groupDict
.
insert
(
root
->
name
,
gd
);
addGroupToGroups
(
root
,
gd
);
gd
->
setRefItems
(
root
->
todoId
,
root
->
testId
,
root
->
bugId
);
}
}
...
...
@@ -419,6 +418,25 @@ static void buildGroupList(Entry *root)
}
}
static
void
organizeSubGroups
(
Entry
*
root
)
{
if
(
root
->
section
==
Entry
::
GROUPDOC_SEC
&&
!
root
->
name
.
isEmpty
())
{
GroupDef
*
gd
;
if
((
gd
=
Doxygen
::
groupDict
[
root
->
name
]))
{
addGroupToGroups
(
root
,
gd
);
}
}
EntryListIterator
eli
(
*
root
->
sublist
);
Entry
*
e
;
for
(;(
e
=
eli
.
current
());
++
eli
)
{
organizeSubGroups
(
e
);
}
}
//----------------------------------------------------------------------
static
void
buildFileList
(
Entry
*
root
)
...
...
@@ -3813,12 +3831,13 @@ static void findMemberDocumentation(Entry *root)
compoundKeywordDict
.
find
(
root
->
type
)
==
0
// that is not a keyword
// (to skip forward declaration of class etc.)
)
)
&&
!
root
->
stat
&&
// not static
(
!
root
->
doc
.
isEmpty
()
||
// has detailed docs
!
root
->
brief
.
isEmpty
()
||
// has brief docs
(
root
->
memSpec
&
Entry
::
Inline
)
||
// is inline
root
->
mGrpId
!=-
1
// is part of a group
)
)
&&
!
root
->
stat
// not static
/* && (
!root->doc.isEmpty() || // has detailed docs
!root->brief.isEmpty() || // has brief docs
(root->memSpec&Entry::Inline) || // is inline
root->mGrpId!=-1 || // is part of a group
) */
)
{
//printf("Documentation for member `%s' found args=`%s' excp=`%s'\n",
...
...
@@ -4423,9 +4442,9 @@ static void addSourceReferences()
NamespaceDef
*
nd
=
md
->
getNamespaceDef
();
FileDef
*
fd
=
md
->
getBodyDef
();
GroupDef
*
gd
=
md
->
getGroupDef
();
if
(
md
->
getStartBodyLine
()
!=-
1
&&
md
->
isLinkableInProject
()
&&
if
(
fd
&&
md
->
getStartBodyLine
()
!=-
1
&&
md
->
isLinkableInProject
()
&&
((
nd
&&
nd
->
isLinkableInProject
())
||
(
fd
&&
fd
->
isLinkableInProject
())
||
(
fd
->
isLinkableInProject
())
||
(
gd
&&
gd
->
isLinkableInProject
())
)
)
...
...
@@ -5661,6 +5680,8 @@ static void usage(const char *name)
msg
(
" RTF: %s -w rtf styleSheetFile
\n
"
,
name
);
msg
(
" HTML: %s -w html headerFile footerFile styleSheetFile [configFile]
\n
"
,
name
);
msg
(
" LaTeX: %s -w latex headerFile styleSheetFile [configFile]
\n\n
"
,
name
);
msg
(
"5) Use doxygen to generate an rtf extensions file
\n
"
);
msg
(
" RTF: %s -e rtf extensionsFile
\n\n
"
,
name
);
msg
(
"If -s is specified the comments in the config file will be omitted.
\n
"
);
msg
(
"If configName is omitted `Doxyfile' will be used as a default.
\n\n
"
);
exit
(
1
);
...
...
@@ -5726,6 +5747,30 @@ void readConfiguration(int argc, char **argv)
case
'u'
:
updateConfig
=
TRUE
;
break
;
case
'e'
:
formatName
=
getArg
(
argc
,
argv
,
optind
);
if
(
!
formatName
)
{
err
(
"Error:option -e is missing format specifier rtf.
\n
"
);
exit
(
1
);
}
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
{
if
(
optind
+
1
>=
argc
)
{
err
(
"Error: option
\"
-e rtf
\"
is missing an extensions file name
\n
"
);
exit
(
1
);
}
QFile
f
;
if
(
openOutputFile
(
argv
[
optind
+
1
],
f
))
{
RTFGenerator
::
writeExtensionsFile
(
f
);
}
exit
(
1
);
}
err
(
"Error: option
\"
-e
\"
has invalid format specifier.
\n
"
);
exit
(
1
);
break
;
case
'w'
:
formatName
=
getArg
(
argc
,
argv
,
optind
);
if
(
!
formatName
)
...
...
@@ -5982,7 +6027,12 @@ void parseInput()
s
=
Config
::
inputSources
.
first
();
while
(
s
)
{
inputSize
+=
readFileOrDirectory
(
s
,
&
Doxygen
::
inputNameList
,
QCString
path
=
s
;
uint
l
=
path
.
length
();
// strip trailing slashes
if
(
path
.
at
(
l
-
1
)
==
'\\'
||
path
.
at
(
l
-
1
)
==
'/'
)
path
=
path
.
left
(
l
-
1
);
inputSize
+=
readFileOrDirectory
(
path
,
&
Doxygen
::
inputNameList
,
Doxygen
::
inputNameDict
,
&
excludeNameDict
,
&
Config
::
filePatternList
,
&
Config
::
excludePatternList
,
...
...
@@ -6108,6 +6158,7 @@ void parseInput()
msg
(
"Building group list...
\n
"
);
buildGroupList
(
root
);
organizeSubGroups
(
root
);
msg
(
"Building namespace list...
\n
"
);
buildNamespaceList
(
root
);
...
...
src/filedef.cpp
View file @
ea948596
...
...
@@ -668,10 +668,11 @@ void FileDef::addIncludedByDependency(FileDef *fd,const char *incName,bool local
bool
FileDef
::
generateSourceFile
()
const
{
QCString
extension
=
name
().
right
(
4
);
return
!
isReference
()
&&
(
Config
::
sourceBrowseFlag
||
(
Config
::
verbatimHeaderFlag
&&
guessSection
(
name
())
==
Entry
::
HEADER_SEC
)
)
&&
name
().
right
(
4
)
!=
".doc"
&&
name
().
right
(
4
)
!=
".txt
"
;
extension
!=
".doc"
&&
extension
!=
".txt"
&&
extension
!=
".dox
"
;
}
src/groupdef.cpp
View file @
ea948596
...
...
@@ -38,6 +38,7 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t) :
fileList
=
new
FileList
;
classList
=
new
ClassList
;
groupList
=
new
GroupList
;
parentGroupList
=
new
GroupList
;
namespaceList
=
new
NamespaceList
;
pageDict
=
new
PageSDict
(
257
);
exampleDict
=
new
PageSDict
(
257
);
...
...
@@ -63,6 +64,7 @@ GroupDef::~GroupDef()
delete
fileList
;
delete
classList
;
delete
groupList
;
delete
parentGroupList
;
delete
namespaceList
;
delete
pageDict
;
delete
exampleDict
;
...
...
@@ -242,6 +244,20 @@ void GroupDef::addGroup(const GroupDef *def)
groupList
->
append
(
def
);
}
void
GroupDef
::
addParentGroup
(
const
GroupDef
*
def
)
{
if
(
Config
::
sortMembersFlag
)
parentGroupList
->
inSort
(
def
);
else
parentGroupList
->
append
(
def
);
}
bool
GroupDef
::
isASubGroup
()
const
{
return
parentGroupList
->
count
()
!=
0
;
}
int
GroupDef
::
countMembers
()
const
{
return
fileList
->
count
()
+
...
...
@@ -569,6 +585,7 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup)
if
(
!
s
->
isEmpty
()
&&
(
gd
=
Doxygen
::
groupDict
[
*
s
]))
{
gd
->
addGroup
(
subGroup
);
subGroup
->
addParentGroup
(
gd
);
}
}
}
...
...
src/groupdef.h
View file @
ea948596
...
...
@@ -52,6 +52,7 @@ class GroupDef : public Definition
void
addClass
(
const
ClassDef
*
def
);
void
addNamespace
(
const
NamespaceDef
*
def
);
void
addGroup
(
const
GroupDef
*
def
);
void
addParentGroup
(
const
GroupDef
*
def
);
void
addPage
(
PageInfo
*
def
);
// pages in this group
void
addExample
(
const
PageInfo
*
def
);
// examples in this group
void
insertMember
(
MemberDef
*
def
);
...
...
@@ -65,6 +66,7 @@ class GroupDef : public Definition
{
return
isLinkableInProject
()
||
isReference
();
}
bool
isASubGroup
()
const
;
void
computeAnchors
();
void
addMembersToMemberGroup
();
...
...
@@ -72,7 +74,8 @@ class GroupDef : public Definition
bool
visited
;
// number of times accessed for output - KPW
friend
void
writeGroupTreeNode
(
OutputList
&
,
GroupDef
*
);
// make accessible for writing tree view of group in index.cpp - KPW
friend
void
writeGroupTreeNode
(
OutputList
&
,
GroupDef
*
,
bool
);
// make accessible for writing tree view of group in index.cpp - KPW
protected
:
void
addMemberListToGroup
(
MemberList
*
,
bool
(
MemberDef
::*
)()
const
);
...
...
@@ -84,6 +87,7 @@ class GroupDef : public Definition
ClassList
*
classList
;
// list of classes in the group
NamespaceList
*
namespaceList
;
// list of namespaces in the group
GroupList
*
groupList
;
// list of sub groups.
GroupList
*
parentGroupList
;
// list of parent groups.
PageSDict
*
pageDict
;
// list of pages in the group
PageSDict
*
exampleDict
;
// list of examples in the group
...
...
src/index.cpp
View file @
ea948596
...
...
@@ -2122,7 +2122,7 @@ void writeGraphInfo(OutputList &ol)
* \author KPW
*/
void
writeGroupTreeNode
(
OutputList
&
ol
,
GroupDef
*
gd
)
void
writeGroupTreeNode
(
OutputList
&
ol
,
GroupDef
*
gd
,
bool
subLevel
)
{
HtmlHelp
*
htmlHelp
=
0
;
FTVHelp
*
ftvHelp
=
0
;
...
...
@@ -2139,7 +2139,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd)
GroupDef
*
subgd
=
0
;
GroupListIterator
gli
(
*
gd
->
groupList
);
if
(
!
gd
->
visited
)
if
(
!
gd
->
visited
&&
(
!
gd
->
isASubGroup
()
||
subLevel
)
)
{
//printf("gd->name()=%s #members=%d\n",gd->name().data(),gd->countMembers());
// write group info
...
...
@@ -2200,7 +2200,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd)
ol
.
startIndexList
();
for
(
gli
.
toLast
();(
subgd
=
gli
.
current
());
--
gli
)
{
writeGroupTreeNode
(
ol
,
subgd
);
writeGroupTreeNode
(
ol
,
subgd
,
TRUE
);
}
ol
.
endIndexList
();
}
...
...
@@ -2403,7 +2403,7 @@ void writeGroupHierarchy(OutputList &ol)
GroupDef
*
gd
;
for
(;(
gd
=
gli
.
current
());
++
gli
)
{
writeGroupTreeNode
(
ol
,
gd
);
writeGroupTreeNode
(
ol
,
gd
,
FALSE
);
}
ol
.
endIndexList
();
}
...
...
src/memberdef.cpp
View file @
ea948596
...
...
@@ -1432,7 +1432,7 @@ bool MemberDef::isLinkable()
bool
MemberDef
::
detailsAreVisible
()
const
{
return
!
documentation
().
isEmpty
()
||
// has detailed docs
//(
Config::sourceBrowseFlag
&& startBodyLine!=-1 && bodyDef) || // has reference to sources
//(
(Config::sourceBrowseFlag || Config::inlineSourceFlag)
&& startBodyLine!=-1 && bodyDef) || // has reference to sources
(
mtype
==
Enumeration
&&
docEnumValues
)
||
// has enum values
(
mtype
==
EnumValue
&&
!
briefDescription
().
isEmpty
())
||
// is doc enum value
(
!
briefDescription
().
isEmpty
()
&&
...
...
src/rtfgen.cpp
View file @
ea948596
...
...
@@ -46,6 +46,16 @@ struct ListItemInfo
};
static
ListItemInfo
listItemInfo
[
indentLevels
];
static
QCString
title
;
static
QCString
subject
;
static
QCString
comments
;
static
QCString
company
;
static
QCString
logoFilename
;
static
QCString
author
;
static
QCString
manager
;
static
QCString
documentType
;
static
QCString
documentId
;
static
QCString
keywords
;
// it is undocumented as far as I know, but
// "."'s in a bookmarkname are converted to "_"'s
...
...
@@ -582,6 +592,102 @@ static void loadStylesheet(const char *name, QDict<StyleData>& dict)
static
QDict
<
StyleData
>
Rtf_Style
(
257
);
void
RTFGenerator
::
writeExtensionsFile
(
QFile
&
file
)
{
QTextStream
t
(
&
file
);
t
<<
"# Generated by doxygen "
<<
versionString
<<
"
\n\n
"
;
t
<<
"# This file describes extensions used for generating RTF output.
\n
"
;
t
<<
"# All text after a hash (#) is considered a comment and will be ignored.
\n
"
;
t
<<
"# Remove a hash to activate a line.
\n\n
"
;
t
<<
"# Overrides the project title.
\n
"
;
t
<<
"#Title =
\n\n
"
;
t
<<
"# Name of the company that produced this document.
\n
"
;
t
<<
"#Company =
\n\n
"
;
t
<<
"# Filename of a company or project logo.
\n
"
;
t
<<
"#LogoFilename =
\n\n
"
;
t
<<
"# Author of the document.
\n
"
;
t
<<
"#Author =
\n\n
"
;
t
<<
"# Type of document (e.g. Design Specification, User Manual, etc.).
\n
"
;
t
<<
"#DocumentType =
\n\n
"
;
t
<<
"# Document tracking number.
\n
"
;
t
<<
"#DocumentId =
\n\n
"
;
t
<<
"# Name of the author's manager.
\n
"
;
t
<<
"# This field is not displayed in the document itself, but it is
\n
"
;
t
<<
"# available in the information block of the rtf file. In Microsoft
\n
"
;
t
<<
"# Word, it is available under File:Properties.
\n
"
;
t
<<
"#Manager =
\n\n
"
;
t
<<
"# Subject of the document.
\n
"
;
t
<<
"# This field is not displayed in the document itself, but it is
\n
"
;
t
<<
"# available in the information block of the rtf file. In Microsoft
\n
"
;
t
<<
"# Word, it is available under File:Properties.
\n
"
;
t
<<
"#Subject =
\n\n
"
;
t
<<
"# Comments regarding the document.
\n
"
;
t
<<
"# This field is not displayed in the document itself, but it is
\n
"
;
t
<<
"# available in the information block of the rtf file. In Microsoft
\n
"
;
t
<<
"# Word, it is available under File:Properties.
\n
"
;
t
<<
"#Comments =
\n\n
"
;
t
<<
"# Keywords associated with the document.
\n
"
;
t
<<
"# This field is not displayed in the document itself, but it is
\n
"
;
t
<<
"# available in the information block of the rtf file. In Microsoft
\n
"
;
t
<<
"# Word, it is available under File:Properties.
\n
"
;
t
<<
"#Keywords =
\n\n
"
;
}
static
void
loadExtensions
(
const
char
*
name
)
{
QFile
file
(
name
);
if
(
!
file
.
open
(
IO_ReadOnly
))
{
err
(
"Can't open RTF extensions file %s. Using defaults.
\n
"
,
name
);
return
;
}
msg
(
"Loading RTF extensions %s...
\n
"
,
name
);
static
const
QRegExp
separator
(
"[
\t
]*=[
\t
]*"
);
uint
lineNr
=
1
;
QTextStream
t
(
&
file
);
while
(
!
t
.
eof
())
{
QCString
s
(
4096
);
// string buffer of max line length
s
=
t
.
readLine
().
stripWhiteSpace
();
if
(
s
.
length
()
==
0
||
s
.
at
(
0
)
==
'#'
)
continue
;
// skip blanks & comments
int
sepLength
;
int
sepStart
=
separator
.
match
(
s
,
0
,
&
sepLength
);
if
(
sepStart
<=
0
)
// no valid assignment statement
{
warn
(
name
,
lineNr
,
"Assignment of extension field expected!
\n
"
);
continue
;
}
QCString
key
=
s
.
left
(
sepStart
);
QCString
data
=
s
.
data
()
+
sepStart
+
sepLength
;
if
(
key
==
"Title"
)
title
=
data
.
data
();
if
(
key
==
"Subject"
)
subject
=
data
.
data
();
if
(
key
==
"Comments"
)
comments
=
data
.
data
();
if
(
key
==
"Company"
)
company
=
data
.
data
();
if
(
key
==
"LogoFilename"
)
logoFilename
=
data
.
data
();
if
(
key
==
"Author"
)
author
=
data
.
data
();
if
(
key
==
"Manager"
)
manager
=
data
.
data
();
if
(
key
==
"DocumentType"
)
documentType
=
data
.
data
();
if
(
key
==
"DocumentId"
)
documentId
=
data
.
data
();
if
(
key
==
"Keywords"
)
keywords
=
data
.
data
();
lineNr
++
;
}
}
void
RTFGenerator
::
init
()
{
QCString
dir
=
Config
::
rtfOutputDir
;
...
...
@@ -607,6 +713,12 @@ void RTFGenerator::init()
// overwrite some (or all) definitions from file
if
(
!
Config
::
rtfStylesheetFile
.
isEmpty
())
loadStylesheet
(
Config
::
rtfStylesheetFile
,
Rtf_Style
);
// If user has defined an extension file, load its contents.
if
(
Config
::
rtfExtensionsFile
)
{
loadExtensions
(
Config
::
rtfExtensionsFile
);
}
}
static
QCString
makeIndexName
(
const
char
*
s
,
int
i
)
...
...
@@ -768,11 +880,20 @@ void RTFGenerator::startIndexSection(IndexSections is)
case
isTitlePageStart
:
// basic RTFstart
// get readyfor author etc
t
<<
"{
\\
info
\n
"
;
t
<<
"{
\\
title "
;
t
<<
"{
\\
title
{
\\
comment
"
;
break
;
case
isTitlePageAuthor
:
t
<<
"}
\n
{
\\
author "
;
t
<<
"}
\n
"
;
if
(
subject
)
t
<<
"{
\\
subject "
<<
subject
<<
"}
\n
"
;
if
(
comments
)
t
<<
"{
\\
comment "
<<
comments
<<
"}
\n
"
;
if
(
company
)
t
<<
"{
\\
company "
<<
company
<<
"}
\n
"
;
if
(
author
)
t
<<
"{
\\
author "
<<
author
<<
"}
\n
"
;
if
(
manager
)
t
<<
"{
\\
manager "
<<
manager
<<
"}
\n
"
;
if
(
documentType
)
t
<<
"{
\\
category "
<<
documentType
<<
"}
\n
"
;
if
(
keywords
)
t
<<
"{
\\
keywords "
<<
keywords
<<
"}
\n
"
;
t
<<
"{
\\
comment "
;
break
;
case
isMainPage
:
//Introduction
...
...
@@ -917,29 +1038,64 @@ void RTFGenerator::endIndexSection(IndexSections is)
switch
(
is
)
{
case
isTitlePageStart
:
if
(
title
)
// User has overridden document title in extensions file
t
<<
"}"
<<
title
;
else
t
<<
"}"
<<
Config
::
projectName
;
break
;
case
isTitlePageAuthor
:
{
t
<<
" Doxygen}
\n
"
"{
\\
creatim "
<<
dateToRTFDateString
()
<<
"}
\n
"
"}"
;
DBG_RTF
(
t
<<
"{
\\
comment end of infoblock}
\n
"
)
t
<<
"Doxgyen. }
\n
"
;
t
<<
"{
\\
creatim "
<<
dateToRTFDateString
()
<<
"}
\n
}"
;
DBG_RTF
(
t
<<
"{
\\
comment end of infoblock}
\n
"
);
// setup for this section
t
<<
Rtf_Style_Reset
<<
"
\n
"
;
t
<<
"
\\
sectd
\\
pgnlcrm
\n
"
;
t
<<
"{
\\
footer "
<<
Rtf_Style
[
"Footer"
]
->
reference
<<
"{
\\
chpgn}}
\n
"
;
// the title entry
DBG_RTF
(
t
<<
"{
\\
comment begin title page}
\n
"
)
t
<<
Rtf_Style_Reset
<<
Rtf_Style
[
"SubTitle"
]
->
reference
<<
endl
;
// set to title style
t
<<
"
\\
vertalc
\\
qc
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par"
;
if
(
logoFilename
)
{
t
<<
"{
\\
field
\\
flddirty {
\\
*
\\
fldinst INCLUDEPICTURE "
<<
logoFilename
;
t
<<
"
\\\\
*MERGEFORMAT} {
\\
fldrslt IMAGE }}
\\
par
\\
par
\n
"
;
}
if
(
company
)
{
t
<<
company
<<
"
\\
par
\\
par
\n
"
;
}
t
<<
Rtf_Style_Reset
<<
Rtf_Style
[
"Title"
]
->
reference
<<
endl
;
// set to title style
t
<<
"{
\\
field
\\
fldedit {
\\
*
\\
fldinst TITLE
\\\\
*MERGEFORMAT}{
\\
fldrslt TITLE}}
\\
par"
<<
endl
;
t
<<
Rtf_Style_Reset
<<
Rtf_Style
[
"SubTitle"
]
->
reference
<<
endl
;
// set to title style
t
<<
"
\\
par
\n
"
;
if
(
documentType
)
{
t
<<
documentType
<<
"
\\
par
\n
"
;
}
if
(
documentId
)
{
t
<<
documentId
<<
"
\\
par
\n
"
;
}
t
<<
"
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\\
par
\n
"
;
t
<<
Rtf_Style_Reset
<<
Rtf_Style
[
"SubTitle"
]
->
reference
<<
endl
;
// set to subtitle style
t
<<
"{
\\
field
\\
fldedit {
\\
*
\\
fldinst AUTHOR
\\\\
*MERGEFORMAT}{
\\
fldrslt AUTHOR}}
\\
par"
<<
endl
;
t
<<
"Version "
<<
Config
::
projectNumber
<<
"
\\
par"
;
t
<<
"{
\\
field
\\
fldedit {
\\
*
\\
fldinst CREATEDATE
\\\\
*MERGEFORMAT}"
"{
\\
fldrslt CREATEDATE}}
\\
par"
<<
endl
;
t
<<
"
\\
page
\\
page"
;
DBG_RTF
(
t
<<
"{
\\
comment End title page}"
<<
endl
)
// table of contents section
DBG_RTF
(
t
<<
"{
\\
comment Table of contents}
\n
"
)
t
<<
"
\\
vertalt
\n
"
;
t
<<
Rtf_Style_Reset
<<
endl
;
t
<<
"{
\\
field
\\
fldedit {
\\
*
\\
fldinst TOC
\\\\
f
\\\\
*MERGEFORMAT}{
\\
fldrslt Table of contents}}
\\
par
\n
"
;
t
<<
Rtf_Style_Reset
<<
endl
;
...
...
@@ -1743,7 +1899,7 @@ void RTFGenerator::endMemberDescription()
endEmphasis
();
newParagraph
();
decrementIndentLevel
();
t
<<
"}"
<<
endl
;
t
<<
"
\\
par
}"
<<
endl
;
}
void
RTFGenerator
::
startDescList
()
...
...
@@ -2013,9 +2169,15 @@ void RTFGenerator::endMemberList()
#endif
}
void
RTFGenerator
::
startImage
(
const
char
*
,
const
char
*
,
bool
)
void
RTFGenerator
::
startImage
(
const
char
*
name
,
const
char
*
,
bool
)
{
// not yet implemented
newParagraph
();
t
<<
"{"
<<
endl
;
t
<<
Rtf_Style_Reset
<<
endl
;
t
<<
"
\\
par
\\
pard
\\
qc {
\\
field
\\
flddirty {
\\
*
\\
fldinst INCLUDEPICTURE "
;
t
<<
name
;
t
<<
"
\\\\
*MERGEFORMAT}{
\\
fldrslt IMAGE}}
\\
par"
<<
endl
;
t
<<
"}"
<<
endl
;
}
void
RTFGenerator
::
endImage
(
bool
)
...
...
src/rtfgen.h
View file @
ea948596
...
...
@@ -29,6 +29,7 @@ class RTFGenerator : public OutputGenerator
~
RTFGenerator
();
static
void
init
();
static
void
writeStyleSheetFile
(
QFile
&
f
);
static
void
writeExtensionsFile
(
QFile
&
file
);
OutputGenerator
*
copy
();
//OutputGenerator *clone() { return new RTFGenerator(*this); }
...
...
src/scanner.l
View file @
ea948596
...
...
@@ -372,6 +372,7 @@ FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [a-z_A-Z0-9\-\+]
FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+"\"")
ID [a-z_A-Z][a-z_A-Z0-9]*
LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
ATTR ({B}+[^>\n]*)?
...
...
@@ -3149,13 +3150,13 @@ TITLE [tT][iI][tT][lL][eE]
<SkipCode>. {
*pSkipDoc+=*yytext;
}
<AnchorLabel>{ID} {
<AnchorLabel>{
LABEL
ID} {
sectionLabel=yytext;
addSection();
current->doc += "\\anchor "+sectionLabel+"\n";
BEGIN(lastAnchorContext);
}
<SectionLabel>{ID} {
<SectionLabel>{
LABEL
ID} {
sectionLabel=yytext;
sectionTitle.resize(0);
BEGIN(SectionTitle);
...
...
src/translator_cz.h
View file @
ea948596
...
...
@@ -93,6 +93,11 @@
// 2001/02/26 (Petr Prikryl)
// - Update for "new since 1.2.5" version (trBug(), trBugList()).
//
// 2001/03/12 (Petr Prikryl)
// - Minor correction of comments which copied the same
// corrections in translator.h (doubled backslash) just after
// 1.2.6 release.
//
// Notices:
// --------
// The conditional compilation ensures or the neutral functionality
...
...
@@ -224,7 +229,7 @@ class TranslatorCzech : public Translator
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command).
* compounds or files (see the \
\
group command).
*/
virtual
QCString
trModules
()
{
return
Decode
(
"Moduly"
);
}
...
...
@@ -534,48 +539,48 @@ class TranslatorCzech : public Translator
return
Decode
((
QCString
)
"Diagram dìdiènosti pro tøídu "
+
clName
);
}
/*! this text is generated when the \internal command is used. */
/*! this text is generated when the \
\
internal command is used. */
virtual
QCString
trForInternalUseOnly
()
{
return
Decode
(
"Pouze pro vnitøní použití."
);
}
/*! this text is generated when the \reimp command is used. */
/*! this text is generated when the \
\
reimp command is used. */
virtual
QCString
trReimplementedForInternalReasons
()
{
return
Decode
(
"Reimplementováno z interních dùvodù; "
"aplikaèní rozhraní zachováno."
);
}
/*! this text is generated when the \warning command is used. */
/*! this text is generated when the \
\
warning command is used. */
virtual
QCString
trWarning
()
{
return
Decode
(
"Pozor"
);
}
/*! this text is generated when the \bug command is used. */
/*! this text is generated when the \
\
bug command is used. */
virtual
QCString
trBugsAndLimitations
()
{
return
Decode
(
"Chyby a omezení"
);
}
/*! this text is generated when the \version command is used. */
/*! this text is generated when the \
\
version command is used. */
virtual
QCString
trVersion
()
{
return
Decode
(
"Verze"
);
}
/*! this text is generated when the \date command is used. */
/*! this text is generated when the \
\
date command is used. */
virtual
QCString
trDate
()
{
return
Decode
(
"Datum"
);
}
/*! this text is generated when the \author command is used. */
/*! this text is generated when the \
\
author command is used. */
virtual
QCString
trAuthors
()
{
return
Decode
(
"Autor/autoøi"
);
}
/*! this text is generated when the \return command is used. */
/*! this text is generated when the \
\
return command is used. */
virtual
QCString
trReturns
()
{
return
Decode
(
"Návratová hodnota"
);
}
/*! this text is generated when the \sa command is used. */
/*! this text is generated when the \
\
sa command is used. */
virtual
QCString
trSeeAlso
()
{
return
Decode
(
"Viz také"
);
}
/*! this text is generated when the \param command is used. */
/*! this text is generated when the \
\
param command is used. */
virtual
QCString
trParameters
()
{
return
Decode
(
"Parametry"
);
}
/*! this text is generated when the \exception command is used. */
/*! this text is generated when the \
\
exception command is used. */
virtual
QCString
trExceptions
()
{
return
Decode
(
"Výjimky"
);
}
...
...
@@ -1195,7 +1200,7 @@ class TranslatorCzech : public Translator
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \bug item */
/*! Used as a marker that is put before a \
\
bug item */
virtual
QCString
trBug
()
{
return
Decode
(
"Chyba"
);
...
...
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