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
5ad8b41e
Commit
5ad8b41e
authored
Jul 31, 2000
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.0-20000731
parent
7ce8e31b
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
394 additions
and
309 deletions
+394
-309
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
config_templ.l
addon/configgen/config_templ.l
+2
-0
configgen.cpp
addon/configgen/configgen.cpp
+8
-1
README
addon/xmlread/README
+1
-1
xmlread.pro.in
addon/xmlread/xmlread.pro.in
+2
-2
config.doc
doc/config.doc
+8
-5
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
code.l
src/code.l
+30
-12
config.h
src/config.h
+1
-1
config.l
src/config.l
+222
-203
formula.cpp
src/formula.cpp
+1
-1
scanner.l
src/scanner.l
+82
-66
util.cpp
src/util.cpp
+31
-11
No files found.
INSTALL
View file @
5ad8b41e
DOXYGEN Version 1.2.0
DOXYGEN Version 1.2.0
-20000731
Please read the installation section of the manual for instructions.
Please read the installation section of the manual for instructions.
--------
--------
Dimitri van Heesch (3
0
July 2000)
Dimitri van Heesch (3
1
July 2000)
README
View file @
5ad8b41e
DOXYGEN Version 1.2.0
DOXYGEN Version 1.2.0
-20000731
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (3
0
July 2000)
Dimitri van Heesch (3
1
July 2000)
VERSION
View file @
5ad8b41e
1.2.0
1.2.0
-20000731
addon/configgen/config_templ.l
View file @
5ad8b41e
...
@@ -272,6 +272,8 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -272,6 +272,8 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# All text after a hash (#) is considered a comment and will be ignored\n";
t << "# All text after a hash (#) is considered a comment and will be ignored\n";
t << "# The format is:\n";
t << "# The format is:\n";
t << "# TAG = value [value, ...]\n";
t << "# TAG = value [value, ...]\n";
t << "# For lists items can also be appended using:\n";
t << "# TAG += value [value, ...]\n";
t << "# Values that contain spaces should be placed between quotes (\" \")\n";
t << "# Values that contain spaces should be placed between quotes (\" \")\n";
}
}
#CONFIG Template
#CONFIG Template
...
...
addon/configgen/configgen.cpp
View file @
5ad8b41e
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#define MAX_OPTION_LENGTH 2
2
#define MAX_OPTION_LENGTH 2
3
static
QString
spaces
=
" "
;
static
QString
spaces
=
" "
;
...
@@ -259,10 +259,17 @@ class ConfigList : public ConfigOption
...
@@ -259,10 +259,17 @@ class ConfigList : public ConfigOption
const
char
*
short_
,
const
char
*
long_
,
WidgetType
w
=
String
);
const
char
*
short_
,
const
char
*
long_
,
WidgetType
w
=
String
);
virtual
void
printRules
(
QTextStream
&
t
)
virtual
void
printRules
(
QTextStream
&
t
)
{
{
// rule for assignment
t
<<
"<Start>
\"
"
<<
cfgName
<<
"
\"
[
\\
t]*
\"
=
\"
"
;
t
<<
"<Start>
\"
"
<<
cfgName
<<
"
\"
[
\\
t]*
\"
=
\"
"
;
t
<<
spaces
.
left
(
MAX_OPTION_LENGTH
-
cfgName
.
length
());
t
<<
spaces
.
left
(
MAX_OPTION_LENGTH
-
cfgName
.
length
());
t
<<
"{ BEGIN(GetStrList); l=&Config::"
<<
varName
;
t
<<
"{ BEGIN(GetStrList); l=&Config::"
<<
varName
;
t
<<
"; l->clear(); elemStr=
\"\"
; }"
<<
endl
;
t
<<
"; l->clear(); elemStr=
\"\"
; }"
<<
endl
;
// rule for appending
t
<<
"<Start>
\"
"
<<
cfgName
<<
"
\"
[
\\
t]*
\"
+=
\"
"
;
t
<<
spaces
.
left
(
MAX_OPTION_LENGTH
-
cfgName
.
length
()
-
1
);
t
<<
"{ BEGIN(GetStrList); l=&Config::"
<<
varName
;
t
<<
"; elemStr=
\"\"
; }"
<<
endl
;
}
}
virtual
void
printInit
(
QTextStream
&
t
)
virtual
void
printInit
(
QTextStream
&
t
)
{
{
...
...
addon/xmlread/README
View file @
5ad8b41e
...
@@ -2,7 +2,7 @@ This is a small utility that is used to test and validate the
...
@@ -2,7 +2,7 @@ This is a small utility that is used to test and validate the
XML output generated by doxygen (when GENERATE_XML = YES).
XML output generated by doxygen (when GENERATE_XML = YES).
It uses the Xerces-C XML parser/validator (see http://xml.apache.org)
It uses the Xerces-C XML parser/validator (see http://xml.apache.org)
and expects the environment variable XERCES
_
ROOT to point to the root
and expects the environment variable XERCES
C
ROOT to point to the root
of the Xerces package.
of the Xerces package.
Currently is reads an XML file, validates it, and prints the class
Currently is reads an XML file, validates it, and prints the class
...
...
addon/xmlread/xmlread.pro.in
View file @
5ad8b41e
...
@@ -3,5 +3,5 @@ CONFIG = console qt warn_on debug
...
@@ -3,5 +3,5 @@ CONFIG = console qt warn_on debug
HEADERS = saxhandler.h strx.h compounddef.h
HEADERS = saxhandler.h strx.h compounddef.h
SOURCES = main.cpp \
SOURCES = main.cpp \
saxhandlers.cpp
saxhandlers.cpp
LIBS = -lxerces-c1_
1 -L$(XERCES_ROOT)
LIBS = -lxerces-c1_
2 -L$(XERCESCROOT)/lib
INCLUDEPATH = $(XERCES
_
ROOT)/include
INCLUDEPATH = $(XERCES
C
ROOT)/include
doc/config.doc
View file @
5ad8b41e
...
@@ -30,12 +30,15 @@ line.
...
@@ -30,12 +30,15 @@ line.
The
file
essentially
consists
of
a
list
of
assignment
statements
.
The
file
essentially
consists
of
a
list
of
assignment
statements
.
Each
statement
consists
of
a
\
c
TAG_NAME
written
in
capitals
,
Each
statement
consists
of
a
\
c
TAG_NAME
written
in
capitals
,
followed
by
the
\
c
=
character
and
one
or
more
values
.
followed
by
the
<
code
>=</
code
>
character
and
one
or
more
values
.
If
the
same
tag
Values
are
sequences
of
non
-
blanks
.
If
the
value
should
contain
one
or
more
is
assigned
more
than
once
,
the
last
assignment
overwrites
any
earlier
blanks
it
must
be
surrounded
by
quotes
(&
quot
;...&
quot
;).
assignment
.
For
options
that
take
a
list
as
their
argument
,
the
<
code
>+=</
code
>
operator
can
be
used
instead
of
<
code
>=</
code
>
to
append
new
values
to
the
list
.
Values
are
sequences
of
non
-
blanks
.
If
the
value
should
contain
one
or
more
blanks
it
must
be
surrounded
by
quotes
(&
quot
;...&
quot
;).
Multiple
lines
can
be
concatenated
by
inserting
a
backslash
(\\)
Multiple
lines
can
be
concatenated
by
inserting
a
backslash
(\\)
as
the
last
character
of
a
line
.
as
the
last
character
of
a
line
.
Environment
variables
can
be
expanded
Environment
variables
can
expanded
using
the
pattern
\
c
$(
ENV_VARIABLE_NAME
).
using
the
pattern
\
c
$(
ENV_VARIABLE_NAME
).
The
configuration
options
can
be
divided
into
several
categories
.
The
configuration
options
can
be
divided
into
several
categories
.
Below
is
an
alphabetical
index
of
the
tags
that
are
recognized
Below
is
an
alphabetical
index
of
the
tags
that
are
recognized
...
...
packages/rpm/doxygen.spec
View file @
5ad8b41e
Name: doxygen
Name: doxygen
Version: 1.2.0
Version: 1.2.0
-20000731
Summary: documentation system for C, C++ and IDL
Summary: documentation system for C, C++ and IDL
Release: 1
Release: 1
Source0: doxygen-%{version}.src.tar.gz
Source0: doxygen-%{version}.src.tar.gz
...
...
src/code.l
View file @
5ad8b41e
...
@@ -281,12 +281,23 @@ static void addVariable()
...
@@ -281,12 +281,23 @@ static void addVariable()
}
}
else
else
{
{
//printf("adding variable `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data())
;
int i
;
if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
{
{
//printf("adding variable `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data());
g_cvd.classScope=g_classScope;
g_cvd.classScope=g_classScope;
g_codeVarList.append(new CodeVarDef(g_cvd)); // add it to a list
g_codeVarList.append(new CodeVarDef(g_cvd)); // add it to a list
}
}
else if ((i=g_cvd.type.find('<'))>0)
{
g_cvd.type = g_cvd.type.left(i);
if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type.left(i)]))
{
//printf("adding template type variable `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data());
g_cvd.classScope=g_classScope;
g_codeVarList.append(new CodeVarDef(g_cvd));
}
}
}
}
}
}
...
@@ -300,12 +311,23 @@ static void addParameter()
...
@@ -300,12 +311,23 @@ static void addParameter()
}
}
else
else
{
{
//printf("adding parameter `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data())
;
int i
;
if ((getClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
if ((get
Resolved
Class(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
{
{
//printf("adding parameter `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data());
g_cvd.classScope=g_classScope;
g_cvd.classScope=g_classScope;
g_codeParmList.append(new CodeVarDef(g_cvd)); // add it to a list
g_codeParmList.append(new CodeVarDef(g_cvd)); // add it to a list
}
}
else if ((i=g_cvd.type.find('<'))>0)
{
g_cvd.type = g_cvd.type.left(i);
if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type.left(i)]))
{
//printf("adding template type parameter `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data());
g_cvd.classScope=g_classScope;
g_codeParmList.append(new CodeVarDef(g_cvd));
}
}
}
}
}
}
...
@@ -948,15 +970,11 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
...
@@ -948,15 +970,11 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
addType();
addType();
g_name+=yytext;
g_name+=yytext;
}
}
/*
<Body>{SCOPENAME}{B}*"<"[^\n\>]*">"/{B}* { // A<T> *pt;
<Body>{SCOPETNAME}/{B}* {
generateClassLink(*g_code,yytext);
int i;
generateClassLink(*g_code,yytext,&i);
addType();
addType();
QCString text=yytext;
g_name+=yytext;
g_name+=text.left(i);
}
}
*/
<Body>{SCOPENAME}/{B}* { // p->func()
<Body>{SCOPENAME}/{B}* { // p->func()
generateClassLink(*g_code,yytext);
generateClassLink(*g_code,yytext);
addType();
addType();
...
@@ -1094,7 +1112,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
...
@@ -1094,7 +1112,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_code->codify(yytext);
g_code->codify(yytext);
endFontClass();
endFontClass();
}
}
<MemberCall2,FuncCall>[a-z_A-Z][:a-z_A-Z0-9]* {
<MemberCall2,FuncCall>[a-z_A-Z][:a-z_A-Z0-9]*
({B}*"<"[^\n\>]*">")?
{
addParmType();
addParmType();
g_parmName=yytext;
g_parmName=yytext;
generateClassLink(*g_code,yytext);
generateClassLink(*g_code,yytext);
...
...
src/config.h
View file @
5ad8b41e
/* This file was generated by configgen on
Fri Jul 28 19:43:36
2000
/* This file was generated by configgen on
Mon Jul 31 16:07:18
2000
* from config_templ.h
* from config_templ.h
*
*
* DO NOT EDIT!
* DO NOT EDIT!
...
...
src/config.l
View file @
5ad8b41e
/* This file was generated by configgen on
Fri Jul 28 19:43:36
2000
/* This file was generated by configgen on
Mon Jul 31 16:11:27
2000
* from config_templ.l
* from config_templ.l
*
*
* DO NOT EDIT!
* DO NOT EDIT!
...
@@ -240,6 +240,7 @@ static int yyread(char *buf,int max_size)
...
@@ -240,6 +240,7 @@ static int yyread(char *buf,int max_size)
<Start>"ALWAYS_DETAILED_SEC"[ \t]*"=" { BEGIN(GetBool); b=&Config::alwaysDetailsFlag; }
<Start>"ALWAYS_DETAILED_SEC"[ \t]*"=" { BEGIN(GetBool); b=&Config::alwaysDetailsFlag; }
<Start>"FULL_PATH_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::fullPathNameFlag; }
<Start>"FULL_PATH_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::fullPathNameFlag; }
<Start>"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::stripFromPath; l->clear(); elemStr=""; }
<Start>"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::stripFromPath; l->clear(); elemStr=""; }
<Start>"STRIP_FROM_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::stripFromPath; elemStr=""; }
<Start>"INTERNAL_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::internalDocsFlag; }
<Start>"INTERNAL_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::internalDocsFlag; }
<Start>"CLASS_DIAGRAMS"[ \t]*"=" { BEGIN(GetBool); b=&Config::classDiagramFlag; }
<Start>"CLASS_DIAGRAMS"[ \t]*"=" { BEGIN(GetBool); b=&Config::classDiagramFlag; }
<Start>"SOURCE_BROWSER"[ \t]*"=" { BEGIN(GetBool); b=&Config::sourceBrowseFlag; }
<Start>"SOURCE_BROWSER"[ \t]*"=" { BEGIN(GetBool); b=&Config::sourceBrowseFlag; }
...
@@ -255,6 +256,7 @@ static int yyread(char *buf,int max_size)
...
@@ -255,6 +256,7 @@ static int yyread(char *buf,int max_size)
<Start>"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; }
<Start>"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; }
<Start>"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); }
<Start>"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); }
<Start>"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; }
<Start>"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; }
<Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; }
<Start>"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; }
<Start>"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; }
<Start>"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; }
<Start>"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; }
<Start>"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; }
<Start>"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; }
...
@@ -262,17 +264,25 @@ static int yyread(char *buf,int max_size)
...
@@ -262,17 +264,25 @@ static int yyread(char *buf,int max_size)
<Start>"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; }
<Start>"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; }
<Start>"WARN_FORMAT"[ \t]*"=" { BEGIN(GetString); s=&Config::warnFormat; s->resize(0); }
<Start>"WARN_FORMAT"[ \t]*"=" { BEGIN(GetString); s=&Config::warnFormat; s->resize(0); }
<Start>"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&Config::inputSources; l->clear(); elemStr=""; }
<Start>"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&Config::inputSources; l->clear(); elemStr=""; }
<Start>"INPUT"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::inputSources; elemStr=""; }
<Start>"FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::filePatternList; l->clear(); elemStr=""; }
<Start>"FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::filePatternList; l->clear(); elemStr=""; }
<Start>"FILE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::filePatternList; elemStr=""; }
<Start>"RECURSIVE"[ \t]*"=" { BEGIN(GetBool); b=&Config::recursiveFlag; }
<Start>"RECURSIVE"[ \t]*"=" { BEGIN(GetBool); b=&Config::recursiveFlag; }
<Start>"EXCLUDE"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludeSources; l->clear(); elemStr=""; }
<Start>"EXCLUDE"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludeSources; l->clear(); elemStr=""; }
<Start>"EXCLUDE"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::excludeSources; elemStr=""; }
<Start>"EXCLUDE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludePatternList; l->clear(); elemStr=""; }
<Start>"EXCLUDE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludePatternList; l->clear(); elemStr=""; }
<Start>"EXCLUDE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::excludePatternList; elemStr=""; }
<Start>"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePath; l->clear(); elemStr=""; }
<Start>"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePath; l->clear(); elemStr=""; }
<Start>"EXAMPLE_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::examplePath; elemStr=""; }
<Start>"EXAMPLE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePatternList; l->clear(); elemStr=""; }
<Start>"EXAMPLE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePatternList; l->clear(); elemStr=""; }
<Start>"EXAMPLE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::examplePatternList; elemStr=""; }
<Start>"IMAGE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePath; l->clear(); elemStr=""; }
<Start>"IMAGE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePath; l->clear(); elemStr=""; }
<Start>"IMAGE_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::imagePath; elemStr=""; }
<Start>"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&Config::inputFilter; s->resize(0); }
<Start>"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&Config::inputFilter; s->resize(0); }
<Start>"ALPHABETICAL_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::alphaIndexFlag; }
<Start>"ALPHABETICAL_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::alphaIndexFlag; }
<Start>"COLS_IN_ALPHA_INDEX"[ \t]*"=" { BEGIN(GetString); s=&colsInAlphaIndexString; s->resize(0); }
<Start>"COLS_IN_ALPHA_INDEX"[ \t]*"=" { BEGIN(GetString); s=&colsInAlphaIndexString; s->resize(0); }
<Start>"IGNORE_PREFIX"[ \t]*"=" { BEGIN(GetStrList); l=&Config::ignorePrefixList; l->clear(); elemStr=""; }
<Start>"IGNORE_PREFIX"[ \t]*"=" { BEGIN(GetStrList); l=&Config::ignorePrefixList; l->clear(); elemStr=""; }
<Start>"IGNORE_PREFIX"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::ignorePrefixList; elemStr=""; }
<Start>"GENERATE_HTML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateHtml; }
<Start>"GENERATE_HTML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateHtml; }
<Start>"HTML_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlOutputDir; s->resize(0); }
<Start>"HTML_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlOutputDir; s->resize(0); }
<Start>"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; s->resize(0); }
<Start>"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; s->resize(0); }
...
@@ -285,6 +295,7 @@ static int yyread(char *buf,int max_size)
...
@@ -285,6 +295,7 @@ static int yyread(char *buf,int max_size)
<Start>"COMPACT_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactLatexFlag; }
<Start>"COMPACT_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactLatexFlag; }
<Start>"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&Config::paperType; s->resize(0); }
<Start>"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&Config::paperType; s->resize(0); }
<Start>"EXTRA_PACKAGES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extraPackageList; l->clear(); elemStr=""; }
<Start>"EXTRA_PACKAGES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extraPackageList; l->clear(); elemStr=""; }
<Start>"EXTRA_PACKAGES"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::extraPackageList; elemStr=""; }
<Start>"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; s->resize(0); }
<Start>"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; s->resize(0); }
<Start>"PDF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::pdfHyperFlag; }
<Start>"PDF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::pdfHyperFlag; }
<Start>"USE_PDFLATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::usePDFLatexFlag; }
<Start>"USE_PDFLATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::usePDFLatexFlag; }
...
@@ -303,10 +314,15 @@ static int yyread(char *buf,int max_size)
...
@@ -303,10 +314,15 @@ static int yyread(char *buf,int max_size)
<Start>"EXPAND_ONLY_PREDEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::onlyPredefinedFlag; }
<Start>"EXPAND_ONLY_PREDEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::onlyPredefinedFlag; }
<Start>"SEARCH_INCLUDES"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchIncludeFlag; }
<Start>"SEARCH_INCLUDES"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchIncludeFlag; }
<Start>"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includePath; l->clear(); elemStr=""; }
<Start>"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includePath; l->clear(); elemStr=""; }
<Start>"INCLUDE_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::includePath; elemStr=""; }
<Start>"INCLUDE_FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includeFilePatternList; l->clear(); elemStr=""; }
<Start>"INCLUDE_FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includeFilePatternList; l->clear(); elemStr=""; }
<Start>"INCLUDE_FILE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::includeFilePatternList; elemStr=""; }
<Start>"PREDEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::predefined; l->clear(); elemStr=""; }
<Start>"PREDEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::predefined; l->clear(); elemStr=""; }
<Start>"PREDEFINED"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::predefined; elemStr=""; }
<Start>"EXPAND_AS_DEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::expandAsDefinedList; l->clear(); elemStr=""; }
<Start>"EXPAND_AS_DEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::expandAsDefinedList; l->clear(); elemStr=""; }
<Start>"EXPAND_AS_DEFINED"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::expandAsDefinedList; elemStr=""; }
<Start>"TAGFILES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::tagFileList; l->clear(); elemStr=""; }
<Start>"TAGFILES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::tagFileList; l->clear(); elemStr=""; }
<Start>"TAGFILES"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::tagFileList; elemStr=""; }
<Start>"GENERATE_TAGFILE"[ \t]*"=" { BEGIN(GetString); s=&Config::genTagFile; s->resize(0); }
<Start>"GENERATE_TAGFILE"[ \t]*"=" { BEGIN(GetString); s=&Config::genTagFile; s->resize(0); }
<Start>"ALLEXTERNALS"[ \t]*"=" { BEGIN(GetBool); b=&Config::allExtFlag; }
<Start>"ALLEXTERNALS"[ \t]*"=" { BEGIN(GetBool); b=&Config::allExtFlag; }
<Start>"PERL_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::perlPath; s->resize(0); }
<Start>"PERL_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::perlPath; s->resize(0); }
...
@@ -326,6 +342,7 @@ static int yyread(char *buf,int max_size)
...
@@ -326,6 +342,7 @@ static int yyread(char *buf,int max_size)
<Start>"DOC_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::docAbsPath; s->resize(0); }
<Start>"DOC_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::docAbsPath; s->resize(0); }
<Start>"BIN_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::binAbsPath; s->resize(0); }
<Start>"BIN_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::binAbsPath; s->resize(0); }
<Start>"EXT_DOC_PATHS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extDocPathList; l->clear(); elemStr=""; }
<Start>"EXT_DOC_PATHS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extDocPathList; l->clear(); elemStr=""; }
<Start>"EXT_DOC_PATHS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::extDocPathList; elemStr=""; }
<Start>[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
<Start>[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
<GetString,GetBool>\n { yyLineNr++; BEGIN(Start); }
<GetString,GetBool>\n { yyLineNr++; BEGIN(Start); }
<GetStrList>\n {
<GetStrList>\n {
...
@@ -813,6 +830,8 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -813,6 +830,8 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# All text after a hash (#) is considered a comment and will be ignored\n";
t << "# All text after a hash (#) is considered a comment and will be ignored\n";
t << "# The format is:\n";
t << "# The format is:\n";
t << "# TAG = value [value, ...]\n";
t << "# TAG = value [value, ...]\n";
t << "# For lists items can also be appended using:\n";
t << "# TAG += value [value, ...]\n";
t << "# Values that contain spaces should be placed between quotes (\" \")\n";
t << "# Values that contain spaces should be placed between quotes (\" \")\n";
}
}
if (!sl)
if (!sl)
...
...
src/formula.cpp
View file @
5ad8b41e
...
@@ -189,7 +189,7 @@ void FormulaList::generateBitmaps(const char *path)
...
@@ -189,7 +189,7 @@ void FormulaList::generateBitmaps(const char *path)
"gswin32.exe"
,
/* file to execute */
"gswin32.exe"
,
/* file to execute */
gsArgs
,
/* argument list */
gsArgs
,
/* argument list */
NULL
,
/* use current working dir */
NULL
,
/* use current working dir */
SW_HIDE
/* minimize on start-up */
SW_HIDE
,
/* minimize on start-up */
0
,
/* application instance handle */
0
,
/* application instance handle */
NULL
,
/* ignored: id list */
NULL
,
/* ignored: id list */
NULL
,
/* ignored: class name */
NULL
,
/* ignored: class name */
...
...
src/scanner.l
View file @
5ad8b41e
...
@@ -586,18 +586,38 @@ static void newDocState();
...
@@ -586,18 +586,38 @@ static void newDocState();
//-----------------------------------------------------------------
//-----------------------------------------------------------------
static QStack<int> listIndentStack;
struct IndentInfo
{
public:
IndentInfo(int i,bool e) : indent(i), enumerated(e) {};
~IndentInfo() {}
void startList()
{
if (enumerated) outDoc->startEnumList(); else outDoc->startItemList();
}
void endList()
{
if (enumerated) outDoc->endEnumList(); else outDoc->endItemList();
}
void writeItem()
{
outDoc->writeListItem();
}
int indent;
bool enumerated;
};
static QStack<IndentInfo> listIndentStack;
static bool insideItemList = FALSE;
static bool insideItemList = FALSE;
static void addListItemMarker(const char *marker)
static void addListItemMarker(const char *marker
,int dashPos,bool enumerated
)
{
{
// find the actual position at which the bullet was found
// find the actual position at which the bullet was found
int i;
int indent=0;
int indent=0;
const char *p=marker;
for (i=0;i<dashPos;i++)
char c;
while ((c=*p++))
{
{
if (
c
=='\t')
if (
marker[i]
=='\t')
{
{
indent+=Config::tabSize - (indent%Config::tabSize);
indent+=Config::tabSize - (indent%Config::tabSize);
}
}
...
@@ -606,32 +626,42 @@ static void addListItemMarker(const char *marker)
...
@@ -606,32 +626,42 @@ static void addListItemMarker(const char *marker)
indent++;
indent++;
}
}
}
}
//printf("list marker found at column %d
\n",indent
);
//printf("list marker found at column %d
enumerated %d\n",indent,enumerated
);
if (!insideItemList)
if (!insideItemList)
{
{
outDoc->startItemList(
);
listIndentStack.push(new IndentInfo(indent,enumerated)
);
outDoc->writeListItem
();
listIndentStack.top()->startList
();
listIndentStack.
push(new int(indent)
);
listIndentStack.
top()->writeItem(
);
insideItemList=TRUE;
insideItemList=TRUE;
}
}
else
else
{
{
int *pPrevIndent = listIndentStack.top();
IndentInfo *pPrevInfo = listIndentStack.top();
if (*pPrevIndent==indent) // new item at the same indent level
if (pPrevInfo->indent==indent && pPrevInfo->enumerated==enumerated)
// new item of same kind at the same indent level
{
{
outDoc->writeList
Item();
pPrevInfo->write
Item();
}
}
else if (*pPrevIndent<indent) // start sub item list
else if (pPrevInfo->indent==indent)
// new item of diffent kind at the same indent level
{
{
outDoc->startItemList();
// switch to a diffent list type
outDoc->writeListItem();
pPrevInfo->endList();
listIndentStack.push(new int(indent));
pPrevInfo->enumerated=enumerated;
pPrevInfo->startList();
pPrevInfo->writeItem();
}
else if (pPrevInfo->indent<indent) // start sub item list
{
listIndentStack.push(new IndentInfo(indent,enumerated));
listIndentStack.top()->startList();
listIndentStack.top()->writeItem();
}
}
else // end sub item list
else // end sub item list
{
{
pPrevInfo->endList();
listIndentStack.pop();
listIndentStack.pop();
delete pPrevIndent;
delete pPrevInfo;
outDoc->endItemList();
// safe guard against wrong indenting
// safe guard against wrong indenting
if (listIndentStack.isEmpty())
if (listIndentStack.isEmpty())
{
{
...
@@ -641,35 +671,24 @@ static void addListItemMarker(const char *marker)
...
@@ -641,35 +671,24 @@ static void addListItemMarker(const char *marker)
}
}
else
else
{
{
outDoc->writeList
Item();
listIndentStack.top()->write
Item();
}
}
}
}
}
}
}
}
// end the current (nested) list regardless of the nesting level.
static void forceEndItemList()
static void forceEndItemList()
{
{
int *indent
;
IndentInfo *info
;
while ((in
dent
=listIndentStack.pop())!=0)
while ((in
fo
=listIndentStack.pop())!=0)
{
{
outDoc->endItem
List();
info->end
List();
delete in
dent
;
delete in
fo
;
}
}
insideItemList=FALSE;
insideItemList=FALSE;
}
}
#if 0
static void tryEndItemList()
{
if (listIndentStack.count()==1) // no subitems => end list
{
outDoc->endItemList();
delete listIndentStack.pop();
insideItemList=FALSE;
}
}
#endif
//-----------------------------------------------------------------
//-----------------------------------------------------------------
static bool inBlock()
static bool inBlock()
...
@@ -1144,25 +1163,19 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -1144,25 +1163,19 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
BEGIN( FindMembers );
BEGIN( FindMembers );
}
}
<*>\x0d
<*>\x0d
/*
<DocScan>^{B}*(("//"{B}*)?)"*"*{B}*"-"("#")?{B}+ { /* found list item marker */
<DocScan>^{BL} {
QCString text=yytext;
if (insideArgumentList)
int dashPos = text.findRev('-');
{
//printf("dashPos=%d char='%c'\n",dashPos,text.at(dashPos+1));
insideArgumentList=FALSE;
bool isEnumerated = text.at(dashPos+1)=='#';
outDoc->endItemList();
addListItemMarker(yytext,dashPos,isEnumerated);
}
else
{
outDoc->newParagraph();
}
if (inBlock()) endBlock();
}
*/
<DocScan>^{B}*(("//"{B}*)?)"*"*{B}*"-"{B}+ { /* found list item marker */
addListItemMarker(yytext);
}
}
<DocScan>\n{B}*(("//"{B}*)?)"*"*{B}*"-"{B}+ {
<DocScan>\n{B}*(("//"{B}*)?)"*"*{B}*"-"("#")?{B}+ { /* found list item marker */
addListItemMarker(yytext+1);
QCString text=yytext;
int dashPos = text.findRev('-');
//printf("dashPos=%d char='%c'\n",dashPos,text.at(dashPos+1));
bool isEnumerated = text.at(dashPos+1)=='#';
addListItemMarker(yytext+1,dashPos,isEnumerated);
}
}
<DocScan,Text>"©" { outDoc->writeCopyright(); }
<DocScan,Text>"©" { outDoc->writeCopyright(); }
<DocScan,Text>""" { outDoc->writeQuote(); }
<DocScan,Text>""" { outDoc->writeQuote(); }
...
@@ -2222,19 +2235,19 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -2222,19 +2235,19 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
<DocScan>"%"[a-zA-Z_0-9\-]+ {
<DocScan>"%"[a-zA-Z_0-9\-]+ {
outDoc->docify(yytext+1);
outDoc->docify(yytext+1);
}
}
<DocEmphasis>
{WORD} {
<DocEmphasis>
[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" {
outDoc->startEmphasis();
outDoc->startEmphasis();
linkifyText(TextGeneratorOLImpl(*outDoc),className,0,yytext,FALSE,FALSE
);
generateRef(*outDoc,className,yytext,inSeeBlock
);
outDoc->endEmphasis();
outDoc->endEmphasis();
BEGIN( DocScan );
BEGIN( DocScan );
}
}
<DocEmphasis>
[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"()" {
<DocEmphasis>
{WORD} {
outDoc->startEmphasis();
outDoc->startEmphasis();
generateRef(*outDoc,className,yytext,inSeeBlock
);
linkifyText(TextGeneratorOLImpl(*outDoc),className,0,yytext,FALSE,FALSE
);
outDoc->endEmphasis();
outDoc->endEmphasis();
BEGIN( DocScan );
BEGIN( DocScan );
}
}
<DocBold>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"()" {
<DocBold>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"(
"[a-z_A-Z0-9,:\<\> \t\*\&]*"
)" {
outDoc->startBold();
outDoc->startBold();
generateRef(*outDoc,className,yytext,inSeeBlock);
generateRef(*outDoc,className,yytext,inSeeBlock);
outDoc->endBold();
outDoc->endBold();
...
@@ -2246,7 +2259,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -2246,7 +2259,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->endBold();
outDoc->endBold();
BEGIN( DocScan );
BEGIN( DocScan );
}
}
<DocCode>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()
|\*/]*"(
)" {
<DocCode>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()
!\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*"
)" {
outDoc->startTypewriter();
outDoc->startTypewriter();
generateRef(*outDoc,className,yytext,inSeeBlock);
generateRef(*outDoc,className,yytext,inSeeBlock);
outDoc->endTypewriter();
outDoc->endTypewriter();
...
@@ -2278,7 +2291,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -2278,7 +2291,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->docify(yytext);
outDoc->docify(yytext);
}
}
<DocCode,DocEmphasis,DocBold>"\n" { outDoc->writeChar('\n'); }
<DocCode,DocEmphasis,DocBold>"\n" { outDoc->writeChar('\n'); }
<DocScan>({B}*"\n"){2,}{B}*"*"*{B}*"-"{B}+ { // new paragraph & start of a list
<DocScan>({B}*"\n"){2,}{B}*"*"*{B}*"-"("#")?{B}+ { // new paragraph & start of a list
QCString text=yytext;
int dashPos = text.findRev('-');
bool isEnumerated = text.at(dashPos+1)=='#';
if (insideArgumentList)
if (insideArgumentList)
{
{
insideArgumentList=FALSE;
insideArgumentList=FALSE;
...
@@ -2293,7 +2309,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -2293,7 +2309,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->newParagraph();
outDoc->newParagraph();
}
}
if (inBlock()) endBlock();
if (inBlock()) endBlock();
addListItemMarker(strrchr(yytext,'\n')+1);
addListItemMarker(strrchr(yytext,'\n')+1
,dashPos,isEnumerated
);
}
}
<DocScan>({B}*"\n"){2,}{B}* { // new paragraph
<DocScan>({B}*"\n"){2,}{B}* { // new paragraph
if (insideArgumentList)
if (insideArgumentList)
...
@@ -5163,7 +5179,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -5163,7 +5179,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
unput('/');unput('*');
unput('/');unput('*');
BEGIN( tmpDocType );
BEGIN( tmpDocType );
}
}
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"{B}+ {
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"
("#")?
{B}+ {
current->doc += yytext;
current->doc += yytext;
}
}
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/]
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/]
...
...
src/util.cpp
View file @
5ad8b41e
...
@@ -838,6 +838,23 @@ QCString fileToString(const char *name)
...
@@ -838,6 +838,23 @@ QCString fileToString(const char *name)
if
(
name
[
0
]
==
'-'
&&
name
[
1
]
==
0
)
// read from stdin
if
(
name
[
0
]
==
'-'
&&
name
[
1
]
==
0
)
// read from stdin
{
{
fileOpened
=
f
.
open
(
IO_ReadOnly
,
stdin
);
fileOpened
=
f
.
open
(
IO_ReadOnly
,
stdin
);
if
(
fileOpened
)
{
const
int
bSize
=
4096
;
QCString
contents
(
bSize
);
int
totalSize
=
0
;
int
size
;
while
((
size
=
f
.
readBlock
(
contents
.
data
()
+
totalSize
,
bSize
))
==
bSize
)
{
totalSize
+=
bSize
;
contents
.
resize
(
totalSize
+
bSize
);
}
totalSize
+=
size
+
2
;
contents
.
resize
(
totalSize
);
contents
.
at
(
totalSize
-
2
)
=
'\n'
;
// to help the scanner
contents
.
at
(
totalSize
-
1
)
=
'\0'
;
return
contents
;
}
}
}
else
// read from file
else
// read from file
{
{
...
@@ -849,22 +866,25 @@ QCString fileToString(const char *name)
...
@@ -849,22 +866,25 @@ QCString fileToString(const char *name)
}
}
f
.
setName
(
name
);
f
.
setName
(
name
);
fileOpened
=
f
.
open
(
IO_ReadOnly
);
fileOpened
=
f
.
open
(
IO_ReadOnly
);
}
if
(
fileOpened
)
if
(
!
fileOpened
)
{
{
err
(
"Error: cannot open file `%s' for reading
\n
"
,
name
);
return
""
;
}
int
fsize
=
f
.
size
();
int
fsize
=
f
.
size
();
QCString
contents
(
fsize
+
2
);
QCString
contents
(
fsize
+
2
);
f
.
readBlock
(
contents
.
data
(),
fsize
);
f
.
readBlock
(
contents
.
data
(),
fsize
);
if
(
fsize
==
0
||
contents
[
fsize
-
1
]
==
'\n'
)
if
(
fsize
==
0
||
contents
[
fsize
-
1
]
==
'\n'
)
contents
[
fsize
]
=
'\0'
;
contents
[
fsize
]
=
'\0'
;
else
else
contents
[
fsize
]
=
'\n'
;
contents
[
fsize
]
=
'\n'
;
// to help the scanner
contents
[
fsize
+
1
]
=
'\0'
;
contents
[
fsize
+
1
]
=
'\0'
;
f
.
close
();
f
.
close
();
return
contents
;
return
contents
;
}
}
if
(
!
fileOpened
)
{
err
(
"Error: cannot open file `%s' for reading
\n
"
,
name
);
}
return
""
;
}
}
QCString
dateToString
(
bool
includeTime
)
QCString
dateToString
(
bool
includeTime
)
...
...
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