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
e4cebf12
Commit
e4cebf12
authored
Dec 24, 2000
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.4
parent
ba068113
Changes
25
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
329 additions
and
256 deletions
+329
-256
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
doxygen_manual.tex
doc/doxygen_manual.tex
+1
-1
grouping.doc
doc/grouping.doc
+15
-1
install.doc
doc/install.doc
+4
-6
example.tag
examples/example.tag
+11
-2
group.cpp
examples/group.cpp
+49
-27
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+1
-1
code.l
src/code.l
+3
-0
declinfo.l
src/declinfo.l
+4
-1
doc.l
src/doc.l
+1
-1
doxygen.cpp
src/doxygen.cpp
+23
-12
index.cpp
src/index.cpp
+9
-4
instdox.cpp
src/instdox.cpp
+1
-1
latexgen.cpp
src/latexgen.cpp
+1
-1
memberdef.cpp
src/memberdef.cpp
+7
-6
memberlist.cpp
src/memberlist.cpp
+2
-2
pre.l
src/pre.l
+2
-1
scanner.l
src/scanner.l
+142
-78
tagreader.cpp
src/tagreader.cpp
+1
-0
util.cpp
src/util.cpp
+42
-103
util.h
src/util.h
+2
-2
make.pl
wintools/make.pl
+2
-0
No files found.
INSTALL
View file @
e4cebf12
DOXYGEN Version 1.2.
3-20001220
DOXYGEN Version 1.2.
4
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (2
0
December 2000)
Dimitri van Heesch (2
4
December 2000)
README
View file @
e4cebf12
DOXYGEN Version 1.2.
3-20001220
DOXYGEN Version 1.2.
4
Please read INSTALL for compilation instructions.
...
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (2
0
December 2000)
Dimitri van Heesch (2
4
December 2000)
VERSION
View file @
e4cebf12
1.2.
3-20001220
1.2.
4
doc/doxygen_manual.tex
View file @
e4cebf12
...
...
@@ -15,7 +15,7 @@
\documentclass
[a4paper,ps2pdf]
{
article
}
\usepackage
{
a4wide
}
\usepackage
{
makeidx
}
\usepackage
{
fancyh
eadings
}
\usepackage
{
fancyh
dr
}
\usepackage
{
epsf
}
\usepackage
{
doxygen
}
\usepackage
{
multicol
}
...
...
doc/grouping.doc
View file @
e4cebf12
...
...
@@ -33,7 +33,21 @@ To define a group, you should put the \ref cmddefgroup "\\defgroup"
command in a special comment block. The first argument of the command
is a label that should uniquely identify the group. You can make an
entity a member of a specific group by putting
a \ref cmdingroup "\\ingroup" command inside its documentation.
a \ref cmdingroup "\\ingroup" command inside its documentation block.
To avoid putting \ref cmdingroup "\\ingroup" commands in the documentation
of each member you can also group members together by the
open marker <code>\@{</code> before the group and the
closing marker <code>\@}</code> after the group. The markers can
be put in the documentation of the group definition or in a separate
documentation block.
Groups can also be nested using these grouping markers.
Note that compound entities (like classes, files and namespaces) can
be put into multiple groups, but members (like variable, functions, typedefs
and enums) can only be a member of one group
(this restriction is to avoid ambiguous linking targets).
\par Example:
\verbinclude group.cpp
...
...
doc/install.doc
View file @
e4cebf12
...
...
@@ -462,19 +462,17 @@ Compilation is now done by performing the following steps:
nmake
\endverbatim
<li>To generate the doxygen documentation, do ensure, that the
<code>html</code> and <code>latex</code> subdirectories exist.
Then go to the <code>doc</code> subdirectory and type:
<li>To generate the doxygen documentation, go to the <code>doc</code>
subdirectory and type:
\verbatim
doxygen
nmake
\endverbatim
The generated docs int HTML are located in the <code>html</code>
The generated docs int HTML are located in the <code>
..\
html</code>
subdirectory.
The sources for LaTeX documentation are located in <code>latex</code>
The sources for LaTeX documentation are located in <code>
..\
latex</code>
subdirectory. From those sources, the DVI, PostScript, and PDF
documentation can be generated.
</ol>
...
...
examples/example.tag
View file @
e4cebf12
>Test: "class_test.html"
example a0 "()"
<tagfile>
<compound kind="class">
<name>Test</name>
<filename>class_test.html</filename>
<member kind="function">
<name>example</name>
<anchor>a0</anchor>
<arglist>()</arglist>
</member>
</compound>
</tagfile>
examples/group.cpp
View file @
e4cebf12
/*
! \
defgroup group1 The First Group
/*
* @
defgroup group1 The First Group
* This is the first group
* @{
*/
/*! \defgroup group2 The Second Group
/** @brief class C1 in group 1 */
class
C1
{};
/** @brief class C2 in group 1 */
class
C2
{};
/** function in group 1 */
void
func
()
{}
/** @} end of group1 */
/**
* @defgroup group2 The Second Group
* This is the second group
*/
/*
! \
defgroup group3 The Third Group
/*
* @
defgroup group3 The Third Group
* This is the third group
*/
/*
! \
defgroup group4 The Fourth Group
*
\
ingroup group3
/*
* @
defgroup group4 The Fourth Group
*
@
ingroup group3
* Group 4 is a subgroup of group 3
*/
/*! \ingroup group1
* \brief class C1 in group 1
*/
class
C1
{};
/*! \ingroup group1
* \brief class C2 in group 1
*/
class
C2
{};
/*! \ingroup group2
* \brief class C3 in group 2
/**
* @ingroup group2
* @brief class C3 in group 2
*/
class
C3
{};
/*
! \
ingroup group2
*
\
brief class C4 in group 2
/*
* @
ingroup group2
*
@
brief class C4 in group 2
*/
class
C4
{};
/*
! \
ingroup group3
*
\brief class C5 in \link group3 the third group\
endlink.
/*
* @
ingroup group3
*
@brief class C5 in @link group3 the third group@
endlink.
*/
class
C5
{};
/*! \ingroup group1 group2 group3 group4
* namespace N1 is in all groups
* \sa \link group1 The first group\endlink, group2, group3, group4
/** @ingroup group1 group2 group3 group4
* namespace N1 is in four groups
* @sa @link group1 The first group@endlink, group2, group3, group4
*
* Also see @ref mypage2
*/
namespace
N1
{};
/*! \file
* \ingroup group3
* \brief this file in group 3
/** @file
* @ingroup group3
* @brief this file in group 3
*/
/** @defgroup group5 The Fifth Group
* This is the fifth group
* @{
*/
/** @page mypage1 This is a section in group 5
* Text of the first section
*/
/** @page mypage2 This is another section in group 5
* Text of the second section
*/
/** @} */
packages/rpm/doxygen.spec
View file @
e4cebf12
Name: doxygen
Version: 1.2.
3-20001220
Version: 1.2.
4
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
e4cebf12
...
...
@@ -654,7 +654,6 @@ void ClassDef::writeDocumentation(OutputList &ol)
QCString
pageTitle
=
name
().
copy
();
QCString
pageType
;
ArgumentList
*
outerTempArgList
=
outerTemplateArguments
();
if
(
outerTempArgList
)
pageType
+=
" Template"
;
switch
(
compType
)
{
case
Class
:
pageType
+=
" Class"
;
break
;
...
...
@@ -663,6 +662,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
default
:
pageType
+=
" Interface"
;
break
;
}
pageTitle
+=
pageType
+
" Reference"
;
if
(
outerTempArgList
)
pageTitle
.
prepend
(
" Template"
);
startFile
(
ol
,
fileName
,
pageTitle
);
startTitle
(
ol
,
getOutputFileBase
());
parseText
(
ol
,
theTranslator
->
trCompoundReference
(
name
(),
compType
,
outerTempArgList
!=
0
));
...
...
src/code.l
View file @
e4cebf12
...
...
@@ -1140,6 +1140,9 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
<Body>[0-9]+ {
g_code->codify(yytext);
}
<Body>[0-9]+[xX][0-9A-F]+ {
g_code->codify(yytext);
}
<MemberCall2,FuncCall>{KEYWORD}/([^a-z_A-Z0-9]) {
addParmType();
g_parmName=yytext;
...
...
src/declinfo.l
View file @
e4cebf12
...
...
@@ -225,6 +225,9 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
BEGIN( Start );
declinfoYYlex();
//printf("type=`%s' class=`%s' name=`%s' args=`%s'\n",
// type.data(),scope.data(),name.data(),args.data());
cl=scope.copy();
//printf("scope=`%s'\n",scope.data());
int il=0,ir=0;
...
...
@@ -248,7 +251,7 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
a=removeRedundantWhiteSpace(args);
exc=removeRedundantWhiteSpace(exceptionString);
if (!t.isEmpty() && t.at(t.length()-1)==')')
if (!t.isEmpty() && t.at(t.length()-1)==')')
// for function pointers
{
a.prepend(")");
t=t.left(t.length()-1);
...
...
src/doc.l
View file @
e4cebf12
...
...
@@ -760,7 +760,7 @@ FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+
ID [a-z_A-Z][a-z_A-Z0-9]*
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPEMASK {ID}?(("::"|"#")?(~)?{ID})+
URLMASK [a-z_A-Z0-9\~\:\?\@\%\#\.\-\+\/\=]+
URLMASK [a-z_A-Z0-9\~\:\?\@\
&\
%\#\.\-\+\/\=]+
NONTERM [\{\}\[\]\`\~\@\|\-\+\#\$\/\\\!\%\^\&\*()a-z_A-Z<>0-9]
WORD ({NONTERM}+([^\n\t ]*{NONTERM}+)?)|("\""[^\n\"]"\"")
ATTR ({B}+[^>\n]*)?
...
...
src/doxygen.cpp
View file @
e4cebf12
...
...
@@ -66,8 +66,6 @@
// lists
ClassList
classList
;
// all documented classes
NamespaceList
namespaceList
;
// all namespaces
//PageList *exampleList = new PageList; // all example files
//PageList *pageList = new PageList; // all related documentation pages
MemberNameList
memberNameList
;
// class member + related functions
MemberNameList
functionNameList
;
// all unrelated functions
FileNameList
inputNameList
;
// all input files
...
...
@@ -122,7 +120,6 @@ void clearAll()
namespaceDict
.
clear
();
memberNameDict
.
clear
();
functionNameDict
.
clear
();
//substituteDict.clear();
sectionDict
.
clear
();
inputNameDict
->
clear
();
excludeNameDict
.
clear
();
...
...
@@ -1077,7 +1074,6 @@ static void findUsingDeclarations(Entry *root)
}
else
if
(
fd
)
{
//printf("Inside file %s\n",fd->name().data());
fd
->
addUsingDeclaration
(
usingCd
);
}
}
...
...
@@ -1252,7 +1248,7 @@ static MemberDef *addVariableToFile(
);
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
inputNameDict
,
root
->
fileName
,
ambig
);
FileDef
*
fd
=
findFileDef
(
inputNameDict
,
root
->
fileName
,
ambig
);
// see if the function is inside a namespace
NamespaceDef
*
nd
=
0
;
...
...
@@ -1678,8 +1674,9 @@ static void buildMemberList(Entry *root)
//}
// new member function, signal or slot.
//printf("new member: %s class template args=`%s'\n",
// root->args.data(),argListToString(cd->templateArguments()).data());
//printf("new member: %s member template args=`%s'\n",
// root->args.data(),
// argListToString(root->mtArgList).data());
MemberDef
*
md
=
new
MemberDef
(
root
->
fileName
,
root
->
startLine
,
root
->
type
,
name
,
root
->
args
,
root
->
exception
,
...
...
@@ -3246,11 +3243,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
}
}
if
(
root
->
tArgList
==
0
&&
!
classTempList
.
isEmpty
())
if
(
root
->
tArgList
==
0
&&
root
->
mtArgList
==
0
&&
!
classTempList
.
isEmpty
())
{
// no template specifiers found during parsing (because \fn was used),
// but there are template names in the scope, so we build the template
// specifiers from that.
printf
(
"Building template list from `%s'
\n
"
,
classTempList
.
data
());
root
->
tArgList
=
new
ArgumentList
;
QRegExp
re
(
idMask
);
int
i
,
p
=
0
,
l
;
...
...
@@ -3385,7 +3383,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
"4. class definition %s found
\n
"
,
cd
->
name
().
data
());
int
ci
;
ArgumentList
*
classTemplArgs
=
cd
->
templateArguments
();
ArgumentList
*
funcTemplArgs
=
md
->
t
emplateArguments
();
ArgumentList
*
funcTemplArgs
=
md
->
memberDefT
emplateArguments
();
if
((
ci
=
cd
->
name
().
find
(
"::"
))
!=-
1
)
// nested class
{
ClassDef
*
parentClass
=
getClass
(
cd
->
name
().
left
(
ci
));
...
...
@@ -3475,8 +3473,11 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
//printf("root->tArgList=`%s'\n",argListToString(root->tArgList).data());
if
(
matching
)
// replace member's argument list
{
//printf("Setting scope template argument of member to %s\n",
// argListToString(root->tArgList).data()
//printf("Setting scope template argument of member %s to %s\n",
// md->name().data(), argListToString(root->tArgList).data()
// );
//printf("Setting member template argument of member %s to %s\n",
// md->name().data(), argListToString(root->mtArgList).data()
// );
md
->
setScopeDefTemplateArguments
(
root
->
tArgList
);
md
->
setMemberDefTemplateArguments
(
root
->
mtArgList
);
...
...
@@ -3949,7 +3950,17 @@ static void findEnums(Entry *root)
else
if
(
isGlobal
)
{
md
->
setDefinition
(
name
);
fd
->
insertMember
(
md
);
if
(
fd
==
0
&&
root
->
tagInfo
)
{
bool
ambig
;
QCString
filePathName
=
root
->
parent
->
fileName
;
fd
=
findFileDef
(
inputNameDict
,
filePathName
,
ambig
);
}
if
(
fd
)
{
fd
->
insertMember
(
md
);
md
->
setFileDef
(
fd
);
}
}
else
if
(
cd
)
{
...
...
src/index.cpp
View file @
e4cebf12
...
...
@@ -704,7 +704,7 @@ int countNamespaces()
NamespaceDef
*
nd
;
for
(;(
nd
=
nli
.
current
());
++
nli
)
{
if
(
nd
->
isLinkableInProject
()
&&
nd
->
countMembers
()
>
0
)
count
++
;
if
(
nd
->
isLinkableInProject
())
count
++
;
}
return
count
;
}
...
...
@@ -746,12 +746,17 @@ void writeNamespaceIndex(OutputList &ol)
//ol.newParagraph();
ol
.
endTextBlock
();
ol
.
startIndexList
()
;
bool
first
=
TRUE
;
NamespaceDef
*
nd
=
namespaceList
.
first
();
while
(
nd
)
{
if
(
nd
->
isLinkableInProject
()
&&
nd
->
countMembers
()
>
0
)
if
(
nd
->
isLinkableInProject
())
{
if
(
first
)
{
ol
.
startIndexList
();
first
=
FALSE
;
}
ol
.
writeStartAnnoItem
(
"namespace"
,
nd
->
getOutputFileBase
(),
0
,
nd
->
name
());
if
(
!
nd
->
briefDescription
().
isEmpty
())
{
...
...
@@ -776,7 +781,7 @@ void writeNamespaceIndex(OutputList &ol)
}
nd
=
namespaceList
.
next
();
}
ol
.
endIndexList
();
if
(
!
first
)
ol
.
endIndexList
();
if
(
hasHtmlHelp
)
{
htmlHelp
->
decContentsDepth
();
...
...
src/instdox.cpp
View file @
e4cebf12
...
...
@@ -146,7 +146,7 @@ void writeInstallScript()
t
<<
" print STDERR
\"
Error: opening file $oldf for writing
\\
n
\"
;
\n
"
;
t
<<
" exit 1;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" if ($oldf
!=
\"
tree.js
\"
) {
\n
"
;
t
<<
" if ($oldf
ne
\"
tree.js
\"
) {
\n
"
;
t
<<
" while (<F>) {
\n
"
;
t
<<
" s/doxygen
\\
=
\\\"
([^
\\\"\\
:
\\
t
\\
>
\\
<]*)
\\
:([^
\\\"\\
t
\\
>
\\
<]*)
\\\"
(href|src)=
\\\"\\
2/doxygen
\\
=
\\\"
$1:$subst{$1}
\\\"
\\
3=
\\\"
$subst{$1}/g;
\n
"
;
t
<<
" print G
\"
$_
\"
;
\n
"
;
...
...
src/latexgen.cpp
View file @
e4cebf12
...
...
@@ -510,7 +510,7 @@ void LatexGenerator::startIndexSection(IndexSections is)
bool
found
=
FALSE
;
while
(
nd
&&
!
found
)
{
if
(
nd
->
isLinkableInProject
()
&&
nd
->
countMembers
()
>
0
)
if
(
nd
->
isLinkableInProject
())
{
if
(
Config
::
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
t
<<
"{"
;
// Namespace Documentation}\n":
...
...
src/memberdef.cpp
View file @
e4cebf12
...
...
@@ -258,7 +258,7 @@ MemberDef::MemberDef(const char *df,int dl,
initLines
=
0
;
type
=
t
;
args
=
a
;
args
=
args
.
stripWhiteSpace
(
);
args
=
removeRedundantWhiteSpace
(
args
);
if
(
type
.
isEmpty
())
decl
=
name
()
+
args
;
else
decl
=
type
+
" "
+
name
()
+
args
;
declLine
=
0
;
memberGroup
=
0
;
...
...
@@ -763,11 +763,11 @@ void MemberDef::writeDeclaration(OutputList &ol,
// if member template specifiers are not part of the name, but they are
// present, we add them
if
(
tArgList
&&
!
(
name
().
find
(
'<'
)
!=-
1
&&
name
().
find
(
'>'
)
!=-
1
)
&&
cd
&&
cd
->
templateArguments
())
{
ol
.
docify
(
tempArgListToString
(
tArgList
));
}
//
if (tArgList && !(name().find('<')!=-1 && name().find('>')!=-1)
//
&& cd && cd->templateArguments())
//
{
//
ol.docify(tempArgListToString(tArgList));
//
}
if
(
argsString
())
{
...
...
@@ -923,6 +923,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if
(
si
==-
1
)
si
=
0
;
while
((
pi
=
r
.
match
(
ldef
,
i
+
l
,
&
l
))
!=-
1
)
ei
=
i
=
pi
+
l
;
// first si characters of ldef contain compound type name
ol
.
startMemberDocName
();
ol
.
docify
(
ldef
.
left
(
si
));
ol
.
docify
(
" { ... } "
);
// last ei characters of ldef contain pointer/reference specifiers
...
...
src/memberlist.cpp
View file @
e4cebf12
...
...
@@ -292,7 +292,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
{
if
(
!
Config
::
genTagFile
.
isEmpty
())
{
tagFile
<<
" <member>"
<<
endl
;
tagFile
<<
" <member
kind=
\"
enumeration
\"
>"
<<
endl
;
tagFile
<<
" <name>"
<<
convertToXML
(
md
->
name
())
<<
"</name>"
<<
endl
;
tagFile
<<
" <anchor>"
<<
convertToXML
(
md
->
anchor
())
<<
"</anchor>"
<<
endl
;
tagFile
<<
" <arglist>"
<<
convertToXML
(
md
->
argsString
())
<<
"</arglist>"
<<
endl
;
...
...
@@ -332,7 +332,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
{
if
(
!
Config
::
genTagFile
.
isEmpty
())
{
tagFile
<<
" <member>"
<<
endl
;
tagFile
<<
" <member
kind=
\"
enumvalue
\"
>"
<<
endl
;
tagFile
<<
" <name>"
<<
convertToXML
(
fmd
->
name
())
<<
"</name>"
<<
endl
;
tagFile
<<
" <anchor>"
<<
convertToXML
(
fmd
->
anchor
())
<<
"</anchor>"
<<
endl
;
tagFile
<<
" <arglist>"
<<
convertToXML
(
fmd
->
argsString
())
<<
"</arglist>"
<<
endl
;
...
...
src/pre.l
View file @
e4cebf12
...
...
@@ -1000,7 +1000,8 @@ BN [ \t\r\n]
if (g_includeStack.isEmpty())
g_curlyCount--;
outputChar(*yytext);
ASSERT(g_curlyCount>=0);
// This should hold otherwise the preprocessor is confused
//ASSERT(g_curlyCount>=0);
}
<CopyLine>"'"\\[0-7]{1,3}"'" {
outputArray(yytext,yyleng);
...
...
src/scanner.l
View file @
e4cebf12
This diff is collapsed.
Click to expand it.
src/tagreader.cpp
View file @
e4cebf12
...
...
@@ -719,6 +719,7 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
me
->
protection
=
tmi
->
prot
;
me
->
virt
=
tmi
->
virt
;
me
->
stat
=
tmi
->
isStatic
;
me
->
fileName
=
ce
->
fileName
;
TagInfo
*
ti
=
new
TagInfo
;
ti
->
tagName
=
m_tagName
;
ti
->
anchor
=
tmi
->
anchor
;
...
...
src/util.cpp
View file @
e4cebf12
...
...
@@ -299,12 +299,8 @@ QCString stripAnnonymousNamespaceScope(const QCString &s)
void
writePageRef
(
OutputList
&
ol
,
const
char
*
cn
,
const
char
*
mn
)
{
//bool htmlOn = ol.isEnabled(OutputGenerator::Html);
//bool manOn = ol.isEnabled(OutputGenerator::Man);
ol
.
pushGeneratorState
();
//ol.enableAll();
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
disable
(
OutputGenerator
::
Man
);
if
(
Config
::
pdfHyperFlag
)
ol
.
disable
(
OutputGenerator
::
Latex
);
...
...
@@ -313,12 +309,13 @@ void writePageRef(OutputList &ol,const char *cn,const char *mn)
ol
.
docify
(
theTranslator
->
trPageAbbreviation
());
ol
.
endPageRef
(
cn
,
mn
);
//if (htmlOn) ol.enable(OutputGenerator::Html);
//if (manOn) ol.enable(OutputGenerator::Man);
ol
.
popGeneratorState
();
}
/*! Generate a place holder for a position in a list. Used for
* translators to be able to specify different elements orders
* depending on whether text flows from left to right or visa versa.
*/
QCString
generateMarker
(
int
id
)
{
QCString
result
;
...
...
@@ -326,8 +323,9 @@ QCString generateMarker(int id)
return
result
;
}
// strip part of the path if it matches
// one of the paths in the stripFromPath list
/*! strip part of \a path if it matches
* one of the paths in the Config::stripFromPath list
*/
QCString
stripFromPath
(
const
QCString
&
path
)
{
const
char
*
s
=
Config
::
stripFromPath
.
first
();
...
...
@@ -343,9 +341,10 @@ QCString stripFromPath(const QCString &path)
return
path
;
}
// try to determine if this files is a source or a header file by looking
// at the extension (5 variations are allowed in both upper and lower case)
// If anyone knows or uses another extension please let me know :-)
/*! try to determine if \a name is a source or a header file name by looking
* at the extension. A number of variations is allowed in both upper and
* lower case) If anyone knows or uses another extension please let me know :-)
*/
int
guessSection
(
const
char
*
name
)
{
QCString
n
=
((
QCString
)
name
).
lower
();
...
...
@@ -369,35 +368,9 @@ int guessSection(const char *name)
return
0
;
}
//QCString resolveDefines(const char *n)
//{
// return n;
// if (n)
// {
// Define *def=defineDict[n];
// if (def && def->nargs==0 && !def->definition.isEmpty())
// {
// return def->definition;
// }
// return n;
// }
// return 0;
//}
//QCString resolveTypedefs(const QCString &n)
//{
// QCString *subst=typedefDict[n];
// if (subst && !subst->isEmpty())
// {
// return *subst;
// }
// else
// {
// return n;
// }
//}
/*! Get a class definition given its name.
* Returns 0 if the class is not found.
*/
ClassDef
*
getClass
(
const
char
*
name
)
{
if
(
name
==
0
||
name
[
0
]
==
'\0'
)
return
0
;
...
...
@@ -515,9 +488,11 @@ QCString removeRedundantWhiteSpace(const QCString &s)
(
i
!=
0
&&
i
!=
l
-
1
&&
isId
(
s
.
at
(
i
-
1
))
&&
isId
(
s
.
at
(
i
+
1
)))
)
{
if
((
c
==
'*'
||
c
==
'&'
||
c
==
'@'
)
&&
!
result
.
isEmpty
()
&&
isId
(
result
.
at
(
result
.
length
()
-
1
))
)
result
+=
' '
;
if
((
c
==
'*'
||
c
==
'&'
||
c
==
'@'
))
{
uint
rl
=
result
.
length
();
if
(
rl
>
0
&&
(
isId
(
result
.
at
(
rl
-
1
))
||
result
.
at
(
rl
-
1
)
==
'>'
))
result
+=
' '
;
}
result
+=
c
;
}
}
...
...
@@ -571,12 +546,6 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
if
(
i
==-
1
)
i
=
splitText
.
find
(
' '
);
if
(
i
!=-
1
)
// add a link-break at i in case of Html output
{
//ol.docify(splitText.left(i+1));
//ol.pushGeneratorState();
//ol.disableAllBut(OutputGenerator::Html);
//ol.lineBreak();
//ol.popGeneratorState();
//ol.docify(splitText.right(splitLength-i-1));
out
.
writeString
(
splitText
.
left
(
i
+
1
));
out
.
writeBreak
();
out
.
writeString
(
splitText
.
right
(
splitLength
-
i
-
1
));
...
...
@@ -644,12 +613,13 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
}
}
while
(
!
found
&&
scopeOffset
>=
0
);
//if (!found) printf("Trying to link %s in %s\n",word.data(),scName);
//if (!found) printf("Trying to link %s in %s\n",word.data(),scName);
if
(
!
found
&&
getDefs
(
scName
,
word
,
0
,
md
,
cd
,
fd
,
nd
,
gd
)
&&
(
md
->
isTypedef
()
||
md
->
isEnumerate
()
||
md
->
isReference
()
||
md
->
isVariable
())
&&
(
external
?
md
->
isLinkable
()
:
md
->
isLinkableInProject
())
md
->
isReference
()
||
md
->
isVariable
()
)
&&
(
external
?
md
->
isLinkable
()
:
md
->
isLinkableInProject
())
)
{
//printf("Found ref\n");
...
...
@@ -760,26 +730,6 @@ QCString argListToString(ArgumentList *al)
return
result
;
}
//QCString tempArgListToString(ArgumentList *al)
//{
// QCString result;
// if (al==0) return result;
// Argument *a=al->first();
// result+="<";
// while (a)
// {
// int ni=a->type.findRev(' ');
// if (ni!=-1)
// result+=a->type.right(a->type.length()-ni-1);
// else
// result+=a->type;
// a = al->next();
// if (a) result+=",";
// }
// result+=">";
// return result;
//}
QCString
tempArgListToString
(
ArgumentList
*
al
)
{
QCString
result
;
...
...
@@ -1001,13 +951,16 @@ void setAnchors(char id,MemberList *ml,int groupId)
MemberDef
*
md
;
for
(;(
md
=
mli
.
current
());
++
mli
)
{
QCString
anchor
;
if
(
groupId
==-
1
)
anchor
.
sprintf
(
"%c%d"
,
id
,
count
++
);
else
anchor
.
sprintf
(
"%c%d_%d"
,
id
,
groupId
,
count
++
);
//printf("Member %s anchor %s\n",md->name(),anchor.data());
md
->
setAnchor
(
anchor
);
if
(
!
md
->
isReference
())
{
QCString
anchor
;
if
(
groupId
==-
1
)
anchor
.
sprintf
(
"%c%d"
,
id
,
count
++
);
else
anchor
.
sprintf
(
"%c%d_%d"
,
id
,
groupId
,
count
++
);
//printf("Member %s anchor %s\n",md->name(),anchor.data());
md
->
setAnchor
(
anchor
);
}
}
}
...
...
@@ -2112,7 +2065,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
QList
<
MemberDef
>
members
;
//printf("Function with global scope `%s' args=`%s'\n",namespaceName.data(),args);
//printf("
Function with global scope `%s' args=`%s'\n",namespaceName.data(),args);
MemberListIterator
mli
(
*
mn
);
for
(
mli
.
toFirst
();(
md
=
mli
.
current
());
++
mli
)
{
...
...
@@ -2821,28 +2774,6 @@ QCString convertNameToFile(const char *name,bool allowDots)
return
result
;
}
/*! Converts a string to HTML-encoded string */
QCString
convertToHtml
(
const
QCString
&
s
)
{
QCString
result
;
char
c
;
const
char
*
p
=
s
.
data
();
while
((
c
=*
p
++
)
!=
0
)
{
switch
(
c
)
{
case
'<'
:
result
+=
"<"
;
break
;
case
'>'
:
result
+=
">"
;
break
;
case
'&'
:
result
+=
"&"
;
break
;
case
'"'
:
result
+=
"""
;
break
;
default:
result
+=
c
;
break
;
}
}
return
result
;
}
/*! Input is a scopeName, output is the scopename split into a
* namespace part (as large as possible) and a classname part.
*/
...
...
@@ -2923,6 +2854,7 @@ QCString stripScope(const char *name)
return
result
;
}
/*! Converts a string to an XML-encoded string */
QCString
convertToXML
(
const
char
*
s
)
{
QCString
result
;
...
...
@@ -2943,3 +2875,10 @@ QCString convertToXML(const char *s)
}
return
result
;
}
/*! Converts a string to a HTML-encoded string */
QCString
convertToHtml
(
const
char
*
s
)
{
return
convertToXML
(
s
);
}
src/util.h
View file @
e4cebf12
...
...
@@ -133,7 +133,6 @@ void setFileNameForSections(QList<QCString> *anchorList,const char *fileName);
QCString
stripAnnonymousScope
(
const
QCString
&
s
);
QCString
stripAnnonymousNamespaceScope
(
const
QCString
&
s
);
QCString
stripFromPath
(
const
QCString
&
path
);
QCString
convertToXML
(
const
char
*
s
);
bool
rightScopeMatch
(
const
QCString
&
scope
,
const
QCString
&
name
);
bool
leftScopeMatch
(
const
QCString
&
scope
,
const
QCString
&
name
);
void
writePageRef
(
OutputList
&
ol
,
const
char
*
cn
,
const
char
*
mn
);
...
...
@@ -145,12 +144,13 @@ void initClassHierarchy(ClassList *cl);
bool
hasVisibleRoot
(
BaseClassList
*
bcl
);
int
minClassDistance
(
ClassDef
*
cd
,
ClassDef
*
bcd
,
int
level
=
0
);
QCString
convertNameToFile
(
const
char
*
name
,
bool
allowDots
=
FALSE
);
QCString
convertToHtml
(
const
QCString
&
s
);
void
extractNamespaceName
(
const
QCString
&
scopeName
,
QCString
&
className
,
QCString
&
namespaceName
);
QCString
insertTemplateSpecifierInScope
(
const
QCString
&
scope
,
const
QCString
&
templ
);
QCString
stripScope
(
const
char
*
name
);
int
iSystem
(
const
char
*
command
,
const
char
*
args
,
bool
isBatchFile
=
FALSE
);
QCString
convertToHtml
(
const
char
*
s
);
QCString
convertToXML
(
const
char
*
s
);
#endif
wintools/make.pl
View file @
e4cebf12
...
...
@@ -11,6 +11,8 @@ use Cwd;
# get current working directory
$pwd
=
cwd
();
# work-around slashes problems for badly ported perl interpreters
$pwd
=~
s{/}{\\}g
;
# create config file
open
(
FILE
,
">makeconfig"
)
||
die
"Cannot create file makeconfig!"
;
...
...
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