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
8a5c51f2
Commit
8a5c51f2
authored
Nov 12, 2003
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3.4-20031112
parent
a2a1e97f
Changes
26
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
533 additions
and
898 deletions
+533
-898
Doxyfile
Doxyfile
+1
-1
INSTALL
INSTALL
+2
-2
Makefile.in
Makefile.in
+17
-4
README
README
+2
-2
VERSION
VERSION
+1
-1
config.doc
doc/config.doc
+8
-8
md5.c
libmd5/md5.c
+290
-503
md5.h
libmd5/md5.h
+38
-211
md5_loc.h
libmd5/md5_loc.h
+16
-103
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
Makefile.in
src/Makefile.in
+1
-1
classdef.cpp
src/classdef.cpp
+1
-1
code.l
src/code.l
+45
-1
config.l
src/config.l
+8
-11
definition.cpp
src/definition.cpp
+3
-1
docparser.cpp
src/docparser.cpp
+4
-5
dot.cpp
src/dot.cpp
+76
-26
doxygen.cpp
src/doxygen.cpp
+5
-5
filedef.cpp
src/filedef.cpp
+1
-1
groupdef.cpp
src/groupdef.cpp
+1
-1
memberdef.cpp
src/memberdef.cpp
+1
-1
namespacedef.cpp
src/namespacedef.cpp
+1
-1
search.php
src/search.php
+2
-2
search_php.h
src/search_php.h
+2
-2
searchindex.cpp
src/searchindex.cpp
+5
-2
searchindex.h
src/searchindex.h
+1
-1
No files found.
Doxyfile
View file @
8a5c51f2
...
@@ -187,4 +187,4 @@ DOT_CLEANUP = YES
...
@@ -187,4 +187,4 @@ DOT_CLEANUP = YES
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
SEARCHENGINE =
NO
SEARCHENGINE =
YES
INSTALL
View file @
8a5c51f2
DOXYGEN Version 1.3.4-200311
03
DOXYGEN Version 1.3.4-200311
12
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
03
November 2003)
Dimitri van Heesch (
12
November 2003)
Makefile.in
View file @
8a5c51f2
...
@@ -73,11 +73,24 @@ docs: FORCE
...
@@ -73,11 +73,24 @@ docs: FORCE
pdf
:
docs
pdf
:
docs
cd
latex
;
$(MAKE)
cd
latex
;
$(MAKE)
DISTFILES
=
Doxyfile libpng libmd5 addon tmake doc wintools examples bin lib objects
\
qtools src configure configure.bin Makefile.in Makefile.win_nmake.in
\
Makefile.win_make.in INSTALL make.bat LANGUAGE.HOWTO LICENSE PLATFORMS
\
VERSION packages
archive
:
clean
archive
:
clean
tar
zcvf dx
`
date
+%y%m%d
`
.tgz Doxyfile libpng libmd5 addon tmake doc wintools examples bin lib objects
\
tar
zcvf dx
`
date
+%y%m%d
`
.tgz
$(DISTFILES)
qtools src configure configure.bin Makefile.in Makefile.win_nmake.in
\
Makefile.win_make.in INSTALL make.bat LANGUAGE.HOWTO LICENSE PLATFORMS
\
DISTDIR
=
doxygen-
`
echo
$(VERSION)
|
tr
- _
`
VERSION packages
dist
:
clean
rm
-rf
$(DISTDIR)
mkdir
$(DISTDIR)
cp
-a
$(DISTFILES)
README
$(DISTDIR)
find
$(DISTDIR)
\(
-name
"CVS"
-o
-name
".cvsignore"
\)
\
-print0
| xargs
-0
rm
-rf
tar
zcvf
$(DISTDIR)
.src.tar.gz
$(DISTDIR)
rm
-rf
$(DISTDIR)
src/version.cpp
:
Makefile
src/version.cpp
:
Makefile
echo
"char versionString[]=
\"
$(VERSION)
\"
;"
>
src/version.cpp
echo
"char versionString[]=
\"
$(VERSION)
\"
;"
>
src/version.cpp
...
...
README
View file @
8a5c51f2
DOXYGEN Version 1.3.4_200311
03
DOXYGEN Version 1.3.4_200311
12
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
03
November 2003)
Dimitri van Heesch (dimitri@stack.nl) (
12
November 2003)
VERSION
View file @
8a5c51f2
1.3.4-200311
03
1.3.4-200311
12
doc/config.doc
View file @
8a5c51f2
...
@@ -356,7 +356,7 @@ followed by the descriptions of the tags grouped by category.
...
@@ -356,7 +356,7 @@ followed by the descriptions of the tags grouped by category.
The new default is to treat a multi-line C++ comment block as a detailed
The new default is to treat a multi-line C++ comment block as a detailed
description. Set this tag to YES if you prefer the old behaviour instead.
description. Set this tag to YES if you prefer the old behaviour instead.
Note that setting this tag to YES also means that rational rose comments
Note that setting this tag to YES also means that rational rose comments
are not recogni
s
ed any more.
are not recogni
z
ed any more.
\anchor cfg_details_at_top
\anchor cfg_details_at_top
<dt>\c DETAILS_AT_TOP <dd>
<dt>\c DETAILS_AT_TOP <dd>
...
@@ -371,7 +371,7 @@ followed by the descriptions of the tags grouped by category.
...
@@ -371,7 +371,7 @@ followed by the descriptions of the tags grouped by category.
\addindex INHERIT_DOCS
\addindex INHERIT_DOCS
If the \c INHERIT_DOCS tag is set to \c YES (the default) then an undocumented
If the \c INHERIT_DOCS tag is set to \c YES (the default) then an undocumented
member inherits the documentation from any documented member that it
member inherits the documentation from any documented member that it
reimplements.
re
-
implements.
\anchor cfg_distribute_group_doc
\anchor cfg_distribute_group_doc
<dt>\c DISTRIBUTE_GROUP_DOC <dd>
<dt>\c DISTRIBUTE_GROUP_DOC <dd>
...
@@ -940,7 +940,7 @@ function's detailed documentation block.
...
@@ -940,7 +940,7 @@ function's detailed documentation block.
If
the
\
c
GENERATE_HTMLHELP
tag
is
set
to
\
c
YES
,
the
\
c
CHM_FILE
tag
can
If
the
\
c
GENERATE_HTMLHELP
tag
is
set
to
\
c
YES
,
the
\
c
CHM_FILE
tag
can
be
used
to
specify
the
file
name
of
the
resulting
.
chm
file
.
You
be
used
to
specify
the
file
name
of
the
resulting
.
chm
file
.
You
can
add
a
path
in
front
of
the
file
if
the
result
should
not
be
can
add
a
path
in
front
of
the
file
if
the
result
should
not
be
written
to
the
html
output
dir
.
written
to
the
html
output
dir
ectory
.
\
anchor
cfg_hhc_location
\
anchor
cfg_hhc_location
<
dt
>\
c
HHC_LOCATION
<
dd
>
<
dt
>\
c
HHC_LOCATION
<
dd
>
...
@@ -989,7 +989,7 @@ function's detailed documentation block.
...
@@ -989,7 +989,7 @@ function's detailed documentation block.
\
anchor
cfg_generate_treeview
\
anchor
cfg_generate_treeview
<
dt
>\
c
GENERATE_TREEVIEW
<
dd
>
<
dt
>\
c
GENERATE_TREEVIEW
<
dd
>
\
addindex
GENERATE_TREEVIEW
\
addindex
GENERATE_TREEVIEW
If
the
\
c
GENERATE_TREEVIEW
tag
is
set
to
YES
,
a
side
pan
n
el
will
be
If
the
\
c
GENERATE_TREEVIEW
tag
is
set
to
YES
,
a
side
panel
will
be
generated
containing
a
tree
-
like
index
structure
(
just
like
the
one
that
generated
containing
a
tree
-
like
index
structure
(
just
like
the
one
that
is
generated
for
HTML
Help
).
For
this
to
work
a
browser
that
supports
is
generated
for
HTML
Help
).
For
this
to
work
a
browser
that
supports
JavaScript
and
frames
is
required
(
for
instance
Mozilla
1.0
+,
Netscape
6.0
+
JavaScript
and
frames
is
required
(
for
instance
Mozilla
1.0
+,
Netscape
6.0
+
...
@@ -1132,7 +1132,7 @@ EXTRA_PACKAGES = times
...
@@ -1132,7 +1132,7 @@ EXTRA_PACKAGES = times
<dt>\c GENERATE_RTF <dd>
<dt>\c GENERATE_RTF <dd>
\addindex GENERATE_RTF
\addindex GENERATE_RTF
If the \c GENERATE_RTF tag is set to \c YES doxygen will generate RTF output.
If the \c GENERATE_RTF tag is set to \c YES doxygen will generate RTF output.
The RTF output is optimi
s
ed for Word 97 and may not look too pretty with
The RTF output is optimi
z
ed for Word 97 and may not look too pretty with
other readers/editors.
other readers/editors.
\anchor cfg_rtf_output
\anchor cfg_rtf_output
...
@@ -1165,7 +1165,7 @@ EXTRA_PACKAGES = times
...
@@ -1165,7 +1165,7 @@ EXTRA_PACKAGES = times
<dt>\c RTF_STYLESHEET_FILE <dd>
<dt>\c RTF_STYLESHEET_FILE <dd>
\addindex RTF_STYLESHEET_FILE
\addindex RTF_STYLESHEET_FILE
Load stylesheet definitions from file. Syntax is similar to doxygen'
s
Load stylesheet definitions from file. Syntax is similar to doxygen'
s
config
file
,
i
.
e
.
a
series
of
assigments
.
You
only
have
to
provide
config
file
,
i
.
e
.
a
series
of
assig
n
ments
.
You
only
have
to
provide
replacements
,
missing
definitions
are
set
to
their
default
value
.
replacements
,
missing
definitions
are
set
to
their
default
value
.
See
also
section
\
ref
doxygen_usage
for
information
on
how
to
generate
See
also
section
\
ref
doxygen_usage
for
information
on
how
to
generate
...
@@ -1441,7 +1441,7 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
...
@@ -1441,7 +1441,7 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
If
the
\
c
CLASS_DIAGRAMS
tag
is
set
to
\
c
YES
(
the
default
)
doxygen
will
If
the
\
c
CLASS_DIAGRAMS
tag
is
set
to
\
c
YES
(
the
default
)
doxygen
will
generate
a
class
diagram
(
in
HTML
and
\
f
$\
mbox
{\
LaTeX
}\
f
$)
for
classes
with
base
or
generate
a
class
diagram
(
in
HTML
and
\
f
$\
mbox
{\
LaTeX
}\
f
$)
for
classes
with
base
or
super
classes
.
Setting
the
tag
to
\
c
NO
turns
the
diagrams
off
.
super
classes
.
Setting
the
tag
to
\
c
NO
turns
the
diagrams
off
.
Note
that
this
option
is
super
c
eded
by
the
HAVE_DOT
option
below
.
Note
that
this
option
is
super
s
eded
by
the
HAVE_DOT
option
below
.
This
is
only
a
fallback
.
It
is
recommended
to
install
and
use
dot
,
This
is
only
a
fallback
.
It
is
recommended
to
install
and
use
dot
,
since
it
yields
more
powerful
graphs
.
since
it
yields
more
powerful
graphs
.
...
@@ -1555,7 +1555,7 @@ note that a graph may be further truncated if the graph's image dimensions are
...
@@ -1555,7 +1555,7 @@ note that a graph may be further truncated if the graph's image dimensions are
not sufficient to fit the graph (see
not sufficient to fit the graph (see
\ref cfg_max_dot_graph_width "MAX_DOT_GRAPH_WIDTH" and
\ref cfg_max_dot_graph_width "MAX_DOT_GRAPH_WIDTH" and
\ref cfg_max_dot_graph_height "MAX_DOT_GRAPH_HEIGHT").
\ref cfg_max_dot_graph_height "MAX_DOT_GRAPH_HEIGHT").
If 0 is used fo
t
the depth value (the default), the graph is
If 0 is used fo
r
the depth value (the default), the graph is
not depth-constraint.
not depth-constraint.
\anchor cfg_max_dot_graph_width
\anchor cfg_max_dot_graph_width
...
...
libmd5/md5.c
View file @
8a5c51f2
This diff is collapsed.
Click to expand it.
libmd5/md5.h
View file @
8a5c51f2
/*
/* MD5.H - header file for MD5C.C
* Declaration of functions and data types used for MD5 sum computing
* library functions. Copyright (C) 1995, 1996 Free Software
* Foundation, Inc. NOTE: The canonical source of this file is
* maintained with the GNU C Library. Bugs can be reported to
* bug-glibc@prep.ai.mit.edu.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* $Id$
*/
*/
/*
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
* NOTE: during quick performance tests on a sun ultra and an alpha
rights reserved.
* 255 300, the md5 libraries performed upwards of 3mb/sec. That
* included disk i/o on bobcat and panther.
License to copy and use this software is granted provided that it
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing this software
or this function.
License is also granted to make and use derivative works provided
that such works are identified as "derived from the RSA Data
Security, Inc. MD5 Message-Digest Algorithm" in all material
mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software for any particular purpose. It is provided "as is"
without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this
documentation and/or software.
*/
*/
#ifndef _
_MD5_H_
_
#ifndef _
MD5_H
_
#define _
_MD5_H__
#define _
MD5_H_
#ifdef __cplusplus
#ifdef __cplusplus
extern
"C"
{
extern
"C"
{
#endif
#endif
/*
#include "md5_loc.h"
* Size of a standard MD5 signature in bytes. This definition is for
* external programs only. The MD5 routines themselves reference the
/* MD5 context. */
* signature as 4 unsigned 32-bit integers.
typedef
struct
{
*/
UINT4
state
[
4
];
/* state (ABCD) */
#define MD5_SIZE 16
UINT4
count
[
2
];
/* number of bits, modulo 2^64 (lsb first) */
unsigned
char
buffer
[
64
];
/* input buffer */
/*
}
MD5_CTX
;
* NOTE: the following is assumed to generate a 32-bit unsigned data
* type.
void
MD5Init
(
MD5_CTX
*
ctx
);
*/
void
MD5Update
(
MD5_CTX
*
ctx
,
const
unsigned
char
*
buf
,
unsigned
int
len
);
typedef
unsigned
int
md5_uint32
;
void
MD5Final
(
MD5_CTX
*
ctx
,
unsigned
char
sig
[
16
]);
#define MAX_MD5_UINT32 ((md5_uint32)4294967295U)
void
MD5Buffer
(
const
char
*
buf
,
unsigned
int
len
,
unsigned
char
sig
[
16
]);
void
MD5SigToString
(
unsigned
char
sig
[
16
],
char
*
str
,
int
len
);
/*
* The MD5 algorithm works on blocks of characters of 64 bytes. This
* is an internal value only and is not necessary for external use.
*/
#define MD5_BLOCK_SIZE 64
/*
* Structure to save state of computation between the single steps.
*/
typedef
struct
{
md5_uint32
md_A
;
/* accumulater 1 */
md5_uint32
md_B
;
/* accumulater 2 */
md5_uint32
md_C
;
/* accumulater 3 */
md5_uint32
md_D
;
/* accumulater 4 */
md5_uint32
md_total
[
2
];
/* totaling storage */
md5_uint32
md_buf_len
;
/* length of the storage buffer */
char
md_buffer
[
MD5_BLOCK_SIZE
*
2
];
/* character storage buffer */
}
md5_t
;
/*<<<<<<<<<< The below prototypes are auto-generated by fillproto */
/*
* md5_init
*
* DESCRIPTION:
*
* Initialize structure containing state of MD5 computation. (RFC 1321,
* 3.3: Step 3). This is for progressive MD5 calculations only. If
* you have the complete string available, md5_buffer should be used.
* md5_process should be called for each bunch of bytes and after the
* last process call, md5_finish should be called to get the
* signature.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* md5_p - Pointer to md5 structure that we are initializing.
*/
extern
void
md5_init
(
md5_t
*
md5_p
);
/*
* md5_process
*
* DESCRIPTION:
*
* This function is used to progressively calculate a MD5 signature some
* number of bytes at a time. If you have the complete string
* available, md5_buffer should be used. The MD5 structure should
* have been initialized with md5_init and after the last process
* call, md5_finish should be called to get the results.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* md5_p - Pointer to MD5 structure which we are progressively updating.
*
* buffer - A buffer of bytes whose MD5 signature we are calculating.
*
* buf_len - The length of the buffer.
*/
extern
void
md5_process
(
md5_t
*
md5_p
,
const
void
*
buffer
,
const
unsigned
int
buf_len
);
/*
* md5_finish
*
* DESCRIPTION:
*
* Finish a progressing MD5 calculation and copy the resulting MD5
* signature into the result buffer which should be 16 bytes
* (MD5_SIZE). After this call, the MD5 structure is invalid.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* md5_p - Pointer to MD5 structure which we are finishing.
*
* signature - A 16 byte buffer that will contain the MD5 signature.
*/
extern
void
md5_finish
(
md5_t
*
md5_p
,
void
*
signature
);
/*
* md5_buffer
*
* DESCRIPTION:
*
* This function is used to calculate a MD5 signature for a buffer of
* bytes. If you only have part of a buffer that you want to process
* then md5_init, md5_process, and md5_finish should be used.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* buffer - A buffer of bytes whose MD5 signature we are calculating.
*
* buf_len - The length of the buffer.
*
* signature - A 16 byte buffer that will contain the MD5 signature.
*/
extern
void
md5_buffer
(
const
char
*
buffer
,
const
unsigned
int
buf_len
,
void
*
signature
);
/*
* md5_sig_to_string
*
* DESCRIPTION:
*
* Convert a MD5 signature in a 16 byte buffer into a hexadecimal string
* representation.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* signature - a 16 byte buffer that contains the MD5 signature.
*
* str - a string of charactes which should be at least 33 bytes long (2
* characters per MD5 byte and 1 for the \0).
*
* str_len - the length of the string.
*/
extern
void
md5_sig_to_string
(
void
*
signature
,
char
*
str
,
const
int
str_len
);
/*
* md5_sig_from_string
*
* DESCRIPTION:
*
* Convert a MD5 signature from a hexadecimal string representation into
* a 16 byte buffer.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* signature - A 16 byte buffer that will contain the MD5 signature.
*
* str - A string of charactes which _must_ be at least 32 bytes long (2
* characters per MD5 byte).
*/
extern
void
md5_sig_from_string
(
void
*
signature
,
const
char
*
str
);
/*<<<<<<<<<< This is end of the auto-generated output from fillproto. */
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
#endif
/* ! __MD5_H__ */
#endif
libmd5/md5_loc.h
View file @
8a5c51f2
/*
/* GLOBAL.H - RSAREF types and constants */
* Local defines for the md5 functions.
*
* $Id$
*/
/*
/* Copyright (C) RSA Laboratories, a division of RSA Data Security,
* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
Inc., created 1991. All rights reserved.
* rights reserved.
*
* License to copy and use this software is granted provided that it is
* identified as the "RSA Data Security, Inc. MD5 Message-Digest
* Algorithm" in all material mentioning or referencing this software
* or this function.
*
* License is also granted to make and use derivative works provided that
* such works are identified as "derived from the RSA Data Security,
* Inc. MD5 Message-Digest Algorithm" in all material mentioning or
* referencing the derived work.
*
* RSA Data Security, Inc. makes no representations concerning either the
* merchantability of this software or the suitability of this
* software for any particular purpose. It is provided "as is" without
* express or implied warranty of any kind.
*
* These notices must be retained in any copies of any part of this
* documentation and/or software.
*/
*/
#ifndef _
_MD5_LOC_H__
#ifndef _
MD5LOC_H
#define _
_MD5_LOC_H__
#define _
MD5LOC_H
#ifdef __cplusplus
/* POINTER defines a generic pointer type */
extern
"C"
{
typedef
unsigned
char
*
POINTER
;
#endif
#define HEX_STRING "0123456789abcdef"
/* to convert to hex
*/
/* UINT2 defines a two byte word
*/
#define BLOCK_SIZE_MASK (MD5_BLOCK_SIZE - 1)
typedef
unsigned
short
int
UINT2
;
/*
/* UINT4 defines a four byte word */
* Define my endian-ness. Could not do in a portable manner using the
typedef
unsigned
long
int
UINT4
;
* include files -- grumble.
*/
#if defined(__alpha) || defined(WIN32) || defined(__i386__)
/*
* little endian
*/
#define SWAP(n) (n)
#endif
#ifdef __sparc
#ifndef NULL_PTR
/*
#define NULL_PTR ((POINTER)0)
* big endian - big is better
*/
#define SWAP(n) \
(((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
#endif
#endif
/*
#ifndef UNUSED_ARG
* These are the four functions used in the four steps of the MD5
#define UNUSED_ARG(x) x = *(&x);
* algorithm and defined in the RFC 1321. The first function is a
* little bit optimized (as found in Colin Plumbs public domain
* implementation).
*/
/* #define FF(b, c, d) ((b & c) | (~b & d)) */
#define FF(b, c, d) (d ^ (b & (c ^ d)))
#define FG(b, c, d) FF(d, b, c)
#define FH(b, c, d) (b ^ c ^ d)
#define FI(b, c, d) (c ^ (b | ~d))
/*
* It is unfortunate that C does not provide an operator for cyclic
* rotation. Hope the C compiler is smart enough. -- Modified to
* remove the w = at the front - Gray 2/97
*/
#define CYCLIC(w, s) ((w << s) | (w >> (32 - s)))
/*
* First Round: using the given function, the context and a constant
* the next context is computed. Because the algorithms processing
* unit is a 32-bit word and it is determined to work on words in
* little endian byte order we perhaps have to change the byte order
* before the computation. To reduce the work for the next steps we
* store the swapped words in the array CORRECT_WORDS. -- Modified to
* fix the handling of unaligned buffer spaces - Gray 7/97
*/
#define OP1(a, b, c, d, b_p, c_p, s, T) \
do { \
memcpy(c_p, b_p, sizeof(md5_uint32)); \
*c_p = SWAP(*c_p); \
a += FF (b, c, d) + *c_p + T; \
a = CYCLIC (a, s); \
a += b; \
b_p = (char *)b_p + sizeof(md5_uint32); \
c_p++; \
} while (0)
/*
* Second to Fourth Round: we have the possibly swapped words in
* CORRECT_WORDS. Redefine the macro to take an additional first
* argument specifying the function to use.
*/
#define OP234(FUNC, a, b, c, d, k, s, T) \
do { \
a += FUNC (b, c, d) + k + T; \
a = CYCLIC (a, s); \
a += b; \
} while (0)
#ifdef __cplusplus
}
#endif
#endif
#endif
/*
! __MD5_LOC_H_
_ */
#endif
/*
end _GLOBAL_H
_ */
packages/rpm/doxygen.spec
View file @
8a5c51f2
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.3.4_200311
03
Version: 1.3.4_200311
12
Release: 1
Release: 1
Epoch: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/Makefile.in
View file @
8a5c51f2
...
@@ -38,7 +38,7 @@ tmake:
...
@@ -38,7 +38,7 @@ tmake:
$(ENV)
$(PERL)
$(TMAKE)
doxygen.pro
>
Makefile.doxygen
$(ENV)
$(PERL)
$(TMAKE)
doxygen.pro
>
Makefile.doxygen
$(ENV)
$(PERL)
$(TMAKE)
doxytag.pro
>
Makefile.doxytag
$(ENV)
$(PERL)
$(TMAKE)
doxytag.pro
>
Makefile.doxytag
clean
:
Makefile.libdoxygen Makefile.doxygen Makefile.doxytag
clean
:
Makefile.libdoxygen Makefile.
libdoxycfg Makefile.
doxygen Makefile.doxytag
$(MAKE)
-f
Makefile.libdoxygen clean
$(MAKE)
-f
Makefile.libdoxygen clean
$(MAKE)
-f
Makefile.libdoxycfg clean
$(MAKE)
-f
Makefile.libdoxycfg clean
$(MAKE)
-f
Makefile.doxygen clean
$(MAKE)
-f
Makefile.doxygen clean
...
...
src/classdef.cpp
View file @
8a5c51f2
...
@@ -853,7 +853,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -853,7 +853,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
}
...
...
src/code.l
View file @
8a5c51f2
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "outputlist.h"
#include "outputlist.h"
#include "util.h"
#include "util.h"
#include "membername.h"
#include "membername.h"
#include "searchindex.h"
#define YY_NEVER_INTERACTIVE 1
#define YY_NEVER_INTERACTIVE 1
...
@@ -78,7 +79,8 @@ static QCString g_name;
...
@@ -78,7 +79,8 @@ static QCString g_name;
static QCString g_args;
static QCString g_args;
static QCString g_classScope;
static QCString g_classScope;
static QCString g_realScope;
static QCString g_realScope;
static QStack<int> g_scopeStack; //!< 1 if bracket starts a scope, 2 for internal blocks
static QStack<int> g_scopeStack; //!< 1 if bracket starts a scope,
// 2 for internal blocks
static int g_anchorCount;
static int g_anchorCount;
static FileDef * g_sourceFileDef;
static FileDef * g_sourceFileDef;
static Definition * g_currentDefinition;
static Definition * g_currentDefinition;
...
@@ -318,6 +320,24 @@ static void popScope()
...
@@ -318,6 +320,24 @@ static void popScope()
//printf("popScope() result: `%s'\n",g_classScope.data());
//printf("popScope() result: `%s'\n",g_classScope.data());
}
}
static void setCurrentDoc(const QCString &name,const QCString &base,const QCString &anchor="")
{
static bool searchEngineEnabled=Config_getBool("SEARCHENGINE");
if (searchEngineEnabled)
{
Doxygen::searchIndex->setCurrentDoc(name,base,anchor);
}
}
static void addToSearchIndex(const char *text)
{
static bool searchEngineEnabled=Config_getBool("SEARCHENGINE");
if (searchEngineEnabled)
{
Doxygen::searchIndex->addWord(text);
}
}
static void setClassScope(const QCString &name)
static void setClassScope(const QCString &name)
{
{
//printf("setClassScope(%s)\n",name.data());
//printf("setClassScope(%s)\n",name.data());
...
@@ -360,17 +380,27 @@ static void startCodeLine()
...
@@ -360,17 +380,27 @@ static void startCodeLine()
g_realScope = d->name().copy();
g_realScope = d->name().copy();
//printf("Real scope: `%s'\n",g_realScope.data());
//printf("Real scope: `%s'\n",g_realScope.data());
g_bodyCurlyCount = 0;
g_bodyCurlyCount = 0;
QCString lineAnchor;
lineAnchor.sprintf("l%05d",g_yyLineNr);
if (g_currentMemberDef)
if (g_currentMemberDef)
{
{
g_code->writeLineNumber(g_currentMemberDef->getReference(),
g_code->writeLineNumber(g_currentMemberDef->getReference(),
g_currentMemberDef->getOutputFileBase(),
g_currentMemberDef->getOutputFileBase(),
g_currentMemberDef->anchor(),g_yyLineNr);
g_currentMemberDef->anchor(),g_yyLineNr);
setCurrentDoc(
g_currentMemberDef->qualifiedName(),
g_sourceFileDef->getSourceFileBase(),
lineAnchor);
}
}
else
else
{
{
g_code->writeLineNumber(d->getReference(),
g_code->writeLineNumber(d->getReference(),
d->getOutputFileBase(),
d->getOutputFileBase(),
0,g_yyLineNr);
0,g_yyLineNr);
setCurrentDoc(
d->qualifiedName(),
g_sourceFileDef->getSourceFileBase(),
lineAnchor);
}
}
}
}
else
else
...
@@ -683,6 +713,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
...
@@ -683,6 +713,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
}
}
}
}
writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),0,className);
writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),0,className);
addToSearchIndex(className);
if (md)
if (md)
{
{
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
...
@@ -717,6 +748,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
...
@@ -717,6 +748,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
if (md->isLinkable())
if (md->isLinkable())
{
{
writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),clName);
writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),clName);
addToSearchIndex(clName);
if (g_currentMemberDef)
if (g_currentMemberDef)
{
{
addDocCrossReference(g_currentMemberDef,md);
addDocCrossReference(g_currentMemberDef,md);
...
@@ -727,6 +759,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
...
@@ -727,6 +759,7 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
}
}
codifyLines(clName);
codifyLines(clName);
addToSearchIndex(clName);
}
}
}
}
...
@@ -782,6 +815,7 @@ static bool getLink(const char *className,
...
@@ -782,6 +815,7 @@ static bool getLink(const char *className,
md->getOutputFileBase(),
md->getOutputFileBase(),
md->anchor(),
md->anchor(),
text ? text : memberName);
text ? text : memberName);
addToSearchIndex(text ? text : memberName);
return TRUE;
return TRUE;
}
}
}
}
...
@@ -834,6 +868,7 @@ static bool generateClassMemberLink(BaseCodeDocInterface &ol,ClassDef *mcd,const
...
@@ -834,6 +868,7 @@ static bool generateClassMemberLink(BaseCodeDocInterface &ol,ClassDef *mcd,const
// write the actual link
// write the actual link
writeMultiLineCodeLink(ol,xmd->getReference(),
writeMultiLineCodeLink(ol,xmd->getReference(),
xmd->getOutputFileBase(),xmd->anchor(),memName);
xmd->getOutputFileBase(),xmd->anchor(),memName);
addToSearchIndex(memName);
return TRUE;
return TRUE;
}
}
...
@@ -934,6 +969,7 @@ static void generateMemberLink(BaseCodeDocInterface &ol,const QCString &varName,
...
@@ -934,6 +969,7 @@ static void generateMemberLink(BaseCodeDocInterface &ol,const QCString &varName,
}
}
}
}
codifyLines(memName);
codifyLines(memName);
addToSearchIndex(memName);
return;
return;
}
}
...
@@ -1499,12 +1535,14 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
...
@@ -1499,12 +1535,14 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),yytext))
if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),yytext))
{
{
g_code->codify(yytext);
g_code->codify(yytext);
addToSearchIndex(yytext);
}
}
g_name.resize(0);
g_name.resize(0);
}
}
else
else
{
{
g_code->codify(yytext);
g_code->codify(yytext);
addToSearchIndex(yytext);
g_name.resize(0);
g_name.resize(0);
}
}
g_type.resize(0);
g_type.resize(0);
...
@@ -1524,12 +1562,14 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
...
@@ -1524,12 +1562,14 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),yytext))
if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),yytext))
{
{
g_code->codify(yytext);
g_code->codify(yytext);
addToSearchIndex(yytext);
}
}
g_name.resize(0);
g_name.resize(0);
}
}
else
else
{
{
g_code->codify(yytext);
g_code->codify(yytext);
addToSearchIndex(yytext);
g_name.resize(0);
g_name.resize(0);
}
}
g_type.resize(0);
g_type.resize(0);
...
@@ -2104,6 +2144,10 @@ void parseCode(BaseCodeDocInterface &od,const char *className,const QCString &s,
...
@@ -2104,6 +2144,10 @@ void parseCode(BaseCodeDocInterface &od,const char *className,const QCString &s,
g_exampleBlock = exBlock;
g_exampleBlock = exBlock;
g_exampleName = exName;
g_exampleName = exName;
g_sourceFileDef = fd;
g_sourceFileDef = fd;
if (fd)
{
setCurrentDoc(fd->name(),fd->getSourceFileBase());
}
g_currentDefinition = 0;
g_currentDefinition = 0;
g_currentMemberDef = 0;
g_currentMemberDef = 0;
g_searchingForBody = FALSE;
g_searchingForBody = FALSE;
...
...
src/config.l
View file @
8a5c51f2
...
@@ -19,7 +19,6 @@
...
@@ -19,7 +19,6 @@
*/
*/
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
//#include <iostream.h>
#include <assert.h>
#include <assert.h>
#include <ctype.h>
#include <ctype.h>
#include <stdarg.h>
#include <stdarg.h>
...
@@ -1489,7 +1488,7 @@ void Config::create()
...
@@ -1489,7 +1488,7 @@ void Config::create()
"will interpret the first line (until the first dot) of a JavaDoc-style \n"
"will interpret the first line (until the first dot) of a JavaDoc-style \n"
"comment as the brief description. If set to NO, the JavaDoc \n"
"comment as the brief description. If set to NO, the JavaDoc \n"
"comments will behave just like the Qt-style comments (thus requiring an \n"
"comments will behave just like the Qt-style comments (thus requiring an \n"
"explict @brief command for a brief description. \n",
"explic
i
t @brief command for a brief description. \n",
FALSE
FALSE
);
);
cb = addBool(
cb = addBool(
...
@@ -1513,7 +1512,7 @@ void Config::create()
...
@@ -1513,7 +1512,7 @@ void Config::create()
"INHERIT_DOCS",
"INHERIT_DOCS",
"If the INHERIT_DOCS tag is set to YES (the default) then an undocumented \n"
"If the INHERIT_DOCS tag is set to YES (the default) then an undocumented \n"
"member inherits the documentation from any documented member that it \n"
"member inherits the documentation from any documented member that it \n"
"reimplements. \n",
"re
-
implements. \n",
TRUE
TRUE
);
);
cb = addBool(
cb = addBool(
...
@@ -2007,7 +2006,7 @@ void Config::create()
...
@@ -2007,7 +2006,7 @@ void Config::create()
"If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can \n"
"If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can \n"
"be used to specify the file name of the resulting .chm file. You \n"
"be used to specify the file name of the resulting .chm file. You \n"
"can add a path in front of the file if the result should not be \n"
"can add a path in front of the file if the result should not be \n"
"written to the html output dir. \n"
"written to the html output dir
ectory
. \n"
);
);
cs->addDependency("GENERATE_HTML");
cs->addDependency("GENERATE_HTML");
cs = addString(
cs = addString(
...
@@ -2187,7 +2186,7 @@ void Config::create()
...
@@ -2187,7 +2186,7 @@ void Config::create()
cb = addBool(
cb = addBool(
"GENERATE_RTF",
"GENERATE_RTF",
"If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output \n"
"If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output \n"
"The RTF output is optimi
s
ed for Word 97 and may not look very pretty with \n"
"The RTF output is optimi
z
ed for Word 97 and may not look very pretty with \n"
"other RTF readers or editors.\n",
"other RTF readers or editors.\n",
FALSE
FALSE
);
);
...
@@ -2222,7 +2221,7 @@ void Config::create()
...
@@ -2222,7 +2221,7 @@ void Config::create()
cs = addString(
cs = addString(
"RTF_STYLESHEET_FILE",
"RTF_STYLESHEET_FILE",
"Load stylesheet definitions from file. Syntax is similar to doxygen's \n"
"Load stylesheet definitions from file. Syntax is similar to doxygen's \n"
"config file, i.e. a series of assigments. You only have to provide \n"
"config file, i.e. a series of assig
n
ments. You only have to provide \n"
"replacements, missing definitions are set to their default value. \n"
"replacements, missing definitions are set to their default value. \n"
);
);
cs->setWidgetType(ConfigString::File);
cs->setWidgetType(ConfigString::File);
...
@@ -2277,9 +2276,7 @@ void Config::create()
...
@@ -2277,9 +2276,7 @@ void Config::create()
"GENERATE_XML",
"GENERATE_XML",
"If the GENERATE_XML tag is set to YES Doxygen will \n"
"If the GENERATE_XML tag is set to YES Doxygen will \n"
"generate an XML file that captures the structure of \n"
"generate an XML file that captures the structure of \n"
"the code including all documentation. Note that this \n"
"the code including all documentation. \n",
"feature is still experimental and incomplete at the \n"
"moment. \n",
FALSE
FALSE
);
);
cs = addString(
cs = addString(
...
@@ -2500,7 +2497,7 @@ void Config::create()
...
@@ -2500,7 +2497,7 @@ void Config::create()
"If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will \n"
"If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will \n"
"generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or \n"
"generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or \n"
"super classes. Setting the tag to NO turns the diagrams off. Note that this \n"
"super classes. Setting the tag to NO turns the diagrams off. Note that this \n"
"option is super
c
eded by the HAVE_DOT option below. This is only a fallback. It is \n"
"option is super
s
eded by the HAVE_DOT option below. This is only a fallback. It is \n"
"recommended to install and use dot, since it yields more powerful graphs. \n",
"recommended to install and use dot, since it yields more powerful graphs. \n",
TRUE
TRUE
);
);
...
@@ -2540,7 +2537,7 @@ void Config::create()
...
@@ -2540,7 +2537,7 @@ void Config::create()
cb = addBool(
cb = addBool(
"UML_LOOK",
"UML_LOOK",
"If the UML_LOOK tag is set to YES doxygen will generate inheritance and \n"
"If the UML_LOOK tag is set to YES doxygen will generate inheritance and \n"
"collaboration diagrams in a style simil
i
ar to the OMG's Unified Modeling \n"
"collaboration diagrams in a style similar to the OMG's Unified Modeling \n"
"Language. \n",
"Language. \n",
FALSE
FALSE
);
);
...
...
src/definition.cpp
View file @
8a5c51f2
...
@@ -207,6 +207,8 @@ void Definition::setDocumentation(const char *d,const char *docFile,int docLine,
...
@@ -207,6 +207,8 @@ void Definition::setDocumentation(const char *d,const char *docFile,int docLine,
m_docLine
=
docLine
;
m_docLine
=
docLine
;
}
}
#define uni_isupper(c) (QChar(c).category()==QChar::Letter_Uppercase)
void
Definition
::
setBriefDescription
(
const
char
*
b
,
const
char
*
briefFile
,
int
briefLine
)
void
Definition
::
setBriefDescription
(
const
char
*
b
,
const
char
*
briefFile
,
int
briefLine
)
{
{
if
(
b
==
0
)
return
;
if
(
b
==
0
)
return
;
...
@@ -219,7 +221,7 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
...
@@ -219,7 +221,7 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
{
{
case
'.'
:
case
'!'
:
case
'?'
:
break
;
case
'.'
:
case
'!'
:
case
'?'
:
break
;
default
:
default
:
if
(
isupper
(
m_brief
.
at
(
0
)))
m_brief
+=
'.'
;
if
(
uni_
isupper
(
m_brief
.
at
(
0
)))
m_brief
+=
'.'
;
break
;
break
;
}
}
}
}
...
...
src/docparser.cpp
View file @
8a5c51f2
...
@@ -4782,16 +4782,15 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
...
@@ -4782,16 +4782,15 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
if
(
indexWords
&&
md
&&
Config_getBool
(
"SEARCHENGINE"
))
if
(
indexWords
&&
md
&&
Config_getBool
(
"SEARCHENGINE"
))
{
{
g_searchUrl
=
md
->
getOutputFileBase
()
+
g_searchUrl
=
md
->
getOutputFileBase
();
Config_getString
(
"HTML_FILE_EXTENSION"
)
+
"#"
+
md
->
anchor
();
Doxygen
::
searchIndex
->
setCurrentDoc
(
Doxygen
::
searchIndex
->
setCurrentDoc
(
theTranslator
->
trMember
(
TRUE
,
TRUE
)
+
" "
+
md
->
qualifiedName
(),
theTranslator
->
trMember
(
TRUE
,
TRUE
)
+
" "
+
md
->
qualifiedName
(),
g_searchUrl
);
g_searchUrl
,
md
->
anchor
());
}
}
else
if
(
indexWords
&&
ctx
&&
Config_getBool
(
"SEARCHENGINE"
))
else
if
(
indexWords
&&
ctx
&&
Config_getBool
(
"SEARCHENGINE"
))
{
{
g_searchUrl
=
ctx
->
getOutputFileBase
()
+
g_searchUrl
=
ctx
->
getOutputFileBase
();
Config_getString
(
"HTML_FILE_EXTENSION"
);
QCString
name
=
ctx
->
qualifiedName
();
QCString
name
=
ctx
->
qualifiedName
();
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_JAVA"
))
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_JAVA"
))
{
{
...
...
src/dot.cpp
View file @
8a5c51f2
...
@@ -938,11 +938,12 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
...
@@ -938,11 +938,12 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
node
->
write
(
md5stream
,
DotNode
::
Hierarchy
,
BITMAP
,
FALSE
,
TRUE
,
1000
,
TRUE
);
node
->
write
(
md5stream
,
DotNode
::
Hierarchy
,
BITMAP
,
FALSE
,
TRUE
,
1000
,
TRUE
);
}
}
}
}
char
md5_sig
[
16
];
u
char
md5_sig
[
16
];
QCString
sigStr
(
33
);
QCString
sigStr
(
33
);
md5_buffer
(
buf
.
ascii
(),
buf
.
length
(),
md5_sig
);
MD5Buffer
(
buf
.
ascii
(),
buf
.
length
(),
md5_sig
);
md5_sig_to_string
(
md5_sig
,
sigStr
.
data
(),
33
);
MD5SigToString
(
md5_sig
,
sigStr
.
data
(),
33
);
if
(
checkAndUpdateMd5Signature
(
baseName
,
sigStr
))
if
(
checkAndUpdateMd5Signature
(
baseName
,
sigStr
)
||
!
QFileInfo
(
mapName
).
exists
())
{
{
// image was new or has changed
// image was new or has changed
QCString
dotName
=
baseName
+
".dot"
;
QCString
dotName
=
baseName
+
".dot"
;
...
@@ -1478,10 +1479,10 @@ QCString computeMd5Signature(DotNode *root,
...
@@ -1478,10 +1479,10 @@ QCString computeMd5Signature(DotNode *root,
pn
->
write
(
md5stream
,
gt
,
format
,
TRUE
,
FALSE
,
distance
,
backArrows
);
pn
->
write
(
md5stream
,
gt
,
format
,
TRUE
,
FALSE
,
distance
,
backArrows
);
}
}
}
}
char
md5_sig
[
16
];
u
char
md5_sig
[
16
];
QCString
sigStr
(
33
);
QCString
sigStr
(
33
);
md5_b
uffer
(
buf
.
ascii
(),
buf
.
length
(),
md5_sig
);
MD5B
uffer
(
buf
.
ascii
(),
buf
.
length
(),
md5_sig
);
md5_sig_to_s
tring
(
md5_sig
,
sigStr
.
data
(),
33
);
MD5SigToS
tring
(
md5_sig
,
sigStr
.
data
(),
33
);
//printf("md5: %s | file: %s\n",sigStr,baseName.data());
//printf("md5: %s | file: %s\n",sigStr,baseName.data());
return
sigStr
;
return
sigStr
;
}
}
...
@@ -1492,9 +1493,9 @@ static bool findMaximalDotGraph(DotNode *root,
...
@@ -1492,9 +1493,9 @@ static bool findMaximalDotGraph(DotNode *root,
QDir
&
thisDir
,
QDir
&
thisDir
,
DotNode
::
GraphType
gt
,
DotNode
::
GraphType
gt
,
GraphOutputFormat
format
,
GraphOutputFormat
format
,
bool
lrRank
=
FALSE
,
bool
lrRank
/*=FALSE*/
,
bool
renderParents
=
FALSE
,
bool
renderParents
/*=FALSE*/
,
bool
backArrows
=
TRUE
bool
backArrows
/*=TRUE*/
)
)
{
{
int
minDistance
=
1
;
// min distance that shows only direct children.
int
minDistance
=
1
;
// min distance that shows only direct children.
...
@@ -1506,10 +1507,6 @@ static bool findMaximalDotGraph(DotNode *root,
...
@@ -1506,10 +1507,6 @@ static bool findMaximalDotGraph(DotNode *root,
int
maxDotGraphHeight
=
Config_getInt
(
"MAX_DOT_GRAPH_HEIGHT"
);
int
maxDotGraphHeight
=
Config_getInt
(
"MAX_DOT_GRAPH_HEIGHT"
);
int
lastFit
=
minDistance
;
int
lastFit
=
minDistance
;
QCString
md5
=
computeMd5Signature
(
root
,
gt
,
format
,
lrRank
,
renderParents
,
maxDistance
,
backArrows
);
if
(
!
checkAndUpdateMd5Signature
(
baseName
,
md5
))
return
FALSE
;
// binary search for the maximal inheritance depth that fits in a reasonable
// binary search for the maximal inheritance depth that fits in a reasonable
// sized image (dimensions: Config_getInt("MAX_DOT_GRAPH_WIDTH"), Config_getInt("MAX_DOT_GRAPH_HEIGHT"))
// sized image (dimensions: Config_getInt("MAX_DOT_GRAPH_WIDTH"), Config_getInt("MAX_DOT_GRAPH_HEIGHT"))
while
(
minDistance
<=
maxDistance
)
while
(
minDistance
<=
maxDistance
)
...
@@ -1631,9 +1628,28 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
...
@@ -1631,9 +1628,28 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
if
(
findMaximalDotGraph
(
m_startNode
,
QMIN
(
m_recDepth
,
m_maxDistance
),
baseName
,
QCString
md5
=
computeMd5Signature
(
m_startNode
,
// root
thisDir
,
m_graphType
,
format
,
!
isTBRank
,
m_graphType
==
DotNode
::
Inheritance
))
m_graphType
,
// gt
format
,
// format
!
isTBRank
,
// lrRank
m_graphType
==
DotNode
::
Inheritance
,
// renderParent
QMIN
(
m_recDepth
,
m_maxDistance
),
// maxDist
TRUE
// backArrows
);
if
(
checkAndUpdateMd5Signature
(
baseName
,
md5
)
||
!
QFileInfo
(
baseName
+
".map"
).
exists
()
)
{
{
findMaximalDotGraph
(
m_startNode
,
// root
QMIN
(
m_recDepth
,
m_maxDistance
),
// maxDist
baseName
,
// baseName
thisDir
,
// thisDir
m_graphType
,
// gt
format
,
// format
!
isTBRank
,
// lrRank
m_graphType
==
DotNode
::
Inheritance
,
// renderParents
TRUE
// backArrows
);
if
(
format
==
BITMAP
)
// run dot to create a bitmap image
if
(
format
==
BITMAP
)
// run dot to create a bitmap image
{
{
QCString
dotArgs
(
maxCmdLine
);
QCString
dotArgs
(
maxCmdLine
);
...
@@ -1686,7 +1702,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
...
@@ -1686,7 +1702,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
}
}
if
(
format
==
BITMAP
)
// run dot to create a bitmap image
if
(
format
==
BITMAP
&&
generateImageMap
)
// run dot to create a image map
{
{
QCString
mapLabel
=
convertNameToFile
(
m_startNode
->
m_label
+
"_"
+
mapName
);
QCString
mapLabel
=
convertNameToFile
(
m_startNode
->
m_label
+
"_"
+
mapName
);
out
<<
"<p><center><img src=
\"
"
<<
baseName
<<
"."
out
<<
"<p><center><img src=
\"
"
<<
baseName
<<
"."
...
@@ -1879,11 +1895,28 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
...
@@ -1879,11 +1895,28 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
if
(
m_inverse
)
mapName
+=
"dep"
;
if
(
m_inverse
)
mapName
+=
"dep"
;
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
if
(
findMaximalDotGraph
(
m_startNode
,
QMIN
(
m_recDepth
,
m_maxDistance
),
QCString
md5
=
computeMd5Signature
(
m_startNode
,
// root
baseName
,
thisDir
,
DotNode
::
Dependency
,
format
,
DotNode
::
Dependency
,
// gt
FALSE
,
FALSE
,
!
m_inverse
)
format
,
// format
FALSE
,
// lrRank
FALSE
,
// renderParents
QMIN
(
m_recDepth
,
m_maxDistance
),
// maxDist
!
m_inverse
// backArrows
);
if
(
checkAndUpdateMd5Signature
(
baseName
,
md5
)
||
!
QFileInfo
(
baseName
+
".map"
).
exists
()
)
)
{
{
findMaximalDotGraph
(
m_startNode
,
// root
QMIN
(
m_recDepth
,
m_maxDistance
),
// maxDist
baseName
,
// baseName
thisDir
,
// thisDir
DotNode
::
Dependency
,
// gt
format
,
// format
FALSE
,
// lrRank
FALSE
,
// renderParents
!
m_inverse
// backArrows
);
if
(
format
==
BITMAP
)
if
(
format
==
BITMAP
)
{
{
// run dot to create a bitmap image
// run dot to create a bitmap image
...
@@ -1943,7 +1976,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
...
@@ -1943,7 +1976,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
}
}
if
(
format
==
BITMAP
)
if
(
format
==
BITMAP
&&
generateImageMap
)
{
{
out
<<
"<p><center><img src=
\"
"
<<
baseName
<<
"."
out
<<
"<p><center><img src=
\"
"
<<
baseName
<<
"."
<<
imgExt
<<
"
\"
border=
\"
0
\"
usemap=
\"
#"
<<
imgExt
<<
"
\"
border=
\"
0
\"
usemap=
\"
#"
...
@@ -2045,14 +2078,31 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
...
@@ -2045,14 +2078,31 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
QDir
thisDir
;
QDir
thisDir
;
QCString
baseName
=
m_diskName
+
"_cgraph"
;
QCString
baseName
=
m_diskName
+
"_cgraph"
;
//baseName=convertNameToFile(baseName);
QCString
mapName
=
baseName
;
QCString
mapName
=
baseName
;
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
if
(
findMaximalDotGraph
(
m_startNode
,
QMIN
(
m_recDepth
,
m_maxDistance
),
QCString
md5
=
computeMd5Signature
(
m_startNode
,
// root
baseName
,
thisDir
,
DotNode
::
CallGraph
,
format
,
DotNode
::
CallGraph
,
// gt
TRUE
,
FALSE
,
FALSE
))
format
,
// format
TRUE
,
// lrRank
FALSE
,
// renderParents
QMIN
(
m_recDepth
,
m_maxDistance
),
// maxDist
FALSE
// backArrows
);
if
(
checkAndUpdateMd5Signature
(
baseName
,
md5
)
||
!
QFileInfo
(
baseName
+
".map"
).
exists
()
)
{
{
findMaximalDotGraph
(
m_startNode
,
// root
QMIN
(
m_recDepth
,
m_maxDistance
),
// maxDist
baseName
,
// baseName
thisDir
,
// thisDir
DotNode
::
CallGraph
,
// gt
format
,
// format
TRUE
,
// lrRank
FALSE
,
// renderParents
FALSE
// backArrows
);
if
(
format
==
BITMAP
)
if
(
format
==
BITMAP
)
{
{
// run dot to create a bitmap image
// run dot to create a bitmap image
...
@@ -2108,7 +2158,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
...
@@ -2108,7 +2158,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
}
}
}
}
if
(
format
==
BITMAP
)
if
(
format
==
BITMAP
&&
generateImageMap
)
{
{
out
<<
"<p><center><img src=
\"
"
<<
baseName
<<
"."
out
<<
"<p><center><img src=
\"
"
<<
baseName
<<
"."
<<
imgExt
<<
"
\"
border=
\"
0
\"
usemap=
\"
#"
<<
imgExt
<<
"
\"
border=
\"
0
\"
usemap=
\"
#"
...
...
src/doxygen.cpp
View file @
8a5c51f2
...
@@ -8155,6 +8155,11 @@ void parseInput()
...
@@ -8155,6 +8155,11 @@ void parseInput()
inheritDocumentation
();
inheritDocumentation
();
}
}
// compute the shortest possible names of all files
// without loosing the uniqueness of the file names.
msg
(
"Generating disk names...
\n
"
);
Doxygen
::
inputNameList
.
generateDiskNames
();
msg
(
"Adding source references...
\n
"
);
msg
(
"Adding source references...
\n
"
);
addSourceReferences
();
addSourceReferences
();
...
@@ -8269,11 +8274,6 @@ void generateOutput()
...
@@ -8269,11 +8274,6 @@ void generateOutput()
msg
(
"Counting data structures...
\n
"
);
msg
(
"Counting data structures...
\n
"
);
countDataStructures
();
countDataStructures
();
// compute the shortest possible names of all files
// without loosing the uniqueness of the file names.
msg
(
"Generating disk names...
\n
"
);
Doxygen
::
inputNameList
.
generateDiskNames
();
msg
(
"Resolving user defined references...
\n
"
);
msg
(
"Resolving user defined references...
\n
"
);
resolveUserReferences
();
resolveUserReferences
();
...
...
src/filedef.cpp
View file @
8a5c51f2
...
@@ -223,7 +223,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -223,7 +223,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
}
...
...
src/groupdef.cpp
View file @
8a5c51f2
...
@@ -427,7 +427,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -427,7 +427,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
title
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
setCurrentDoc
(
title
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
}
...
...
src/memberdef.cpp
View file @
8a5c51f2
...
@@ -817,7 +817,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -817,7 +817,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
// write search index info
// write search index info
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
qualifiedName
(),
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
+
"#"
+
anchor
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
qualifiedName
(),
getOutputFileBase
()
,
anchor
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
qualifiedName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
qualifiedName
().
lower
());
}
}
...
...
src/namespacedef.cpp
View file @
8a5c51f2
...
@@ -263,7 +263,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -263,7 +263,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
}
...
...
src/search.php
View file @
8a5c51f2
...
@@ -276,7 +276,7 @@ function main()
...
@@ -276,7 +276,7 @@ function main()
$requiredWords
=
array
();
$requiredWords
=
array
();
$forbiddenWords
=
array
();
$forbiddenWords
=
array
();
$foundWords
=
array
();
$foundWords
=
array
();
$word
=
strto
lower
(
strtok
(
$query
,
" "
)
);
$word
=
strto
k
(
$query
,
" "
);
while
(
$word
)
// for each word in the search query
while
(
$word
)
// for each word in the search query
{
{
if
((
$word
{
0
}
==
'+'
))
{
$word
=
substr
(
$word
,
1
);
$requiredWords
[]
=
$word
;
}
if
((
$word
{
0
}
==
'+'
))
{
$word
=
substr
(
$word
,
1
);
$requiredWords
[]
=
$word
;
}
...
@@ -286,7 +286,7 @@ function main()
...
@@ -286,7 +286,7 @@ function main()
$foundWords
[]
=
$word
;
$foundWords
[]
=
$word
;
search
(
$file
,
$word
,
$results
);
search
(
$file
,
$word
,
$results
);
}
}
$word
=
strto
lower
(
strtok
(
" "
)
);
$word
=
strto
k
(
" "
);
}
}
$docs
=
array
();
$docs
=
array
();
combine_results
(
$results
,
$docs
);
combine_results
(
$results
,
$docs
);
...
...
src/search_php.h
View file @
8a5c51f2
...
@@ -276,7 +276,7 @@
...
@@ -276,7 +276,7 @@
" $requiredWords = array();
\n
"
" $requiredWords = array();
\n
"
" $forbiddenWords = array();
\n
"
" $forbiddenWords = array();
\n
"
" $foundWords = array();
\n
"
" $foundWords = array();
\n
"
" $word=strto
lower(strtok($query,
\"
\"
)
);
\n
"
" $word=strto
k($query,
\"
\"
);
\n
"
" while ($word) // for each word in the search query
\n
"
" while ($word) // for each word in the search query
\n
"
" {
\n
"
" {
\n
"
" if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; }
\n
"
" if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; }
\n
"
...
@@ -286,7 +286,7 @@
...
@@ -286,7 +286,7 @@
" $foundWords[]=$word;
\n
"
" $foundWords[]=$word;
\n
"
" search($file,$word,$results);
\n
"
" search($file,$word,$results);
\n
"
" }
\n
"
" }
\n
"
" $word=strto
lower(strtok(
\"
\"
)
);
\n
"
" $word=strto
k(
\"
\"
);
\n
"
" }
\n
"
" }
\n
"
" $docs = array();
\n
"
" $docs = array();
\n
"
" combine_results($results,$docs);
\n
"
" combine_results($results,$docs);
\n
"
...
...
src/searchindex.cpp
View file @
8a5c51f2
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#include "qtbc.h"
#include "qtbc.h"
#include "searchindex.h"
#include "searchindex.h"
#include "config.h"
#include <qfile.h>
#include <qfile.h>
...
@@ -59,8 +60,10 @@ SearchIndex::SearchIndex() : m_words(328829), m_index(numIndexEntries), m_urlInd
...
@@ -59,8 +60,10 @@ SearchIndex::SearchIndex() : m_words(328829), m_index(numIndexEntries), m_urlInd
for
(
i
=
0
;
i
<
numIndexEntries
;
i
++
)
m_index
.
insert
(
i
,
new
QList
<
IndexWord
>
);
for
(
i
=
0
;
i
<
numIndexEntries
;
i
++
)
m_index
.
insert
(
i
,
new
QList
<
IndexWord
>
);
}
}
void
SearchIndex
::
setCurrentDoc
(
const
char
*
name
,
const
char
*
url
)
void
SearchIndex
::
setCurrentDoc
(
const
char
*
name
,
const
char
*
baseName
,
const
char
*
anchor
)
{
{
QCString
url
=
baseName
+
Config_getString
(
"HTML_FILE_EXTENSION"
);
if
(
anchor
)
url
+=
(
QCString
)
"#"
+
anchor
;
m_urlIndex
++
;
m_urlIndex
++
;
m_urls
.
insert
(
m_urlIndex
,
new
URL
(
name
,
url
));
m_urls
.
insert
(
m_urlIndex
,
new
URL
(
name
,
url
));
}
}
...
@@ -84,7 +87,7 @@ void SearchIndex::addWord(const char *word)
...
@@ -84,7 +87,7 @@ void SearchIndex::addWord(const char *word)
int
idx
=
charsToIndex
(
word
);
int
idx
=
charsToIndex
(
word
);
if
(
idx
<
0
)
return
;
if
(
idx
<
0
)
return
;
w
=
new
IndexWord
(
word
);
w
=
new
IndexWord
(
word
);
//
printf(
"addWord(%s) at index %d\n",word,idx);
//
fprintf(stderr,
"addWord(%s) at index %d\n",word,idx);
m_index
[
idx
]
->
append
(
w
);
m_index
[
idx
]
->
append
(
w
);
m_words
.
insert
(
word
,
w
);
m_words
.
insert
(
word
,
w
);
}
}
...
...
src/searchindex.h
View file @
8a5c51f2
...
@@ -57,7 +57,7 @@ class SearchIndex
...
@@ -57,7 +57,7 @@ class SearchIndex
{
{
public
:
public
:
SearchIndex
();
SearchIndex
();
void
setCurrentDoc
(
const
char
*
name
,
const
char
*
url
);
void
setCurrentDoc
(
const
char
*
name
,
const
char
*
baseName
,
const
char
*
anchor
=
0
);
void
addWord
(
const
char
*
word
);
void
addWord
(
const
char
*
word
);
void
write
(
const
char
*
file
);
void
write
(
const
char
*
file
);
private
:
private
:
...
...
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