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
cfb38c32
Commit
cfb38c32
authored
Dec 03, 2011
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.7.6
parent
4edf2204
Changes
20
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
184 additions
and
73 deletions
+184
-73
INSTALL
INSTALL
+2
-2
README
README
+2
-2
configure
configure
+2
-2
config.doc
doc/config.doc
+3
-3
classdef.cpp
src/classdef.cpp
+22
-2
classdef.h
src/classdef.h
+6
-1
commentscan.l
src/commentscan.l
+2
-1
config.l
src/config.l
+16
-8
config.xml
src/config.xml
+4
-3
configoptions.cpp
src/configoptions.cpp
+4
-3
dirdef.cpp
src/dirdef.cpp
+1
-1
docparser.cpp
src/docparser.cpp
+6
-4
docparser.h
src/docparser.h
+14
-8
dot.cpp
src/dot.cpp
+27
-7
doxygen.cpp
src/doxygen.cpp
+1
-1
doxygen.css
src/doxygen.css
+1
-1
doxygen_css.h
src/doxygen_css.h
+1
-1
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+24
-5
pre.l
src/pre.l
+44
-18
scanner.l
src/scanner.l
+2
-0
No files found.
INSTALL
View file @
cfb38c32
DOXYGEN Version 1.7.
5.1-20111119
DOXYGEN Version 1.7.
6
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
19 Nov
ember 2011)
Dimitri van Heesch (
03 Dec
ember 2011)
README
View file @
cfb38c32
DOXYGEN Version 1.7.
5.1_20111119
DOXYGEN Version 1.7.
6
Please read INSTALL for compilation instructions.
...
...
@@ -26,4 +26,4 @@ forum.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
19 Nov
ember 2011)
Dimitri van Heesch (dimitri@stack.nl) (
03 Dec
ember 2011)
configure
View file @
cfb38c32
...
...
@@ -17,10 +17,10 @@
doxygen_version_major
=
1
doxygen_version_minor
=
7
doxygen_version_revision
=
5.1
doxygen_version_revision
=
6
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn
=
20111119
doxygen_version_mmn
=
NO
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
...
doc/config.doc
View file @
cfb38c32
...
...
@@ -1075,15 +1075,15 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\
anchor
cfg_exclude
<
dt
>\
c
EXCLUDE
<
dd
>
\
addindex
EXCLUDE
The
\
c
EXCLUDE
tag
can
be
used
to
specify
files
and
/
or
directories
that
should
The
\
c
EXCLUDE
tag
can
be
used
to
specify
files
and
/
or
directories
that
should
be
excluded
from
the
\
c
INPUT
source
files
.
This
way
you
can
easily
exclude
a
subdirectory
from
a
directory
tree
whose
root
is
specified
with
the
\
c
INPUT
tag
.
Note
that
relative
paths
are
relative
to
directory
from
which
doxygen
is
run
.
Note
that
relative
paths
are
relative
to
the
directory
from
which
doxygen
is
run
.
\
anchor
cfg_exclude_symlinks
<
dt
>\
c
EXCLUDE_SYMLINKS
<
dd
>
\
addindex
EXCLUDE_SYMLINKS
The
\
c
EXCLUDE_SYMLINKS
tag
can
be
used
select
whether
or
not
files
or
directories
The
\
c
EXCLUDE_SYMLINKS
tag
can
be
used
to
select
whether
or
not
files
or
directories
that
are
symbolic
links
(
a
Unix
file
system
feature
)
are
excluded
from
the
input
.
\
anchor
cfg_exclude_patterns
...
...
src/classdef.cpp
View file @
cfb38c32
...
...
@@ -180,6 +180,9 @@ class ClassDefImpl
ClassList
*
taggedInnerClasses
;
ClassDef
*
tagLessRef
;
/** Does this class represent a Java style enum? */
bool
isJavaEnum
;
};
void
ClassDefImpl
::
init
(
const
char
*
defFileName
,
const
char
*
name
,
...
...
@@ -270,13 +273,14 @@ ClassDef::ClassDef(
const
char
*
defFileName
,
int
defLine
,
const
char
*
nm
,
CompoundType
ct
,
const
char
*
lref
,
const
char
*
fName
,
bool
isSymbol
)
bool
isSymbol
,
bool
isJavaEnum
)
:
Definition
(
defFileName
,
defLine
,
removeRedundantWhiteSpace
(
nm
),
0
,
0
,
isSymbol
)
{
visited
=
FALSE
;
setReference
(
lref
);
m_impl
=
new
ClassDefImpl
;
m_impl
->
compType
=
ct
;
m_impl
->
isJavaEnum
=
isJavaEnum
;
m_impl
->
init
(
defFileName
,
name
(),
compoundTypeString
(),
fName
);
}
...
...
@@ -1015,6 +1019,13 @@ void ClassDef::showUsedFiles(OutputList &ol)
getLanguage
()
==
SrcLangExt_ObjC
&&
m_impl
->
compType
==
Interface
?
Class
:
m_impl
->
compType
,
m_impl
->
files
.
count
()
==
1
));
}
else
if
(
isJavaEnum
())
{
// TODO: TRANSLATE ME
QCString
s
;
if
(
m_impl
->
files
.
count
()
!=
1
)
s
=
"s"
;
ol
.
parseText
(
"The documentation for this enum was generated from the following file"
+
s
+
":"
);
}
else
{
ol
.
parseText
(
theTranslator
->
trGeneratedFromFiles
(
...
...
@@ -1939,6 +1950,11 @@ void ClassDef::writeDocumentation(OutputList &ol)
// TODO: TRANSLATE ME
pageTitle
=
VhdlDocGen
::
getClassTitle
(
this
)
+
" Reference"
;
}
else
if
(
isJavaEnum
())
{
// TODO: TRANSLATE ME
pageTitle
=
displayName
()
+
" Enum Reference"
;
}
else
{
pageTitle
=
theTranslator
->
trCompoundReference
(
displayName
(),
...
...
@@ -3166,7 +3182,7 @@ QCString ClassDef::compoundTypeString() const
{
switch
(
m_impl
->
compType
)
{
case
Class
:
return
"class"
;
case
Class
:
return
isJavaEnum
()
?
"enum"
:
"class"
;
case
Struct
:
return
"struct"
;
case
Union
:
return
"union"
;
case
Interface
:
return
getLanguage
()
==
SrcLangExt_ObjC
?
"class"
:
"interface"
;
...
...
@@ -4027,3 +4043,7 @@ void ClassDef::removeMemberFromLists(MemberDef *md)
}
}
bool
ClassDef
::
isJavaEnum
()
const
{
return
m_impl
->
isJavaEnum
;
}
src/classdef.h
View file @
cfb38c32
...
...
@@ -79,11 +79,14 @@ class ClassDef : public Definition
* generates based on the compound type & name.
* \param isSymbol If TRUE this class name is added as a publicly
* visible (and referencable) symbol.
* \param isJavaEnum If TRUE this class is actually a Java enum.
* I didn't add this to CompoundType to avoid having
* to adapt all translators.
*/
ClassDef
(
const
char
*
fileName
,
int
startLine
,
const
char
*
name
,
CompoundType
ct
,
const
char
*
ref
=
0
,
const
char
*
fName
=
0
,
bool
isSymbol
=
TRUE
);
bool
isSymbol
=
TRUE
,
bool
isJavaEnum
=
FALSE
);
/*! Destroys a compound definition. */
~
ClassDef
();
...
...
@@ -273,6 +276,8 @@ class ClassDef : public Definition
MemberDef
*
isSmartPointer
()
const
;
bool
isJavaEnum
()
const
;
//-----------------------------------------------------------------------------------
// --- setters ----
//-----------------------------------------------------------------------------------
...
...
src/commentscan.l
View file @
cfb38c32
...
...
@@ -811,7 +811,8 @@ OL [oO][lL]
DL [dD][lL]
IMG [iI][mM][gG]
HR [hH][rR]
DETAILEDHTML {PRE}|{UL}|{TABLE}|{OL}|{DL}|{P}|[Hh][1-6]|{IMG}|{HR}
PARA [pP][aA][rR][aA]
DETAILEDHTML {PRE}|{UL}|{TABLE}|{OL}|{DL}|{P}|[Hh][1-6]|{IMG}|{HR}|{PARA}
BN [ \t\n\r]
BL [ \t\r]*"\n"
B [ \t]
...
...
src/config.l
View file @
cfb38c32
...
...
@@ -1222,6 +1222,13 @@ void Config::check()
// check dot path
QCString &dotPath = Config_getString("DOT_PATH");
if (!dotPath.isEmpty())
{
QFileInfo fi(dotPath);
if (fi.exists() && fi.isFile()) // user specified path + exec
{
dotPath=fi.dirPath(TRUE);
}
else
{
QFileInfo dp(dotPath+"/dot"+portable_commandExtension());
if (!dp.exists() || !dp.isFile())
...
...
@@ -1232,12 +1239,13 @@ void Config::check()
else
{
dotPath=dp.dirPath(TRUE)+"/";
}
}
#if defined(_WIN32) // convert slashes
uint i=0,l=dotPath.length();
for (i=0;i<l;i++) if (dotPath.at(i)=='/') dotPath.at(i)='\\';
#endif
}
}
else // make sure the string is empty but not null!
{
dotPath="";
...
...
src/config.xml
View file @
cfb38c32
...
...
@@ -645,14 +645,15 @@ should be searched for input files as well. Possible values are YES and NO.
If left blank NO is used.
'
defval=
'0'
/>
<option
type=
'list'
id=
'EXCLUDE'
format=
'filedir'
docs=
'
The EXCLUDE tag can be used to specify files and/or directories that should
The EXCLUDE tag can be used to specify files and/or directories that should
be
excluded from the INPUT source files. This way you can easily exclude a
subdirectory from a directory tree whose root is specified with the INPUT tag.
Note that relative paths are relative to directory from which doxygen is run.
Note that relative paths are relative to the directory from which doxygen is
run.
'
>
</option>
<option
type=
'bool'
id=
'EXCLUDE_SYMLINKS'
docs=
'
The EXCLUDE_SYMLINKS tag can be used select whether or not files or
The EXCLUDE_SYMLINKS tag can be used
to
select whether or not files or
directories that are symbolic links (a Unix file system feature) are excluded
from the input.
'
defval=
'0'
/>
...
...
src/configoptions.cpp
View file @
cfb38c32
...
...
@@ -916,16 +916,17 @@ void addConfigOptions(Config *cfg)
//----
cl
=
cfg
->
addList
(
"EXCLUDE"
,
"The EXCLUDE tag can be used to specify files and/or directories that should
\n
"
"The EXCLUDE tag can be used to specify files and/or directories that should
be
\n
"
"excluded from the INPUT source files. This way you can easily exclude a
\n
"
"subdirectory from a directory tree whose root is specified with the INPUT tag.
\n
"
"Note that relative paths are relative to directory from which doxygen is run."
"Note that relative paths are relative to the directory from which doxygen is
\n
"
"run."
);
cl
->
setWidgetType
(
ConfigList
::
FileAndDir
);
//----
cb
=
cfg
->
addBool
(
"EXCLUDE_SYMLINKS"
,
"The EXCLUDE_SYMLINKS tag can be used select whether or not files or
\n
"
"The EXCLUDE_SYMLINKS tag can be used
to
select whether or not files or
\n
"
"directories that are symbolic links (a Unix file system feature) are excluded
\n
"
"from the input."
,
FALSE
...
...
src/dirdef.cpp
View file @
cfb38c32
...
...
@@ -184,7 +184,7 @@ void DirDef::writeBriefDescription(OutputList &ol)
void
DirDef
::
writeDirectoryGraph
(
OutputList
&
ol
)
{
// write graph dependency graph
if
(
/*Config_getBool("DIRECTORY_GRAPH") &&*/
Config_getBool
(
"HAVE_DOT"
))
if
(
Config_getBool
(
"DIRECTORY_GRAPH"
)
&&
Config_getBool
(
"HAVE_DOT"
))
{
DotDirDeps
dirDep
(
this
);
if
(
!
dirDep
.
isTrivial
())
...
...
src/docparser.cpp
View file @
cfb38c32
...
...
@@ -962,7 +962,7 @@ static int handleAHref(DocNode *parent,QList<DocNode> &children,const HtmlAttrib
// and remove the href attribute
bool
result
=
attrList
.
remove
(
index
);
ASSERT
(
result
);
DocHRef
*
href
=
new
DocHRef
(
parent
,
attrList
,
opt
->
value
);
DocHRef
*
href
=
new
DocHRef
(
parent
,
attrList
,
opt
->
value
,
g_relPath
);
children
.
append
(
href
);
g_insideHtmlLink
=
TRUE
;
retval
=
href
->
parse
();
...
...
@@ -2740,9 +2740,11 @@ void DocMscFile::parse()
//---------------------------------------------------------------------------
DocImage
::
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QCString
&
name
,
Type
t
)
:
DocImage
::
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QCString
&
name
,
Type
t
,
const
QCString
&
url
)
:
m_attribs
(
attribs
),
m_name
(
name
),
m_type
(
t
),
m_relPath
(
g_relPath
)
m_type
(
t
),
m_relPath
(
g_relPath
),
m_url
(
url
)
{
m_parent
=
parent
;
}
...
...
@@ -5463,7 +5465,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta
// and remove the src attribute
bool
result
=
attrList
.
remove
(
index
);
ASSERT
(
result
);
DocImage
*
img
=
new
DocImage
(
this
,
attrList
,
opt
->
value
,
DocImage
::
Html
);
DocImage
*
img
=
new
DocImage
(
this
,
attrList
,
opt
->
value
,
DocImage
::
Html
,
opt
->
value
);
m_children
.
append
(
img
);
found
=
TRUE
;
}
...
...
src/docparser.h
View file @
cfb38c32
...
...
@@ -590,7 +590,8 @@ class DocImage : public CompAccept<DocImage>, public DocNode
{
public
:
enum
Type
{
Html
,
Latex
,
Rtf
};
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QCString
&
name
,
Type
t
);
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QCString
&
name
,
Type
t
,
const
QCString
&
url
=
QCString
());
Kind
kind
()
const
{
return
Kind_Image
;
}
Type
type
()
const
{
return
m_type
;
}
QCString
name
()
const
{
return
m_name
;
}
...
...
@@ -598,6 +599,7 @@ class DocImage : public CompAccept<DocImage>, public DocNode
QCString
width
()
const
{
return
m_width
;
}
QCString
height
()
const
{
return
m_height
;
}
QCString
relPath
()
const
{
return
m_relPath
;
}
QCString
url
()
const
{
return
m_url
;
}
const
HtmlAttribList
&
attribs
()
const
{
return
m_attribs
;
}
void
accept
(
DocVisitor
*
v
)
{
CompAccept
<
DocImage
>::
accept
(
this
,
v
);
}
void
parse
();
...
...
@@ -609,6 +611,7 @@ class DocImage : public CompAccept<DocImage>, public DocNode
QCString
m_width
;
QCString
m_height
;
QCString
m_relPath
;
QCString
m_url
;
};
/*! @brief Node representing a dot file */
...
...
@@ -747,10 +750,12 @@ class DocInternalRef : public CompAccept<DocInternalRef>, public DocNode
class
DocHRef
:
public
CompAccept
<
DocHRef
>
,
public
DocNode
{
public
:
DocHRef
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QCString
&
url
)
:
m_attribs
(
attribs
),
m_url
(
url
)
{
m_parent
=
parent
;
}
DocHRef
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QCString
&
url
,
const
QCString
&
relPath
)
:
m_attribs
(
attribs
),
m_url
(
url
),
m_relPath
(
relPath
)
{
m_parent
=
parent
;
}
int
parse
();
QCString
url
()
const
{
return
m_url
;
}
QCString
relPath
()
const
{
return
m_relPath
;
}
Kind
kind
()
const
{
return
Kind_HRef
;
}
void
accept
(
DocVisitor
*
v
)
{
CompAccept
<
DocHRef
>::
accept
(
this
,
v
);
}
const
HtmlAttribList
&
attribs
()
const
{
return
m_attribs
;
}
...
...
@@ -758,6 +763,7 @@ class DocHRef : public CompAccept<DocHRef>, public DocNode
private
:
HtmlAttribList
m_attribs
;
QCString
m_url
;
QCString
m_relPath
;
};
/*! @brief Node Html heading */
...
...
src/dot.cpp
View file @
cfb38c32
...
...
@@ -1524,15 +1524,35 @@ static void writeBoxMemberList(FTextStream &t,
{
MemberListIterator
mlia
(
*
ml
);
MemberDef
*
mma
;
int
totalCount
=
0
;
for
(
mlia
.
toFirst
();(
mma
=
mlia
.
current
());
++
mlia
)
{
if
(
mma
->
getClassDef
()
==
scope
)
{
totalCount
++
;
}
}
int
count
=
0
;
for
(
mlia
.
toFirst
();(
mma
=
mlia
.
current
());
++
mlia
)
{
if
(
mma
->
getClassDef
()
==
scope
)
{
if
(
totalCount
>=
15
&&
count
>=
10
)
{
t
<<
"and "
<<
(
totalCount
-
count
-
1
)
<<
" more..."
;
// TODO: TRANSLATE ME
break
;
}
else
{
t
<<
prot
<<
" "
;
t
<<
convertLabel
(
mma
->
name
());
if
(
!
mma
->
isObjCMethod
()
&&
(
mma
->
isFunction
()
||
mma
->
isSlot
()
||
mma
->
isSignal
()))
t
<<
"()"
;
t
<<
"
\\
l"
;
count
++
;
}
}
}
// write member groups within the memberlist
...
...
@@ -1564,9 +1584,9 @@ void DotNode::writeBox(FTextStream &t,
(
hasNonReachableChildren
)
?
"red"
:
"black"
);
t
<<
" Node"
<<
reNumberNode
(
m_number
,
reNumber
)
<<
" [label=
\"
"
;
static
bool
umlLook
=
Config_getBool
(
"UML_LOOK"
);
if
(
m_classDef
&&
Config_getBool
(
"UML_LOOK"
)
&&
(
gt
==
Inheritance
||
gt
==
Collaboration
))
if
(
m_classDef
&&
umlLook
&&
(
gt
==
Inheritance
||
gt
==
Collaboration
))
{
//printf("DotNode::writeBox for %s\n",m_classDef->name().data());
static
bool
extractPrivate
=
Config_getBool
(
"EXTRACT_PRIVATE"
);
...
...
src/doxygen.cpp
View file @
cfb38c32
...
...
@@ -1191,7 +1191,7 @@ static void addClassToContext(EntryNav *rootNav)
refFileName
=
rootNav
->
tagInfo
()
->
fileName
;
}
cd
=
new
ClassDef
(
root
->
fileName
,
root
->
startLine
,
fullName
,
sec
,
tagName
,
refFileName
);
tagName
,
refFileName
,
TRUE
,
root
->
spec
&
Entry
::
Enum
);
Debug
::
print
(
Debug
::
Classes
,
0
,
" New class `%s' (sec=0x%08x)! #tArgLists=%d
\n
"
,
fullName
.
data
(),
root
->
section
,
root
->
tArgLists
?
(
int
)
root
->
tArgLists
->
count
()
:
-
1
);
cd
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
// copy docs to definition
...
...
src/doxygen.css
View file @
cfb38c32
...
...
@@ -123,7 +123,7 @@ a.elRef {
}
a
.code
{
color
:
#
#60
;
color
:
#
4665A2
;
}
a
.codeRef
{
...
...
src/doxygen_css.h
View file @
cfb38c32
...
...
@@ -123,7 +123,7 @@
"}
\n
"
"
\n
"
"a.code {
\n
"
" color: #
#60;
\n
"
" color: #
4665A2;
\n
"
"}
\n
"
"
\n
"
"a.codeRef {
\n
"
...
...
src/htmldocvisitor.cpp
View file @
cfb38c32
...
...
@@ -1209,7 +1209,12 @@ void HtmlDocVisitor::visitPost(DocInternal *)
void
HtmlDocVisitor
::
visitPre
(
DocHRef
*
href
)
{
if
(
m_hide
)
return
;
m_t
<<
"<a href=
\"
"
<<
convertToXML
(
href
->
url
())
<<
"
\"
"
QCString
url
=
href
->
url
();
if
(
url
.
left
(
5
)
!=
"http:"
&&
url
.
left
(
6
)
!=
"https:"
&&
url
.
left
(
4
)
!=
"ftp:"
)
{
url
.
prepend
(
href
->
relPath
());
}
m_t
<<
"<a href=
\"
"
<<
convertToXML
(
url
)
<<
"
\"
"
<<
htmlAttribsToString
(
href
->
attribs
())
<<
">"
;
}
...
...
@@ -1247,9 +1252,23 @@ void HtmlDocVisitor::visitPre(DocImage *img)
baseName
=
baseName
.
right
(
baseName
.
length
()
-
i
-
1
);
}
m_t
<<
"<div class=
\"
image
\"
>"
<<
endl
;
QCString
url
=
img
->
url
();
if
(
url
.
isEmpty
())
{
m_t
<<
"<img src=
\"
"
<<
img
->
relPath
()
<<
img
->
name
()
<<
"
\"
alt=
\"
"
<<
baseName
<<
"
\"
"
<<
htmlAttribsToString
(
img
->
attribs
())
<<
"/>"
<<
endl
;
}
else
{
if
(
url
.
left
(
5
)
!=
"http:"
&&
url
.
left
(
6
)
!=
"https:"
&&
url
.
left
(
4
)
!=
"ftp:"
)
{
url
.
prepend
(
img
->
relPath
());
}
m_t
<<
"<img src=
\"
"
<<
url
<<
"
\"
"
<<
htmlAttribsToString
(
img
->
attribs
())
<<
"/>"
<<
endl
;
}
if
(
img
->
hasCaption
())
{
m_t
<<
"<div class=
\"
caption
\"
>"
<<
endl
;
...
...
@@ -1425,7 +1444,7 @@ void HtmlDocVisitor::visitPre(DocParamSect *s)
className
=
"exception"
;
break
;
case
DocParamSect
:
:
TemplateParam
:
heading
=
"Template Parameters"
;
break
;
// TODO:
translate me
heading
=
"Template Parameters"
;
break
;
// TODO:
TRANSLATE ME
className
=
"tparams"
;
default
:
ASSERT
(
0
);
...
...
src/pre.l
View file @
cfb38c32
...
...
@@ -204,7 +204,7 @@ DefineManager *DefineManager::theInstance = 0;
void DefineManager::DefinesPerFile::collectDefines(DefineDict *dict,QDict<void> &includeStack)
{
//printf("DefinesPerFile::collectDefines
\n"
);
//printf("DefinesPerFile::collectDefines
#defines=%d\n",m_defines.count()
);
{
QDictIterator<void> di(m_includedFiles);
for (di.toFirst();(di.current());++di)
...
...
@@ -1439,6 +1439,7 @@ static void readIncludeFile(const QCString &inc)
// absIncFileName avoids difficulties for incFileName starting with "../" (bug 641336)
QCString absIncFileName = incFileName;
{
static bool searchIncludes = Config_getBool("SEARCH_INCLUDES");
QFileInfo fi(g_yyFileName);
if (fi.exists())
{
...
...
@@ -1448,6 +1449,27 @@ static void readIncludeFile(const QCString &inc)
{
absIncFileName=fi2.absFilePath();
}
else if (searchIncludes) // search in INCLUDE_PATH as well
{
QStrList &includePath = Config_getList("INCLUDE_PATH");
char *s=includePath.first();
while (s)
{
QFileInfo fi(s);
if (fi.exists() && fi.isDir())
{
QCString absName = QCString(fi.absFilePath())+"/"+incFileName;
//printf("trying absName=%s\n",absName.data());
QFileInfo fi2(absName);
if (fi2.exists())
{
absIncFileName=fi2.absFilePath();
break;
}
//printf( "absIncFileName = %s\n", absIncFileName.data() );
}
}
}
//printf( "absIncFileName = %s\n", absIncFileName.data() );
}
}
...
...
@@ -2185,6 +2207,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_defName = yytext;
g_defName = g_defName.left(g_defName.length()-1).stripWhiteSpace();
g_defVarArgs = FALSE;
//printf("Guard check: %s!=%s || %d\n",
// g_defName.data(),g_lastGuardName.data(),g_expectGuard);
if ( g_defName!=g_lastGuardName || !g_expectGuard)
{ // define may appear in the output
QCString tmp=(QCString)"#define "+g_defName;
...
...
@@ -2198,25 +2222,12 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
else // define is a guard => hide
{
//printf("Found a guard %s\n",yytext);
g_defText.resize(0);
g_defLitText.resize(0);
BEGIN(Start);
}
}
<DefName>{ID}/{B}* { // define with content
//printf("Define `%s'\n",yytext);
g_argDict = 0;
g_defArgs = -1;
g_defArgsStr.resize(0);
g_defText.resize(0);
g_defLitText.resize(0);
g_defName = yytext;
g_defVarArgs = FALSE;
QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr;
outputArray(tmp.data(),tmp.length());
g_quoteArg=FALSE;
g_insideComment=FALSE;
BEGIN(DefineText);
g_expectGuard=FALSE;
}
<DefName>{ID}/{B}*"\n" { // empty define
g_argDict = 0;
...
...
@@ -2246,6 +2257,21 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
g_expectGuard=FALSE;
}
<DefName>{ID}/{B}* { // define with content
//printf("Define `%s'\n",yytext);
g_argDict = 0;
g_defArgs = -1;
g_defArgsStr.resize(0);
g_defText.resize(0);
g_defLitText.resize(0);
g_defName = yytext;
g_defVarArgs = FALSE;
QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr;
outputArray(tmp.data(),tmp.length());
g_quoteArg=FALSE;
g_insideComment=FALSE;
BEGIN(DefineText);
}
<DefineArg>"\\\n" {
g_defExtraSpacing+="\n";
g_yyLineNr++;
...
...
src/scanner.l
View file @
cfb38c32
...
...
@@ -2871,11 +2871,13 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
if ( *yytext == ',')
{
bool stat = current->stat;
if (needNewCurrent)
{
current = new Entry(*current);
initEntry();
}
current->stat = stat; // the static attribute holds for all variables
current->name.resize(0);
current->args.resize(0);
current->brief.resize(0);
...
...
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