moved/updated doxymacs

This commit is contained in:
Kai Tetzlaff 2009-05-24 21:37:08 +02:00
parent 7fae4e12f1
commit dd522c52cf
49 changed files with 6796 additions and 0 deletions

6
doxymacs/AUTHORS Normal file
View File

@ -0,0 +1,6 @@
$Id: AUTHORS,v 1.8 2005/04/01 00:31:44 ryants Exp $
Ryan T. Sammartino <ryan.sammartino at gmail dot com>
Kris Verbeeck <kris.verbeeck at advalvas dot be>

342
doxymacs/COPYING Normal file
View File

@ -0,0 +1,342 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 of the License, 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
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
$Id: COPYING,v 1.1 2001/03/25 00:41:47 ryants Exp $

308
doxymacs/ChangeLog Normal file
View File

@ -0,0 +1,308 @@
2007-06-10 Ryan T. Sammartino <ryan.sammartino@gmail.com> (1.8.0)
* NEWS, configure.ac: prepare for new version release.
* lisp/doxymacs.el.in: documentation update.
2007-02-02 Ryan T. Sammartino <ryan.sammartino@gmail.com>
* lisp/doxymacs.el.in:
(doxymacs-mode, doxymacs-doxygan-keywords): Bug #1490021:
Allow spaces in @param [in] style documentation.
(doxymacs-user-mail-address): Bug #1496399:
New function.
(doxymacs-JavaDoc-file-comment-template,
doxymacs-Qt-file-comment-template,
doxymacs-C++-file-comment-template): Use new function to
get user's e-mail address.
2006-04-22 Ryan T. Sammartino <ryan.sammartino@gmail.com> (1.7.0)
* doxymacs_parser.c:
Bug #1459026: Fix compile warning with gcc 4.0.
* lisp/doxymacs.el.in: minor documentation updates.
(doxymacs-mode): Feature #1338245: Add tokens to filladapt
to match doxygen markup.
* example/doc/*: Update to use doxygen 1.4.4 output.
* NEWS, README, configure.ac: prepare for new version release.
2005-06-04 Ryan T. Sammartino <ryan.sammartino@gmail.com> (1.6.0)
* NEWS, README: prepare for new version release.
* lisp/doxymacs.el.in: minor documentation updates.
* c/doxymacs_parser.c: minor documentation updates.
2005-04-14 Ryan T. Sammartino <ryan.sammartino@gmail.com>
* lisp/doxymacs.el.in:
(doxymacs-url-exists-p): New function.
(doxymacs-load-tags): Use new function.
(doxymacs-symbol-near-point): New function (to clean up
symbol-near-point hack).
(doxymacs-lookup): Use new function.
2005-04-13 Ryan T. Sammartino <ryan.sammartino@gmail.com>
* lisp/doxymacs.el.in: feature request #868413
(doxymacs-browse-url-function): New customizable variable.
(doxymacs-display-url): Use new variable.
2005-04-12 Ryan T. Sammartino <ryan.sammartino@gmail.com>
* lisp/doxymacs.el.in: bug #990123
(doxymacs-group-comment-start),
(doxymacs-group-comment-end): New strings for grouping comments.
(doxymacs-insert-grouping-comments): Use new strings instead of
old templates.
(doxymacs-group-begin-comment-template),
(doxymacs-group-end-comment-template),
(doxymacs-JavaDoc-group-begin-comment-template),
(doxymacs-JavaDoc-group-end-comment-template),
(doxymacs-Qt-group-begin-comment-template),
(doxymacs-Qt-group-end-comment-template),
(doxymacs-C++-group-begin-comment-template),
(doxymacs-C++-group-end-comment-template): Remove old templates
for grouping comments.
(doxymacs-doxygen-keywords): New doxygen keywords.
2005-04-01 Ryan T. Sammartino <ryan.sammartino@gmail.com>
* AUTHORS, README: update contact info.
* example/src/doxy.conf: update for new doxygen.
* example/src/aclass.h: try new @param[in] etc.
* example/doc/html/*: regenerate.
* lisp/doxymacs.el.in (doxymacs-doxygen-keywords): patch #1102042:
handle @param[in], etc.
(doxymacs-font-lock): patch #1024026: use font-lock-add-keywords,
if available.
* aclocal/libxml.m4: update from libxml source.
* c/Makefile.am: fix link issues with newer libxml.
* configure.ac: update libxml2 version requirements to match what
was used for libxml.m4.
2003-01-25 Ryan T. Sammartino <ryants@shaw.ca> (1.5.0)
* NEWS: version 1.5.0 news.
* INSTALL: add instructions on avoiding byte compiling and
configuring.
* configure.ac: set version to 1.5.0.
* no-autoconf/Makefile.am: new file.
2003-01-20 Georg Drenkhahn <georg-d at users dot sourceforge dot net>
* lisp/doxymacs.el.in (doxymacs-doxygen-keywords): patch 667164:
fix retval fontification
2003-01-12 Ryan T. Sammartino <ryants@shaw.ca>
* configure.ac: add "C++" to help string for --with-default-style.
2003-01-11 Ryan T. Sammartino <ryants@shaw.ca>
Feature #665470: C++ style.
Bug #665099: @var missing.
Bug #665372: @example not fontified properly.
* lisp/doxymacs.el.in (doxymacs-doxygen-keywords): fix var,
example, image, dotfile, other commands.
(doxymacs-doxygen-style): new C++ style.
(doxymacs-command-character): new variable.
(doxymacs-C++-blank-multiline-comment-template): new template.
(doxymacs-C++-blank-singleline-comment-template): new template.
(doxymacs-doxygen-command-char): new function.
(doxymacs-JavaDoc-file-comment-template): use
doxymacs-doxygen-command-char
(doxymacs-Qt-file-comment-template): ditto.
(doxymacs-JavaDoc-function-comment-template): ditto.
(doxymacs-Qt-function-comment-template): ditto.
(doxymacs-parm-tempo-element): ditto and add C++ style.
(doxymacs-C++-file-comment-template): new template.
(doxymacs-C++-function-comment-template): new template.
(doxymacs-C++-group-begin-comment-template): new template.
(doxymacs-C++-group-end-comment-template): new template.
(doxymacs-invalid-style): add C++ style.
(doxymacs-insert-member-comment): add C++ style.
2003-01-06 Ryan T. Sammartino <ryants at shaw dot ca>
* configure.ac: mention EMACSLOADPATH in the help.
* INSTALL, lisp/doxymacs.el.in: mention EMACS, EMACSLOADPATH;
other documentation fixups.
2003-01-05 Ryan T. Sammartino <ryants at shaw dot ca> (1.4.0)
* Autoconf-ise the project.
2002-12-09 Ryan T. Sammartino <ryants at shaw dot ca>
* c/doxymacs_parser.c: terminate Encoded string with \0.
* lisp/doxymacs.el: set the doxytags buffer modified flag to false
to avoid asking user if OK to kill modified buffer.
2002-12-08 Ryan T. Sammartino <ryants at shaw dot ca>
* lisp/doxymacs.el, c/doxymacs_parser.c: work around apparent bug in
Doxygen 1.2.18.
* c/doxymacs_parser.c: fix memory leak.
2002-12-08 Ryan T. Sammartino <ryants at shaw dot ca>
* lisp/doxymacs.el: move to association lists to support multiple
Doxygen generates.
* INSTALL: update instructions.
* TODO: update.
2002-11-30 Georg Drenkhahn <georg-d at users dot sourceforge dot net>
* lisp/doxymacs.el: several FIXMEs fixed, user-defined "void" types
(doxymacs-void-types).
2002-08-31 Ryan T. Sammartino <ryants at shaw dot ca> (1.3.2)
* lisp/doxymacs.el: functions with blank lines in their argument
list confused doxymacs-extract-args-list fixed.
2002-09-05 Ryan T. Sammartino <ryants at shaw dot ca> (1.3.1)
* c/doxymacs_parser.c: fix compilation issues on Mac OS X.
2002-04-01 Ryan T. Sammartino <ryants at shaw dot ca>
* lisp/doxymacs.el, README: make note of the fact that doxymacs
seems to work with GNU Emacs 21.2.1 and XEmacs 21.4 (patch 6)
2001-11-19 Ryan T. Sammartino <ryants at shaw dot ca>
* lisp/doxymacs.el, README: make note of the fact that doxymacs
seems to work with XEmacs 21.4 (patch 5) and GNU Emacs 21.1.1
2001-11-04 Ryan T. Sammartino <ryants at shaw dot ca> (1.3.0)
* lisp/doxymacs.el: add documentation for default templates.
Implement grouping comments (C-c d @).
2001-11-01 Ryan T. Sammartino <ryants at shaw dot ca>
* README, AUTHORS, ...: make note that Ryan's homepage and e-mail
address have changed.
2001-09-30 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el, README: make note of the fact that doxymacs
seems to work with XEmacs 21.4 (patch 4)
2001-09-15 Ryan T. Sammartino <ryants at home dot com> (1.2.1)
* lisp/doxymacs.el: fix bug #460396: invalid number of arguments
to doxymacs-parm-tempo-element in
doxymacs-Qt-function-comment-template
2001-08-26 Ryan T. Sammartino <ryants at home dot com> (1.2.0)
* lisp/doxymacs.el: implement feature request #454122 (single line
member comments) and feature request #454123 (key bindings
description in mode help). Clean up template code to make it
easier to add new templates and catch bad settings. Clean up
documentation to be more standards conforming.
* INSTALL: documentation update.
* README: if people have success/failure with untested {X}Emacs
versions, let the authors know.
2001-08-23 Ryan T. Sammartino <ryants at home dot com> (1.1.4)
* lisp/doxymacs.el: fix bug #454563... missing @endlink in
fontification; fix @b, @em, @c, @p, and @link fontification. Also
clean up the fontification code a bit.
2001-07-08 Ryan T. Sammartino <ryants at home dot com> (1.1.3)
* c/doxymacs_parser.c, c/Makefile: Make the external XML parser
work with the latest libxml2. Now we require libxml2 version
2.3.4 or greater.
2001-07-04 Ryan T. Sammartino <ryants at home dot com> (1.1.2)
* lisp/doxymacs.el: GNU Emacs doesn't support ?: in regexps, so
take them out.
2001-06-20 Ryan T. Sammartino <ryants at home dot com> (1.1.1)
* lisp/doxymacs.el: fix bug #432837 missing @see keyword and fix
bug #432836 Font lock for @ingroup not correct
2001-06-12 Ryan T. Sammartino <ryants at home dot com> (1.1.0)
* lisp/doxymacs.el: add font lock keywords for Doxygen keywords
2001-06-06 Ryan T. Sammartino <ryants at home dot com> (1.0.0)
* lisp/doxymacs.el: fix bug #427660 "mouse selection problems".
2001-05-26 Ryan T. Sammartino <ryants at home dot com> (0.2.1)
* lisp/doxymacs.el: fix bug #427351 "thinks "void" is a parameter"
and bug #427350 "can't document constructors/destructors", and
generally made the whole doxymacs-find-next-func function much
more robust. Small update to default styles when inserting
functions that return "void"
* INSTALL: a tip on automatically going into doxymacs-mode
whenever in C/C++ mode
2001-05-21 Ryan T. Sammartino <ryants at home dot com> (0.2.0)
* lisp/doxymacs.el: now can optionally use the external XML parser
to speed things up. Some documentation updates.
* c/doxymacs_parser.c, c/Makefile: new files. doxymacs_parser.c is
the external XML parser.
* INSTALL: documentation updates.
2001-05-12 Ryan T. Sammartino <ryants at home dot com> (0.1.2)
* lisp/doxymacs.el: bug fixes for GNU Emacs: symbol-near-point and
user-mail-address
* lisp/xml-parse.el: make sure progress-function is bound before
calling.
* TODO: removed "test on other version of {X}Emacs" item.
* README: let people know on which versions of {X}Emacs this has been
tested on.
2001-05-09 Ryan T. Sammartino <ryants at home dot com> (0.1.1)
* lisp/doxymacs.el: change C-? to C-c d ?, add progress info while
parsing XML file, and some small optimisations.
2001-05-07 Ryan T. Sammartino <ryants at home dot com> (0.1.0)
* lisp/doxymacs.el: Minor mode (thanks to Kris) and default key
bindings.
* INSTALL: some better instructions (I hope)
2001-05-06 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: Now using tempo templates for inserting comments.
Also allows for user-defined styles.
* TODO: we need some good end-user documentation.
* AUTHORS: acknowledge patch from Andreas Fuchs.
2001-04-29 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: Now parse XML tags file generated by doxygen
directly.
* lisp/xml-parse.el: Add this file so that people don't need to go
download things from all over the place just to get doxymacs working.
* perl/doxytags.pl: No longer necessary, now that we can parse the
XML tags file generated by doxygen.
2001-04-22 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: Function documentation
2001-04-18 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: Going with Kris' "new style" look up
code. It's excellent, and exactly what I wanted. Thanks Kris. Also
incorprated Andreas Fuchs' patch for loading tags from a URL.
2001-04-11 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: insert blank or "file" doxygen comments with style
specified by the user.
2001-03-31 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: if symbol matches more than one entry in the tags,
you can now select which one you really mean (but please take a look
at the FIXME comment before doxymacs-choose-match) and slightly
changed the format of the list that doxymacs-get-matches returns.
* perl/doxytag.pl, example/doc/doxy.tag: added some more info to the
third column of doxytag.pl's output.
* TODO: removed the "choose which symbol you really mean" item (yay!).
2001-03-28 Ryan T. Sammartino <ryants at home dot com>
* lisp/doxymacs.el: applied patch from Kris Verbeeck so that
doxymacs customisation stuff is under the "Tools" group. Also
removed doxymacs-browser, since we'll just use the user's default
browser anyways. Minor formatting changes as well.
* README: added doxymacs' URL
2001-03-24 Ryan T. Sammartino <ryants at home dot com>
* doxymacs: Initial CVS check in.

82
doxymacs/INSTALL Normal file
View File

@ -0,0 +1,82 @@
$Id: INSTALL,v 1.15 2003/01/26 01:49:55 ryants Exp $
Doxymacs depends on the following packages:
- W3 http://www.cs.indiana.edu/usr/local/www/elisp/w3/docs.html
- tempo http://www.lysator.liu.se/~davidk/elisp/
- libxml2 http://www.libxml.org/
Be sure these are properly configured and installed before proceeding.
- Use the configure script to configure doxymacs:
$ ./configure
$ make
$ make install
Use ./configure --help for help on customising your configuration.
If you get
!! File error (("Cannot open load file" "url"))
(or something similar) then set the variable EMACSLOADPATH before
doing make:
$ EMACSLOADPATH=... make
where ... is a colon separated list of directories to search for
packages. To byte compile with XEmacs, set the variable EMACS:
$ EMACS=xemacs make
If you would rather not byte compile the .el files at all, then do:
$ make ELCFILES=
$ make install ELCFILES=
If you do not want to run or cannot run configure then some pre-baked
.el files are available in the no-autoconf/ directory; simply copy
these to somewhere in your load-path.
- Customise the variable doxymacs-doxygen-dirs.
Doxymacs customisation can be done from the Options | Customize menu,
under Emacs | Programming | Tools | Doxymacs.
- If your tags file is quite large (say, > 1 MB), consider setting
doxymacs-use-external-xml-parser to t and be sure to set
doxymacs-external-xml-parser-executable to the right value (the
default should usually be fine). A suitable program is distributed
in the directory doxymacs/c/. With an 11 MB XML tag file, the
internal process takes 20 minutes on a PIII 800 with 1 GB of RAM,
whereas the external process takes 12 seconds.
- Put (require 'doxymacs) in your .emacs
- Invoke doxymacs-mode with M-x doxymacs-mode. To have doxymacs-mode invoked
automatically when in C/C++ mode, put
(add-hook 'c-mode-common-hook 'doxymacs-mode)
in your .emacs.
- If you want Doxygen keywords fontified use M-x doxymacs-font-lock.
To do it automatically, add the following to your .emacs:
(defun my-doxymacs-font-lock-hook ()
(if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
(doxymacs-font-lock)))
(add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
This will add the Doxygen keywords to c-mode and c++-mode only.
- Default key bindings are:
- C-c d ? will look up documentation for the symbol under the point.
- C-c d r will rescan your Doxygen tags file.
- C-c d f will insert a Doxygen comment for the next function.
- C-c d i will insert a Doxygen comment for the current file.
- C-c d ; will insert a Doxygen comment for the current member.
- C-c d m will insert a blank multi-line Doxygen comment.
- C-c d s will insert a blank single-line Doxygen comment.
- C-c d @ will insert grouping comments around the current region.

4
doxymacs/Makefile.am Normal file
View File

@ -0,0 +1,4 @@
## Process this file with automake to produce Makefile.in
# $Id: Makefile.am,v 1.2 2003/01/26 01:49:55 ryants Exp $
SUBDIRS = c lisp no-autoconf

82
doxymacs/NEWS Normal file
View File

@ -0,0 +1,82 @@
$Id: NEWS,v 1.20 2007/06/10 13:17:24 ryants Exp $
10/06/2007 Version 1.8.0 released.
Fix bug #1490021: Allow spaces in @param [in] style documentation.
Fix bug #1496399: Use better way to get user's e-mail address.
22/04/2006 Version 1.7.0 released.
Fix bug #1459026: compile warning with gcc 4.0.
Feature request #1338245: make filladapt mode doxygen aware
of @param to nicely indent parameter lists.
Update the example HTML files with doxygen 1.4.4.
04/06/2005 Version 1.6.0 released.
Many bug fixes for newer versions of {X}emacs. Some additions to
fontification to handle new Doxygen constructs. Can now customise
the browser that doxymacs uses to display documentation.
NOTE: doxymacs-group-comment-start and doxymacs-group-comment-end
are no longer tempo templates but are now just plain strings.
25/01/2003 Version 1.5.0 released.
New C++ style. Pre-baked .el files for people who do not have
autoconf. Several small fontification bug fixes.
05/01/2003 Version 1.4.0 released.
doxymacs now uses autoconf to configure, build and install itself.
31/08/2002 Version 1.3.2 released.
Fix bug #601028: functions with blank lines in their argument lists
confused doxymacs-extract-args-list.
09/05/2002 Version 1.3.1 released.
Fix issues compiling doxymacs_parser.c on Mac OS X.
04/11/2001 Version 1.3.0 released.
Implement new grouping command (C-c d @) which inserts Doxygen
grouping comments around the current region.
15/09/2001 Version 1.2.1 released.
Fix a bug in Qt style comments.
26/08/2001 Version 1.2.0 released.
Better on-line documentation. New "member comment" command which
works much like M-; (indent-for-comment).
23/08/2001 Version 1.1.4 released.
minor bugfixes.
08/07/2001 Version 1.1.3 released.
The external XML parser now requires libxml2 version 2.3.4 or
greater.
04/07/2001 Version 1.1.2 released.
GNU Emacs doesn't understand ?: in regexps, so take them out.
20/06/2001 Version 1.1.1 released.
Fix bug #432837 missing @see keyword and fix bug #432836 Font
lock for @ingroup not correct.
12/06/2001 Version 1.1.0 released.
New feature: font lock for Doxygen keywords.
06/06/2001 Version 1.0.0 released.
The first stable release. There are still some bugs left (see
the FIXMEs in lisp/doxymacs.el), but they are both sufficiently
rare and hard to fix that they don't warrant holding up a stable
release.
26/05/2001 Version 0.2.1 released.
Er... forgot to update this file the past few releases.
Oh well. Look at the ChangeLog if you really care.
09/05/2001 Version 0.1.1 released.
Bug fix: C-? is a bad choice for "look up", since it causes the
DEL key to be mapped to "look up"... changed it to C-c d ?.
Feature add: Progress info as it parses XML tag file.
07/05/2001 Version 0.1.0 (Alpha) released.
This represents the first public release of doxymacs. It works for us,
now let's see if it works for other people too.

45
doxymacs/README Normal file
View File

@ -0,0 +1,45 @@
doxymacs
Copyright (C) 2001-2005 Ryan T. Sammartino
ryan.sammartino at gmail dot com
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.
-------------------------------------------------------------------------------
doxymacs is an e-lisp package for making doxygen usage easier under XEmacs.
doxymacs homepage: http://doxymacs.sourceforge.net/
Doxymacs has been tested on and works with:
- GNU Emacs 20.7.1, 21.1.1, 21.2.1, 21.3, 21.4.1
- XEmacs 21.1 (patch 14), 21.4 (patch 4, 5, 6, 17)
If you have success or failure with other versions of {X}Emacs, please
let the authors know.
See COPYING for the full text of the license under which is this work
is being made available.
See ChangeLog for recent changes.
See AUTHORS for a list of people to blame for this mess.
See TODO for a list of things that you can help out with.
See INSTALL for instructions on how to install and use this.
Feel free to contact me about any issues you may have, or to volunteer
to help out.
Ryan T. Sammartino
ryan.sammartino at gmail dot com
$Id: README,v 1.13 2006/04/23 01:20:15 ryants Exp $

11
doxymacs/TODO Normal file
View File

@ -0,0 +1,11 @@
$Id: TODO,v 1.15 2003/01/06 00:45:30 ryants Exp $
lisp/doxymacs.el.in:
- fix all FIXMEs (of course)
- automatic testing (DejaGnu).
- other stuff?
README:
INSTALL:
- better end-user documentation

188
doxymacs/aclocal/libxml.m4 Normal file
View File

@ -0,0 +1,188 @@
# Configure paths for LIBXML2
# Mike Hommey 2004-06-19
# use CPPFLAGS instead of CFLAGS
# Toshio Kuratomi 2001-04-21
# Adapted from:
# Configure paths for GLIB
# Owen Taylor 97-11-3
dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for XML, and define XML_CPPFLAGS and XML_LIBS
dnl
AC_DEFUN([AM_PATH_XML2],[
AC_ARG_WITH(xml-prefix,
[ --with-xml-prefix=PFX Prefix where libxml is installed (optional)],
xml_config_prefix="$withval", xml_config_prefix="")
AC_ARG_WITH(xml-exec-prefix,
[ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)],
xml_config_exec_prefix="$withval", xml_config_exec_prefix="")
AC_ARG_ENABLE(xmltest,
[ --disable-xmltest Do not try to compile and run a test LIBXML program],,
enable_xmltest=yes)
if test x$xml_config_exec_prefix != x ; then
xml_config_args="$xml_config_args"
if test x${XML2_CONFIG+set} != xset ; then
XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config
fi
fi
if test x$xml_config_prefix != x ; then
xml_config_args="$xml_config_args --prefix=$xml_config_prefix"
if test x${XML2_CONFIG+set} != xset ; then
XML2_CONFIG=$xml_config_prefix/bin/xml2-config
fi
fi
AC_PATH_PROG(XML2_CONFIG, xml2-config, no)
min_xml_version=ifelse([$1], ,2.0.0,[$1])
AC_MSG_CHECKING(for libxml - version >= $min_xml_version)
no_xml=""
if test "$XML2_CONFIG" = "no" ; then
no_xml=yes
else
XML_CPPFLAGS=`$XML2_CONFIG $xml_config_args --cflags`
XML_LIBS=`$XML2_CONFIG $xml_config_args --libs`
xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_xmltest" = "xyes" ; then
ac_save_CPPFLAGS="$CPPFLAGS"
ac_save_LIBS="$LIBS"
CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
LIBS="$XML_LIBS $LIBS"
dnl
dnl Now check if the installed libxml is sufficiently new.
dnl (Also sanity checks the results of xml2-config to some extent)
dnl
rm -f conf.xmltest
AC_TRY_RUN([
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <libxml/xmlversion.h>
int
main()
{
int xml_major_version, xml_minor_version, xml_micro_version;
int major, minor, micro;
char *tmp_version;
system("touch conf.xmltest");
/* Capture xml2-config output via autoconf/configure variables */
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = (char *)strdup("$min_xml_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string from xml2-config\n", "$min_xml_version");
exit(1);
}
free(tmp_version);
/* Capture the version information from the header files */
tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION);
if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) {
printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION");
exit(1);
}
free(tmp_version);
/* Compare xml2-config output to the libxml headers */
if ((xml_major_version != $xml_config_major_version) ||
(xml_minor_version != $xml_config_minor_version) ||
(xml_micro_version != $xml_config_micro_version))
{
printf("*** libxml header files (version %d.%d.%d) do not match\n",
xml_major_version, xml_minor_version, xml_micro_version);
printf("*** xml2-config (version %d.%d.%d)\n",
$xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version);
return 1;
}
/* Compare the headers to the library to make sure we match */
/* Less than ideal -- doesn't provide us with return value feedback,
* only exits if there's a serious mismatch between header and library.
*/
LIBXML_TEST_VERSION;
/* Test that the library is greater than our minimum version */
if ((xml_major_version > major) ||
((xml_major_version == major) && (xml_minor_version > minor)) ||
((xml_major_version == major) && (xml_minor_version == minor) &&
(xml_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
xml_major_version, xml_minor_version, xml_micro_version);
printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the xml2-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n");
printf("*** correct copy of xml2-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
return 1;
}
],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_xml" = x ; then
AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version))
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$XML2_CONFIG" = "no" ; then
echo "*** The xml2-config script installed by LIBXML could not be found"
echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the XML2_CONFIG environment variable to the"
echo "*** full path to xml2-config."
else
if test -f conf.xmltest ; then
:
else
echo "*** Could not run libxml test program, checking why..."
CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
LIBS="$LIBS $XML_LIBS"
AC_TRY_LINK([
#include <libxml/xmlversion.h>
#include <stdio.h>
], [ LIBXML_TEST_VERSION; return 0;],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
XML_CPPFLAGS=""
XML_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(XML_CPPFLAGS)
AC_SUBST(XML_LIBS)
rm -f conf.xmltest
])

5
doxymacs/bootstrap Executable file
View File

@ -0,0 +1,5 @@
#! /bin/sh
aclocal
automake --gnu --add-missing
autoconf

12
doxymacs/c/Makefile.am Normal file
View File

@ -0,0 +1,12 @@
## Process this file with automake to produce Makefile.in
# $Id: Makefile.am,v 1.2 2005/04/01 06:20:06 ryants Exp $
bin_PROGRAMS = doxymacs_parser
doxymacs_parser_SOURCES = doxymacs_parser.c
INCLUDES = $(XML_CPPFLAGS)
AM_CFLAGS = -Wall -Werror -fexpensive-optimizations -fomit-frame-pointer
doxymacs_parser_LDADD = $(XML_LIBS)

View File

@ -0,0 +1,682 @@
/*
* doxymacs_parser.c
* Copyright (C) 2001 Ryan T. Sammartino
* <ryan.sammartino at gmail dot com>
*
* A utility program used by doxymacs to speed up building the look up
* completion list from a Doxygen XML file.
*
* This file requires libxml version 2.6.13 or greater, which you can
* get from http://www.libxml.org/
*
* 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
* of the License, 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.
*
* Doxymacs homepage: http://doxymacs.sourceforge.net/
*
* $Id: doxymacs_parser.c,v 1.12 2006/04/23 00:05:33 ryants Exp $
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
/* Our completion list */
typedef struct _desc_url_list
{
char *desc;
char *url;
struct _desc_url_list *next;
} desc_url_list;
typedef struct _completion_list
{
char *symbol;
desc_url_list *descs;
struct _completion_list *next;
} completion_list;
completion_list *comp_list = NULL;
/* A hash for quick look up of a symbol's entry in the completion list */
#define HASH_SIZE 11213
typedef struct _hash_entry
{
completion_list *cl;
struct _hash_entry *next;
} hash_entry;
hash_entry *symbol_hash[HASH_SIZE];
inline unsigned int hash(const char *s)
{
unsigned int h = 0;
while (*s)
{
h += *s++;
}
return abs(h % HASH_SIZE);
}
inline void AddToHash(completion_list *cl)
{
unsigned int h = hash(cl->symbol);
hash_entry **cur = &symbol_hash[h];
hash_entry *new = (hash_entry *)malloc(sizeof(hash_entry));
new->cl = cl;
new->next = *cur;
*cur = new;
}
/* mmmmm... free hash */
inline void FreeHash(void)
{
unsigned int i;
for (i = 0; i < HASH_SIZE; i++)
{
hash_entry *cur = symbol_hash[i];
while (cur)
{
hash_entry *tmp = cur;
cur = cur->next;
free(tmp);
}
}
}
/* XML Helper Functions */
inline char *XMLTagChild(xmlNodePtr node, const char *name)
{
xmlNodePtr cur = node->xmlChildrenNode;
while (cur)
{
if (!xmlStrcmp(cur->name, (const xmlChar *) name))
{
xmlNodePtr cur_child = cur->xmlChildrenNode;
if (cur_child)
{
return (char *)cur_child->content;
}
else
{
return NULL;
}
}
cur = cur->next;
}
return NULL;
}
inline char *XMLTagAttr(xmlNodePtr node, const char *attr)
{
xmlAttrPtr props = node->properties;
while (props)
{
if (!xmlStrcmp(props->name, (const xmlChar *) attr))
{
xmlNodePtr props_child = props->xmlChildrenNode;
if (props_child)
{
return (char *)props_child->content;
}
else
{
return NULL;
}
}
}
return NULL;
}
/* Look up functions for symbols and descriptions */
inline completion_list *LookUpSymbol(const char *symbol)
{
unsigned int h = hash(symbol);
hash_entry *cur = symbol_hash[h];
while (cur)
{
completion_list *cl = cur->cl;
if (!strcmp(cl->symbol, symbol))
{
return cl;
}
cur = cur->next;
}
return NULL;
}
inline desc_url_list *LookUpDesc(completion_list *entry, const char *desc)
{
desc_url_list *cur = entry->descs;
while (cur)
{
if (!strcmp(cur->desc, desc))
{
break;
}
cur = cur->next;
}
return cur;
}
/* Add the given name, description and url to our completion list */
inline int AddToCompletionList(const char *name,
const char *desc, const char *url)
{
completion_list *check;
check = LookUpSymbol(name);
if (check)
{
/* There is already a symbol with the same name in the list */
if (!LookUpDesc(check, desc))
{
/* If there is not yet a symbol with this desc, add it. */
/* FIXME: what to do if there is already a symbol?? */
desc_url_list *new_desc =
(desc_url_list *)malloc(sizeof(desc_url_list));
if (!new_desc)
{
fprintf(stderr, "malloc failed\n");
return -1;
}
new_desc->desc = (char *)desc;
new_desc->url = (char *)url;
new_desc->next = check->descs;
check->descs = new_desc;
}
/* Free the name, which was strdup'ed */
free((char*)name);
}
else
{
completion_list *new_entry =
(completion_list *)malloc(sizeof(completion_list));
if (!new_entry)
{
fprintf(stderr, "malloc failed\n");
return -1;
}
new_entry->symbol = (char *)name;
new_entry->descs = (desc_url_list *)malloc(sizeof(desc_url_list));
if (!new_entry->descs)
{
fprintf(stderr, "malloc failed\n");
return -1;
}
new_entry->descs->desc = (char *)desc;
new_entry->descs->url = (char *)url;
new_entry->descs->next = NULL;
new_entry->next = comp_list;
comp_list = new_entry;
AddToHash(new_entry);
}
return 0;
}
/* Encode the given string so that {X}Emacs will understand it */
inline char *Encode(const char *s)
{
unsigned int extra_len = 0;
char *c = (char *)s;
if (!s)
{
return NULL;
}
while (*c)
{
/* Is this all that needs to be escaped? */
if (*c == '\\' || *c == '"')
{
extra_len++;
}
c++;
}
if (!extra_len)
{
char *ret = strdup(s);
if (!ret)
{
fprintf(stderr, "malloc failed\n");
}
return ret;
}
else
{
char *ret = (char *)malloc(strlen(s) + extra_len + 1);
char *r = ret;
if (!ret)
{
fprintf(stderr, "malloc failed\n");
}
else
{
while (*s)
{
if (*s == '\\')
{
*r++ = '\\';
*r++ = '\\';
}
else if (*s == '"')
{
*r++ = '\\';
*r++ = '"';
}
else
{
*r++ = *s;
}
s++;
}
*r = '\0';
}
return ret;
}
}
/* Output the completion list in a way {X}Emacs can easily read in */
inline int OutputCompletionList(void)
{
completion_list *cur = comp_list;
printf("(");
while (cur)
{
desc_url_list *desc = cur->descs;
char *encoded_symbol = Encode(cur->symbol);
if (!encoded_symbol)
{
return -1;
}
printf("(\"%s\" ", encoded_symbol);
free(encoded_symbol);
while (desc)
{
char *encoded_desc = Encode(desc->desc);
char *encoded_url = Encode(desc->url);
if (!encoded_desc || !encoded_url)
{
return -1;
}
printf("(\"%s\" . \"%s\")", encoded_desc, encoded_url);
free(encoded_desc);
free(encoded_url);
if (desc->next)
{
printf(" ");
}
desc = desc->next;
}
printf(")");
if (cur->next)
{
printf(" ");
}
cur = cur->next;
}
printf(")\n");
return 0;
}
/* Clean up */
inline void FreeCompletionList(void)
{
completion_list *cur = comp_list;
while (cur)
{
desc_url_list *desc = cur->descs;
completion_list *tmp_cl = cur;
while (desc)
{
desc_url_list *tmp_desc = desc;
desc = desc->next;
free(tmp_desc->desc);
free(tmp_desc->url);
free(tmp_desc);
}
cur = cur->next;
free(tmp_cl->symbol);
free(tmp_cl);
}
}
/* Add the members of a compound to the completion list */
inline int AddCompoundMembers(xmlNodePtr compound,
const char *name, const char *url)
{
xmlNodePtr child = compound->xmlChildrenNode;
int ret = 0;
while (child && !ret)
{
if (!xmlStrcmp(child->name, (const xmlChar *) "member"))
{
char *member_name = XMLTagChild(child, "name");
char *member_anchor = XMLTagChild(child, "anchor");
char *member_args = XMLTagChild(child, "arglist");
/* member_args can be NULL... just means there's no args */
if (!member_name || !member_anchor)
{
fprintf(stderr, "Invalid Doxygen tags file\n");
ret = -1;
}
else
{
char *member_name_copy = strdup(member_name);
char *member_url = (char *)malloc(strlen(url) +
strlen(member_anchor) +
2);
char *member_desc = (char *)malloc(strlen(name) +
strlen(member_name) +
(member_args ?
strlen(member_args) : 0) +
3);
if (member_url && member_desc && member_name_copy)
{
sprintf(member_url, "%s#%s", url, member_anchor);
sprintf(member_desc,
"%s::%s%s",
name, member_name, member_args ? member_args : "");
if (AddToCompletionList(member_name_copy,
member_desc, member_url) < 0)
{
ret = -1;
}
}
else
{
fprintf(stderr, "malloc failed\n");
if (member_url)
{
free(member_url);
}
if (member_desc)
{
free(member_desc);
}
if (member_name_copy)
{
free(member_name_copy);
}
ret = -1;
}
}
}
child = child->next;
}
return ret;
}
int main(int argc, char *argv[])
{
xmlDocPtr doc = NULL;
xmlNodePtr cur;
int ret = 0;
int res;
#define BUFF_SIZE 25 * 1024
char buff[BUFF_SIZE];
LIBXML_TEST_VERSION;
comp_list = NULL;
memset(symbol_hash, 0, sizeof(symbol_hash));
res = fread(buff, 1, 4, stdin);
if (res > 0) {
xmlParserCtxtPtr ctxt = xmlCreatePushParserCtxt(NULL, NULL,
buff, res, "stdin");
if (!ctxt)
{
fprintf(stderr, "Failed to parse XML file\n");
ret = -1;
goto abort;
}
while ((res = fread(buff, 1, BUFF_SIZE, stdin)) > 0)
{
if (xmlParseChunk(ctxt, buff, res, 0) != 0)
{
fprintf(stderr, "Failed to parse XML file\n");
ret = -1;
xmlFreeParserCtxt(ctxt);
goto abort;
}
}
if (xmlParseChunk(ctxt, buff, 0, 1) != 0)
{
fprintf(stderr, "Failed to parse XML file\n");
ret = -1;
xmlFreeParserCtxt(ctxt);
goto abort;
}
doc = ctxt->myDoc;
xmlFreeParserCtxt(ctxt);
}
if (!doc)
{
fprintf(stderr, "Failed to parse XML file\n");
ret = -1;
goto abort;
}
cur = xmlDocGetRootElement(doc);
if (!cur)
{
fprintf(stderr, "Empty XML document\n");
ret = -1;
goto abort;
}
if (xmlStrcmp(cur->name, (const xmlChar *) "tagfile"))
{
fprintf(stderr, "Invalid Doxygen tag file, root node != tagfile\n");
ret = -1;
goto abort;
}
cur = cur->xmlChildrenNode;
while (cur)
{
if (cur->type == XML_ELEMENT_NODE)
{
char *compound_name = XMLTagChild(cur, "name");
char *compound_kind = XMLTagAttr(cur, "kind");
char *compound_url = XMLTagChild(cur, "filename");
char *compound_desc;
char *compound_name_copy;
char *compound_url_copy;
if (!compound_name || !compound_kind || !compound_url)
{
fprintf(stderr, "Invalid Doxygen tags file\n");
ret = -1;
goto abort;
}
compound_desc = (char *)malloc(strlen(compound_kind) +
strlen(compound_name) + 3);
if (!compound_desc)
{
fprintf(stderr, "malloc failed\n");
ret = -1;
goto abort;
}
sprintf(compound_desc, "%s %s", compound_kind, compound_name);
/* Workaround for apparent Doxygen 1.2.18 bug */
{
int copy_url = 1;
/* Some compounds don't get the .html in the URL */
if (strcmp(compound_url + strlen(compound_url)
- strlen(".html"),
".html") != 0)
{
compound_url_copy = (char *)malloc(strlen(compound_url) +
strlen(".html") + 1);
sprintf(compound_url_copy, "%s.html", compound_url);
compound_url = compound_url_copy;
copy_url = 0;
}
compound_name_copy = strdup(compound_name);
if (copy_url)
{
compound_url_copy = strdup(compound_url);
}
else
{
compound_url_copy = compound_url;
}
}
if (!compound_name_copy || !compound_url_copy)
{
fprintf(stderr, "malloc failed\n");
ret = -1;
if (compound_name_copy)
{
free(compound_name_copy);
}
if (compound_url_copy)
{
free(compound_url_copy);
}
goto abort;
}
if (AddToCompletionList(compound_name_copy,
compound_desc,
compound_url_copy) < 0)
{
ret = -1;
goto abort;
}
if (AddCompoundMembers(cur, compound_name, compound_url) < 0)
{
ret = -1;
goto abort;
}
}
cur = cur->next;
}
if (OutputCompletionList() < 0)
{
ret = -1;
goto abort;
}
abort:
FreeHash();
FreeCompletionList();
if (doc)
{
xmlFreeDoc(doc);
}
return ret;
}

58
doxymacs/configure.ac Normal file
View File

@ -0,0 +1,58 @@
dnl Process this file with autoconf to produce a configure script.
dnl $Id: configure.ac,v 1.11 2007/06/10 13:17:24 ryants Exp $
AC_INIT(doxymacs, 1.8.0, http://sourceforge.net/projects/doxymacs)
AC_PREREQ(2.57)
AC_REVISION($Revision: 1.11 $)
AC_CONFIG_SRCDIR(c/doxymacs_parser.c)
AM_INIT_AUTOMAKE(doxymacs, 1.8.0)
AC_PREFIX_DEFAULT(${HOME})
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AM_PATH_LISPDIR
dnl Checks for libraries.
AM_PATH_XML2(2.6.13)
dnl Checks for header files.
AC_HEADER_STDC
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
dnl Checks for library functions.
AC_CHECK_FUNCS(strdup)
dnl Doxymacs specific configure options
AC_ARG_WITH(default-style,
AC_HELP_STRING([--with-default-style=STYLE],
[Default Doxygen style to use. One of "JavaDoc", "Qt" or "C++". Default "JavaDoc". ]),
DOXYMACS_DEFAULT_STYLE="$withval", DOXYMACS_DEFAULT_STYLE="JavaDoc")
AC_ARG_WITH(external-xml-parser,
AC_HELP_STRING([--with-external-xml-parser],
[Use external default xml parser by default. Default is to use internal xml parser.]),
DOXYMACS_USE_EXTERNAL_XML_PARSER="t", DOXYMACS_USE_EXTERNAL_XML_PARSER="nil")
AC_SUBST(DOXYMACS_DEFAULT_STYLE)
AC_SUBST(DOXYMACS_USE_EXTERNAL_XML_PARSER)
dnl Here is a hack to get the REAL bindir without any other
dnl embedded variables.
AC_CONFIG_COMMANDS_PRE([abs_bindir=${bindir} ; while echo ${abs_bindir} | grep '${[[A-Za-z0-9_]]\+}' > /dev/null ; do abs_bindir=`eval echo ${abs_bindir}` ; done ; DOXYMACS_PARSER=${abs_bindir}/doxymacs_parser${EXEEXT}])
AC_SUBST(DOXYMACS_PARSER)
AC_ARG_VAR(EMACS, [How to invoke emacs (e.g. EMACS=xemacs to use XEmacs).])
AC_ARG_VAR(EMACSLOADPATH, [Default load-path for EMACS.])
AC_CONFIG_FILES([Makefile c/Makefile lisp/Makefile lisp/doxymacs.el
no-autoconf/Makefile])
AC_OUTPUT

54
doxymacs/elisp-comp Executable file
View File

@ -0,0 +1,54 @@
#!/bin/sh
# Copyright 1995 Free Software Foundation, Inc.
# François Pinard <pinard@iro.umontreal.ca>, 1995.
#
# 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This script byte-compiles all `.el' files which are part of its
# arguments, using GNU Emacs, and put the resulting `.elc' files into
# the current directory, so disregarding the original directories used
# in `.el' arguments.
#
# This script manages in such a way that all Emacs LISP files to
# be compiled are made visible between themselves, in the event
# they require or load-library one another.
if test $# = 0; then
echo 1>&2 "No files given to $0"
exit 1
else
if test -z "$EMACS" || test "$EMACS" = "t"; then
# Value of "t" means we are running in a shell under Emacs.
# Just assume Emacs is called "emacs".
EMACS=emacs
fi
tempdir=elc.$$
mkdir $tempdir
cp $* $tempdir
cd $tempdir
echo "(setq load-path (cons \"..\" load-path))" > script
$EMACS -batch -q -l script -f batch-byte-compile *.el
mv *.elc ..
cd ..
rm -fr $tempdir
fi

View File

@ -0,0 +1,128 @@
<?xml version='1.0' encoding='ISO-8859-1' standalone='yes' ?>
<tagfile>
<compound kind="file">
<name>aclass.h</name>
<path>/home/rts/projects/doxymacs/example/src/</path>
<filename>aclass_8h</filename>
<namespace>NameSpaceTest</namespace>
<class kind="class">Foo</class>
<class kind="struct">blah</class>
<class kind="struct">baz</class>
<member kind="define">
<type>#define</type>
<name>SOME_OBSCURE_DEFINE</name>
<anchorfile>aclass_8h.html</anchorfile>
<anchor>a0</anchor>
<arglist></arglist>
</member>
<member kind="enumeration">
<name>_blah</name>
<anchor>a4</anchor>
<arglist></arglist>
</member>
<member kind="enumvalue">
<name>FOO_SNAZ</name>
<anchor>a4a2</anchor>
<arglist></arglist>
</member>
<member kind="enumvalue">
<name>Foo</name>
<anchor>a4a3</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>int</type>
<name>foobazbar</name>
<anchorfile>namespaceNameSpaceTest.html</anchorfile>
<anchor>a0</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>baz</name>
<filename>structbaz.html</filename>
<member kind="variable">
<type>int</type>
<name>z</name>
<anchorfile>structbaz.html</anchorfile>
<anchor>o0</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>blah</name>
<filename>structblah.html</filename>
<member kind="variable">
<type>int</type>
<name>x</name>
<anchorfile>structblah.html</anchorfile>
<anchor>o0</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>int</type>
<name>y</name>
<anchorfile>structblah.html</anchorfile>
<anchor>o1</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="class">
<name>Foo</name>
<filename>classFoo.html</filename>
<member kind="enumeration">
<name>blah_blah</name>
<anchor>w2</anchor>
<arglist></arglist>
</member>
<member kind="enumvalue">
<name>BAZ</name>
<anchor>w2w0</anchor>
<arglist></arglist>
</member>
<member kind="enumvalue">
<name>BAZ2</name>
<anchor>w2w1</anchor>
<arglist></arglist>
</member>
<member kind="function">
<type></type>
<name>Foo</name>
<anchorfile>classFoo.html</anchorfile>
<anchor>a0</anchor>
<arglist>(int blah)</arglist>
</member>
<member kind="function">
<type></type>
<name>GetBlah</name>
<anchorfile>classFoo.html</anchorfile>
<anchor>a1</anchor>
<arglist>(void) const </arglist>
</member>
<member kind="function" protection="private">
<type></type>
<name>Foo</name>
<anchorfile>classFoo.html</anchorfile>
<anchor>d0</anchor>
<arglist>(int &amp;in, int &amp;out, int &amp;inout)</arglist>
</member>
<member kind="variable" protection="private">
<type>int</type>
<name>_blah</name>
<anchorfile>classFoo.html</anchorfile>
<anchor>r0</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="namespace">
<name>NameSpaceTest</name>
<filename>namespaceNameSpaceTest.html</filename>
<member kind="variable">
<type>int</type>
<name>foobazbar</name>
<anchorfile>namespaceNameSpaceTest.html</anchorfile>
<anchor>a0</anchor>
<arglist></arglist>
</member>
</compound>
</tagfile>

View File

@ -0,0 +1,65 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: aclass.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>aclass.h</h1><a href="aclass_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// $Id: aclass_8h-source.html,v 1.6 2006/04/23 01:04:30 ryants Exp $</span>
<a name="l00002"></a>00002 <span class="comment">// This is just some silly sample file to test out doxymacs with.</span>
<a name="l00003"></a>00003 <span class="preprocessor">#ifndef _ACLASS_H_</span>
<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#define _ACLASS_H_</span>
<a name="l00005"></a>00005 <span class="preprocessor"></span>
<a name="l00006"></a>00006
<a name="l00007"></a><a class="code" href="aclass_8h.html#a0">00007</a> <span class="preprocessor">#define SOME_OBSCURE_DEFINE 76</span>
<a name="l00008"></a>00008 <span class="preprocessor"></span>
<a name="l00013"></a><a class="code" href="classFoo.html">00013</a> <span class="keyword">class </span><a class="code" href="classFoo.html">Foo</a>
<a name="l00014"></a>00014 {
<a name="l00015"></a>00015 <span class="keyword">public</span>:
<a name="l00021"></a><a class="code" href="classFoo.html#a0">00021</a> <a class="code" href="classFoo.html#a0">Foo</a>(<span class="keywordtype">int</span> <a class="code" href="structblah.html">blah</a>)
<a name="l00022"></a>00022 : <a class="code" href="aclass_8h.html#a4">_blah</a>(blah)
<a name="l00023"></a>00023 {}
<a name="l00024"></a>00024
<a name="l00028"></a><a class="code" href="classFoo.html#a1">00028</a> <a class="code" href="classFoo.html#a1">GetBlah</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="aclass_8h.html#a4">_blah</a>; }
<a name="l00029"></a>00029
<a name="l00030"></a><a class="code" href="classFoo.html#w2">00030</a> <span class="keyword">enum</span> <a class="code" href="classFoo.html#w2">blah_blah</a>
<a name="l00031"></a>00031 {
<a name="l00032"></a>00032 <a class="code" href="classFoo.html#w2w0">BAZ</a>,
<a name="l00033"></a>00033 <a class="code" href="classFoo.html#w2w1">BAZ2</a>,
<a name="l00034"></a>00034 };
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="keyword">private</span>:
<a name="l00037"></a>00037
<a name="l00045"></a><a class="code" href="classFoo.html#d0">00045</a> <a class="code" href="classFoo.html#a0">Foo</a>(<span class="keywordtype">int</span> &amp;in, <span class="keywordtype">int</span> &amp;out, <span class="keywordtype">int</span> &amp;inout) { out = in + inout; }
<a name="l00046"></a>00046
<a name="l00048"></a><a class="code" href="classFoo.html#r0">00048</a> <span class="keywordtype">int</span> <a class="code" href="aclass_8h.html#a4">_blah</a>;
<a name="l00049"></a>00049 };
<a name="l00050"></a>00050
<a name="l00052"></a><a class="code" href="structblah.html">00052</a> <span class="keyword">struct </span><a class="code" href="structblah.html">blah</a>
<a name="l00053"></a>00053 {
<a name="l00054"></a><a class="code" href="structblah.html#o0">00054</a> <span class="keywordtype">int</span> <a class="code" href="structblah.html#o0">x</a>;
<a name="l00055"></a><a class="code" href="structblah.html#o1">00055</a> <span class="keywordtype">int</span> <a class="code" href="structblah.html#o1">y</a>;
<a name="l00056"></a>00056 };
<a name="l00057"></a>00057
<a name="l00058"></a><a class="code" href="structbaz.html">00058</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00059"></a>00059 <span class="keyword"></span>{
<a name="l00060"></a><a class="code" href="structbaz.html#o0">00060</a> <span class="keywordtype">int</span> z;
<a name="l00061"></a>00061 } <a class="code" href="structbaz.html">baz</a>;
<a name="l00062"></a>00062
<a name="l00064"></a><a class="code" href="aclass_8h.html#a4">00064</a> <span class="keyword">enum</span> <a class="code" href="aclass_8h.html#a4">_blah</a>
<a name="l00065"></a>00065 {
<a name="l00066"></a>00066 <a class="code" href="aclass_8h.html#a4a2">FOO_SNAZ</a>,
<a name="l00067"></a>00067 <a class="code" href="classFoo.html">Foo</a>
<a name="l00068"></a>00068 };
<a name="l00069"></a>00069
<a name="l00071"></a><a class="code" href="namespaceNameSpaceTest.html">00071</a> <span class="keyword">namespace </span>NameSpaceTest
<a name="l00072"></a>00072 {
<a name="l00073"></a><a class="code" href="namespaceNameSpaceTest.html#a0">00073</a> <span class="keywordtype">int</span> <a class="code" href="namespaceNameSpaceTest.html#a0">foobazbar</a>;
<a name="l00074"></a>00074 }
<a name="l00075"></a>00075
<a name="l00076"></a>00076 <span class="preprocessor">#endif // _ACLASS_H_</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,109 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: aclass.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>aclass.h File Reference</h1>
<p>
<a href="aclass_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceNameSpaceTest.html">NameSpaceTest</a></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html">Foo</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class does blah. <a href="classFoo.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblah.html">blah</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This struct does something useless. <a href="structblah.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbaz.html">baz</a></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="aclass_8h.html#a0">SOME_OBSCURE_DEFINE</a>&nbsp;&nbsp;&nbsp;76</td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="aclass_8h.html#a4">_blah</a> { <a class="el" href="aclass_8h.html#a4a2">FOO_SNAZ</a>,
<a class="el" href="aclass_8h.html#a4a3">Foo</a>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is a useless enum. <a href="aclass_8h.html#a4">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceNameSpaceTest.html#a0">NameSpaceTest::foobazbar</a></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="a0"></a><!-- doxytag: member="aclass.h::SOME_OBSCURE_DEFINE" ref="a0" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">#define SOME_OBSCURE_DEFINE&nbsp;&nbsp;&nbsp;76 </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00007">7</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>. </td>
</tr>
</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="a4"></a><!-- doxytag: member="aclass.h::_blah" ref="a4" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">enum <a class="el" href="aclass_8h.html#a4">_blah</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This is a useless enum.
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="a4a2"></a><!-- doxytag: member="FOO_SNAZ" ref="a4a2" args="" -->FOO_SNAZ</em>&nbsp;</td><td>
More silly stuff. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="a4a3"></a><!-- doxytag: member="Foo" ref="a4a3" args="" -->Foo</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00064">64</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<div class="fragment"><pre class="fragment"><a name="l00065"></a>00065 {
<a name="l00066"></a>00066 <a class="code" href="aclass_8h.html#a4a2">FOO_SNAZ</a>,
<a name="l00067"></a>00067 <a class="code" href="classFoo.html">Foo</a>
<a name="l00068"></a>00068 };
</pre></div>
<p>
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindexHL" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Test project Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="structbaz.html">baz</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="structblah.html">blah</a></td><td class="indexvalue">This struct does something useless </td></tr>
<tr><td class="indexkey"><a class="el" href="classFoo.html">Foo</a></td><td class="indexvalue">This class does blah </td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Foo Member List</h1>This is the complete list of members for <a class="el" href="classFoo.html">Foo</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="classFoo.html#r0">_blah</a></td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classFoo.html#w2w0">BAZ</a> enum value</td><td><a class="el" href="classFoo.html">Foo</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classFoo.html#w2w1">BAZ2</a> enum value</td><td><a class="el" href="classFoo.html">Foo</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classFoo.html#w2">blah_blah</a> enum name</td><td><a class="el" href="classFoo.html">Foo</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classFoo.html#a0">Foo</a>(int blah)</td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classFoo.html#d0">Foo</a>(int &amp;in, int &amp;out, int &amp;inout)</td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classFoo.html#a1">GetBlah</a>(void) const </td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [inline]</code></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,250 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Foo Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Foo Class Reference</h1><!-- doxytag: class="Foo" -->This class does blah.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="aclass_8h-source.html">aclass.h</a>&gt;</code>
<p>
<a href="classFoo-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#w2">blah_blah</a> { <a class="el" href="classFoo.html#w2w0">BAZ</a>,
<a class="el" href="classFoo.html#w2w1">BAZ2</a>
}</td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#a0">Foo</a> (int <a class="el" href="structblah.html">blah</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The constructor. <a href="#a0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#a1">GetBlah</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the current value of blah. <a href="#a1"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#d0">Foo</a> (int &amp;in, int &amp;out, int &amp;inout)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Testing the in/out parameter stuff. <a href="#d0"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#r0">_blah</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is a measure of our blahness. <a href="#r0"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class does blah.
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00013">13</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="w2"></a><!-- doxytag: member="Foo::blah_blah" ref="w2" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">enum <a class="el" href="classFoo.html#w2">Foo::blah_blah</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="w2w0"></a><!-- doxytag: member="BAZ" ref="w2w0" args="" -->BAZ</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="w2w1"></a><!-- doxytag: member="BAZ2" ref="w2w1" args="" -->BAZ2</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00030">30</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<div class="fragment"><pre class="fragment"><a name="l00031"></a>00031 {
<a name="l00032"></a>00032 <a class="code" href="classFoo.html#w2w0">BAZ</a>,
<a name="l00033"></a>00033 <a class="code" href="classFoo.html#w2w1">BAZ2</a>,
<a name="l00034"></a>00034 };
</pre></div>
<p>
</td>
</tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a0"></a><!-- doxytag: member="Foo::Foo" ref="a0" args="(int blah)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">Foo::Foo </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>blah</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The constructor.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>blah</em>&nbsp;</td><td>Some kind of fish.</td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00021">21</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<div class="fragment"><pre class="fragment"><a name="l00022"></a>00022 : <a class="code" href="classFoo.html#r0">_blah</a>(<a class="code" href="structblah.html">blah</a>)
<a name="l00023"></a>00023 {}
</pre></div>
<p>
</td>
</tr>
</table>
<a class="anchor" name="d0"></a><!-- doxytag: member="Foo::Foo" ref="d0" args="(int &amp;in, int &amp;out, int &amp;inout)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">Foo::Foo </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>in</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>out</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>inout</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [inline, private]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Testing the in/out parameter stuff.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>in</em>&nbsp;</td><td>An "in" parameter </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>out</em>&nbsp;</td><td>An "out" parameter </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>inout</em>&nbsp;</td><td>An "inout" parameter</td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00045">45</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<div class="fragment"><pre class="fragment"><a name="l00045"></a>00045 { out = in + inout; }
</pre></div>
<p>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a1"></a><!-- doxytag: member="Foo::GetBlah" ref="a1" args="(void) const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">Foo::GetBlah </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">void&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Gets the current value of blah.
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00028">28</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<div class="fragment"><pre class="fragment"><a name="l00028"></a>00028 { <span class="keywordflow">return</span> <a class="code" href="aclass_8h.html#a4">_blah</a>; }
</pre></div>
<p>
</td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="r0"></a><!-- doxytag: member="Foo::_blah" ref="r0" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int <a class="el" href="classFoo.html#r0">Foo::_blah</a><code> [private]</code> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This is a measure of our blahness.
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00048">48</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="aclass_8h-source.html">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,309 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION { font-weight: bold }
DIV.qindex {
width: 100%;
background-color: #eeeeff;
border: 1px solid #b0b0b0;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.nav {
width: 100%;
background-color: #eeeeff;
border: 1px solid #b0b0b0;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #eeeeff;
border: 1px solid #b0b0b0;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
font-family: Fixed, monospace;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
TD.md { background-color: #F4F4FB; font-weight: bold; }
TD.mdPrefix {
background-color: #F4F4FB;
color: #606060;
font-size: 80%;
}
TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #eeeeff;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #eeeeff;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
.mdTable {
border: 1px solid #868686;
background-color: #F4F4FB;
}
.mdRow {
padding: 8px 10px;
}
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search { color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search { font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #eeeeff;
}
TD.tiny { font-size: 75%;
}
a {
color: #252E78;
}
a:visited {
color: #3D2185;
}
.dirtab { padding: 4px;
border-collapse: collapse;
border: 1px solid #b0b0b0;
}
TH.dirtab { background: #eeeeff;
font-weight: bold;
}
HR { height: 1px;
border: none;
border-top: 1px solid black;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: File Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindexHL" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Test project File List</h1>Here is a list of all files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="aclass_8h.html">aclass.h</a> <a href="aclass_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
Here is a list of all class members with links to the classes they belong to:
<p>
<ul>
<li>_blah
: <a class="el" href="classFoo.html#r0">Foo</a><li>BAZ
: <a class="el" href="classFoo.html#w2w0">Foo</a><li>BAZ2
: <a class="el" href="classFoo.html#w2w1">Foo</a><li>blah_blah
: <a class="el" href="classFoo.html#w2">Foo</a><li>Foo()
: <a class="el" href="classFoo.html#d0">Foo</a><li>GetBlah()
: <a class="el" href="classFoo.html#a1">Foo</a><li>x
: <a class="el" href="structblah.html#o0">blah</a><li>y
: <a class="el" href="structblah.html#o1">blah</a><li>z
: <a class="el" href="structbaz.html#o0">baz</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members - Enumerations</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindexHL" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
<p>
<ul>
<li>blah_blah
: <a class="el" href="classFoo.html#w2">Foo</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members - Enumerator</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindexHL" href="functions_eval.html">Enumerator</a></div>
<p>
<ul>
<li>BAZ
: <a class="el" href="classFoo.html#w2w0">Foo</a><li>BAZ2
: <a class="el" href="classFoo.html#w2w1">Foo</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members - Functions</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
<p>
<ul>
<li>Foo()
: <a class="el" href="classFoo.html#d0">Foo</a><li>GetBlah()
: <a class="el" href="classFoo.html#a1">Foo</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,21 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members - Variables</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
<p>
<ul>
<li>_blah
: <a class="el" href="classFoo.html#r0">Foo</a><li>x
: <a class="el" href="structblah.html#o0">blah</a><li>y
: <a class="el" href="structblah.html#o1">blah</a><li>z
: <a class="el" href="structbaz.html#o0">baz</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindexHL" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindexHL" href="globals.html">All</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumerator</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
Here is a list of all file members with links to the files they belong to:
<p>
<ul>
<li>_blah
: <a class="el" href="aclass_8h.html#a4">aclass.h</a><li>Foo
: <a class="el" href="aclass_8h.html#a4a3">aclass.h</a><li>FOO_SNAZ
: <a class="el" href="aclass_8h.html#a4a2">aclass.h</a><li>foobazbar
: <a class="el" href="namespaceNameSpaceTest.html#a0">aclass.h</a><li>SOME_OBSCURE_DEFINE
: <a class="el" href="aclass_8h.html#a0">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindexHL" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumerator</a> | <a class="qindexHL" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>SOME_OBSCURE_DEFINE
: <a class="el" href="aclass_8h.html#a0">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindexHL" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindexHL" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumerator</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>_blah
: <a class="el" href="aclass_8h.html#a4">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindexHL" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindexHL" href="globals_eval.html">Enumerator</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>Foo
: <a class="el" href="aclass_8h.html#a4a3">aclass.h</a><li>FOO_SNAZ
: <a class="el" href="aclass_8h.html#a4a2">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindexHL" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindexHL" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumerator</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>foobazbar
: <a class="el" href="namespaceNameSpaceTest.html#a0">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,14 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindexHL" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Test project Documentation</h1>
<p>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: NameSpaceTest Namespace Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>NameSpaceTest Namespace Reference</h1>Some namespace.
<a href="#_details">More...</a>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceNameSpaceTest.html#a0">foobazbar</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Some namespace. <hr><h2>Variable Documentation</h2>
<a class="anchor" name="a0"></a><!-- doxytag: member="NameSpaceTest::foobazbar" ref="a0" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int <a class="el" href="namespaceNameSpaceTest.html#a0">NameSpaceTest::foobazbar</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00073">73</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>. </td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindexHL" href="namespacemembers.html">All</a> | <a class="qindex" href="namespacemembers_vars.html">Variables</a></div>
Here is a list of all namespace members with links to the namespace documentation for each member:
<p>
<ul>
<li>foobazbar
: <a class="el" href="namespaceNameSpaceTest.html#a0">NameSpaceTest</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="qindex"><a class="qindex" href="namespacemembers.html">All</a> | <a class="qindexHL" href="namespacemembers_vars.html">Variables</a></div>
<p>
<ul>
<li>foobazbar
: <a class="el" href="namespaceNameSpaceTest.html#a0">NameSpaceTest</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Namespace Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindexHL" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Test project Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="namespaceNameSpaceTest.html">NameSpaceTest</a></td><td class="indexvalue">Some namespace </td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,14 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>baz Member List</h1>This is the complete list of members for <a class="el" href="structbaz.html">baz</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structbaz.html#o0">z</a></td><td><a class="el" href="structbaz.html">baz</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: baz Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>baz Struct Reference</h1><!-- doxytag: class="baz" --><code>#include &lt;<a class="el" href="aclass_8h-source.html">aclass.h</a>&gt;</code>
<p>
<a href="structbaz-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbaz.html#o0">z</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00058">58</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="o0"></a><!-- doxytag: member="baz::z" ref="o0" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int <a class="el" href="structbaz.html#o0">baz::z</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00060">60</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="aclass_8h-source.html">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>blah Member List</h1>This is the complete list of members for <a class="el" href="structblah.html">blah</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structblah.html#o0">x</a></td><td><a class="el" href="structblah.html">blah</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structblah.html#o1">y</a></td><td><a class="el" href="structblah.html">blah</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,83 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Test project: blah Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.4 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>blah Struct Reference</h1><!-- doxytag: class="blah" -->This struct does something useless.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="aclass_8h-source.html">aclass.h</a>&gt;</code>
<p>
<a href="structblah-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblah.html#o0">x</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblah.html#o1">y</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This struct does something useless.
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00052">52</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="o0"></a><!-- doxytag: member="blah::x" ref="o0" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int <a class="el" href="structblah.html#o0">blah::x</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00054">54</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>. </td>
</tr>
</table>
<a class="anchor" name="o1"></a><!-- doxytag: member="blah::y" ref="o1" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int <a class="el" href="structblah.html#o1">blah::y</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<p>
Definition at line <a class="el" href="aclass_8h-source.html#l00055">55</a> of file <a class="el" href="aclass_8h-source.html">aclass.h</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="aclass_8h-source.html">aclass.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
</body>
</html>

View File

@ -0,0 +1,76 @@
// $Id: aclass.h,v 1.3 2005/04/01 06:05:06 ryants Exp $
// This is just some silly sample file to test out doxymacs with.
#ifndef _ACLASS_H_
#define _ACLASS_H_
#define SOME_OBSCURE_DEFINE 76
/**
* This class does blah.
*
*/
class Foo
{
public:
/**
* The constructor.
*
* @param blah Some kind of fish.
*/
Foo(int blah)
: _blah(blah)
{}
/**
* Gets the current value of blah.
*/
GetBlah(void) const { return _blah; }
enum blah_blah
{
BAZ,
BAZ2,
};
private:
/**
* Testing the in/out parameter stuff.
*
* @param[in] in An "in" parameter
* @param[out] out An "out" parameter
* @param[in,out] inout An "inout" parameter
*/
Foo(int &in, int &out, int &inout) { out = in + inout; }
/** This is a measure of our blahness. */
int _blah;
};
/** This struct does something useless */
struct blah
{
int x;
int y;
};
typedef struct
{
int z;
} baz;
/** This is a useless enum */
enum _blah
{
FOO_SNAZ, /**< More silly stuff. */
Foo
};
/** Some namespace */
namespace NameSpaceTest
{
int foobazbar;
}
#endif // _ACLASS_H_

File diff suppressed because it is too large Load Diff

287
doxymacs/htdocs/index.html Normal file
View File

@ -0,0 +1,287 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Doxymacs = Doxygen + Emacs</title>
</head>
<body>
<h1>Doxymacs</h1>
<p>
Doxymacs is <a href="http://www.doxygen.org">Doxygen</a> +
{X}Emacs.
</p>
<p>
The purpose of the doxymacs project is to create a LISP package
that will make using Doxygen from within {X}Emacs easier.
</p>
<p>
<a
href="http://sourceforge.net/project/showfiles.php?group_id=23584&amp;release_id=514962">Version 1.8.0</a>,
released 2007-06-10, has the following features:
</p>
<ul>
<li>
ability to <a
href="http://sourceforge.net/project/screenshots.php?group_id=23584&amp;ssid=13275">look
up documentation</a> for symbols from {X}Emacs in the browser
of your choice.
</li>
<li>
<a
href="http://sourceforge.net/project/screenshots.php?group_id=23584&amp;ssid=13271">easily
insert Doxygen style comments</a> into source.
</li>
<li>
optionally use an "external" (<i>i.e.</i> written in C) XML
parser to speed up building the completion list.
</li>
<li>
<a
href="http://sourceforge.net/project/screenshots.php?group_id=23584&amp;ssid=13277">fontify
Doxygen keywords</a>.
</li>
</ul>
<p>
Please direct any bug reports or feature requests to the
appropriate forum on <a
href="http://sourceforge.net/projects/doxymacs/">Doxymacs'
SourceForge</a> page.
</p>
<h2>Requirements</h2>
Doxymacs depends on the following packages:
<ul>
<li>
<a href="http://www.cs.indiana.edu/usr/local/www/elisp/w3/docs.html">W3</a>
</li>
<li>
<a href="http://www.lysator.liu.se/~davidk/elisp/">tempo</a>
</li>
<li>
version 2.6.13 or greater of <a
href="http://www.libxml.org/">libxml2</a>.
</li>
</ul>
Make sure these are properly configured and installed before
proceeding.
<h2>Installation</h2>
<ul>
<li>
Use the configure script to configure and build doxymacs:
<pre>
$ ./configure
$ make
$ make install
</pre>
Be sure to put <code>${datadir}/share/${EMACS}/site-lisp</code>
in your <code>load-path</code> in your <code>.emacs</code>
file, or wherever you configured the .elc files to end up.
<br /><br />
<b>NOTE</b> If you get:
<pre>
!! File error (("Cannot open load file" "url"))
</pre>
(or something similar) when you do <code>make</code>,
then set the variable <code>EMACSLOADPATH</code>:
<pre>
$ EMACSLOADPATH=... make
</pre>
where <code>...</code> is a colon separated list of directories
to seach for packages.
<br /><br />
To byte compile with XEmacs, set the variable <code>EMACS</code>:
<pre>
$ EMACS=xemacs make
</pre>
If you want to avoid byte-compiling altogether:
<pre>
$ make ELCFILES=
$ make install ELCFILES=
</pre>
For a complete list of configuration options:
<pre>
$ ./configure --help
</pre>
If you do not want to run or cannot run <code>configure</code>
then pre-baked <code>.el</code> files are available in the
<code>no-autoconf/</code> directory; simply
copy these to somewhere in your <code>load-path</code>.
</li>
<li>
Customise the variables <code>doxymacs-doxygen-root</code> and
<code>doxymacs-doxygen-tags</code>. You can customise these
via the customisation menu Programming | Tools | Doxymacs.
</li>
<li>
(Optional) Customise <code>doxymacs-doxygen-style</code>. The
default is "JavaDoc". See <a
href="http://www.stack.nl/~dimitri/doxygen/docblocks.html#docblocks">the
Doxygen manual</a> for examples of the three available styles
(JavaDoc, Qt and C++).
</li>
<li>
To use the external XML parser, set
<code>doxymacs-use-external-xml-parser</code> to non-nil (can
be done via the customisation menu).
</li>
<li>
Put <code>(require 'doxymacs)</code> in your <code>.emacs</code>
file.
</li>
<li>
Invoke <code>doxymacs-mode</code> with <code>M-x
doxymacs-mode</code>. To have <code>doxymacs-mode</code>
automatically come up whenever you visit a C/C++ file, put
<code>(add-hook 'c-mode-common-hook'doxymacs-mode)</code> in
your <code>.emacs</code>.
</li>
<li>
If you want Doxygen keywords fontified use <code>M-x
doxymacs-font-lock</code>. To do it automatically, add
the following to your <code>.emacs</code>:
<pre>
(defun my-doxymacs-font-lock-hook ()
(if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
(doxymacs-font-lock)))
(add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
</pre>
This will add the Doxygen keywords to c-mode and c++-mode
only.
</li>
<li>
Default key bindings are:
<ul>
<li>
<code>C-c d ?</code> will look up documentation for the symbol
under the point.
</li>
<li>
<code>C-c d r</code> will rescan your Doxygen tags file.
</li>
<li>
<code>C-c d f</code> will insert a Doxygen comment for the
next function.
</li>
<li>
<code>C-c d i</code> will insert a Doxygen comment for the
current file.
</li>
<li>
<code>C-c d ;</code> will insert a Doxygen comment for a
member variable on the current line (like <code>M-;</code>).
</li>
<li>
<code>C-c d m</code> will insert a blank multi-line Doxygen
comment.
</li>
<li>
<code>C-c d s</code> will insert a blank single-line Doxygen
comment.
</li>
<li>
<code>C-c d @</code> will insert grouping comments around the
current region.
</li>
</ul>
</li>
</ul>
Doxymacs has been tested on and works with:
<ul>
<li>GNU Emacs 20.7.1, 21.1.1, 21.2.1, 21.3, 21.4.1.</li>
<li>XEmacs 21.1 (patch 14), XEmacs 21.4 (patch 4, 5, 6, 17).</li>
<li>Up to doxygen version 1.4.4</li>
</ul>
If you have success or failure with other versions of {X}Emacs and
doxygen, please let the authors know.
<p>
<h2>Links</h2>
<ul>
<li>
<a href="http://sourceforge.net/projects/doxymacs/">Doxymacs
SourceForge Project.</a> Go here to request help, submit a
patch, or ask for a feature.
</li>
<li>
<a
href="http://sourceforge.net/project/showfiles.php?group_id=23584&amp;release_id=514962">Release
1.8.0</a> Download it now.
</li>
<li>
<a href="http://sourceforge.net/cvs/?group_id=23584">CVS
Repository</a> For bleeding edge people and developers.
</li>
</ul>
<p>
<a href="http://sourceforge.net"> <img src="http://sourceforge.net/sflogo.php?group_id=23584" width="88" height="31" border="0" alt="SourceForge Logo"></A>
</p>
<p>
<a href="http://validator.w3.org/check/referer"><img border="0"
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01!" height="31" width="88"></a>
</p>
<hr>
<address><a href="mailto:ryan.sammartino@gmail.com">Ryan T. Sammartino</a></address>
<!-- Created: Sun Jan 5 18:21:52 PST 2003 -->
<!-- hhmts start -->Last modified: Sun Jun 10 14:28:09 BST 2007 <!-- hhmts end -->
<p>
<code>$Id: index.html,v 1.13 2007/06/10 13:30:33 ryants Exp $</code>
</p>
</body>
</html>
<!-- Local Variables: -->
<!-- mode: html -->
<!-- sgml-indent-step: 2 -->
<!-- End: -->

View File

@ -0,0 +1,6 @@
## Process this file with automake to produce Makefile.in
# $Id: Makefile.am,v 1.2 2003/01/06 00:45:15 ryants Exp $
lisp_LISP = xml-parse.el doxymacs.el
EXTRA_DIST = xml-parse.el

1623
doxymacs/lisp/doxymacs.el.in Normal file

File diff suppressed because it is too large Load Diff

379
doxymacs/lisp/xml-parse.el Normal file
View File

@ -0,0 +1,379 @@
;;; xml-parse --- code to efficiently read/write XML data with Elisp
;;;
;;; $Id: xml-parse.el,v 1.4 2001/05/12 22:36:13 ryants Exp $
;; Copyright (C) 2001 John Wiegley.
;; Author: John Wiegley <johnw@gnu.org>
;; Version: 1.5
;; Created: Feb 15, 2001
;; Keywords: convenience languages lisp xml parse data
;; URL: http://www.gci-net.com/~johnw/emacs.html
;; This file is NOT (yet) part of GNU Emacs.
;; This 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 software 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 GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Commentary:
;;
;; XML is yet another way of expressing recursive, attributed data
;; structures -- something which Lisp has had the capacity to do for
;; decades.
;;
;; The approach taken by xml-parse.el is to read XML data into Lisp
;; structures, and allow those same Lisp structures to be written out
;; as XML. It should facilitate the manipulation and use of XML by
;; Elisp programs.
;; NOTE: This is not a validating parser, and makes no attempt to read
;; DTDs. See psgml.el if you need that kind of power.
;;
;; Also, tags beginning with <? or <! are not parsed, but merely
;; included in the resulting data structure as separate string
;; entries. These may be tested for using the function
;; `xml-tag-special-p'. If present, they are treated just like normal
;; text, and will be inserted along with everything else. If they
;; occur *before* the opening tag of an XML tree, they will not appear
;; in the parsed data, since such "pre-tags" are not the child of any
;; tag.
;; Here is the format of the Lisp data structure used:
;;
;; (TAG CHILD...)
;;
;; Where TAG is either a string (naming the tag) or a list. The list
;; form is used to identify attributes, and has the format:
;;
;; (TAG-NAME (ATTR-NAME . ATTR-VALUE)...)
;;
;; After the TAG, there can be zero or more child structures, which
;; are either literal strings, or the same "TAG CHILD..." structure as
;; the parent. See `insert-xml' for an EBNF grammar of this layout.
;; EXAMPLE: Given the following DocBook XML data:
;;
;; <book id="compiler">
;; <bookinfo>
;; <bookbiblio>
;; <title>My own book!</title>
;; <edition>First</edition>
;; <authorgroup>
;; <author>
;; <firstname>John</firstname>
;; <surname>Wiegley</surname>
;; </author>
;; </authorgroup>
;; </bookbiblio>
;; </bookinfo>
;; <chapter>
;; <title>A very small chapter</title>
;; <para>Wonder where the content is...</para>
;; </chapter>
;; </book>
;;
;; It would be parsed into this Lisp structure:
;;
;; '(("book" ("id" . "compiler"))
;; ("bookinfo"
;; ("bookbiblio"
;; ("title" "My own book!")
;; ("edition" "FIrst")
;; ("authorgroup"
;; ("author"
;; ("firstname" "John")
;; ("surname" "Wiegley")))))
;; ("chapter"
;; ("title" "A very small chapter")
;; ("para" "Wonder where the content is...")))
;;
;; Now it can easily be modified and interpreted using ordinary Lisp
;; code, without the ordeal of manipulating textual XML. When you're
;; done modifying it, you can write it back out (complete with proper
;; indentation and newlines) using:
;;
;; (insert-xml <DATA> t)
;;
;; See the documentation for `read-xml' and `insert-xml' for more
;; information.
;;
;; There are also a set of helper functions for accessing parts of a
;; parsed tag:
;;
;; xml-tag-name get the name of a tag
;; xml-tag-attrlist returns a tag's attribute alist
;; xml-tag-attr lookup a specific tag attribute
;; xml-tag-children returns a tag's child list
;; xml-tag-child lookup a specific child tag by name
;;
;; Also, the attribute list and child lists can be searched using
;; `assoc', since they roughly have the same format as an alist.
;;;###autoload
(defun read-xml (&optional progress-callback)
"Parse XML data at point into a Lisp structure.
See `insert-xml' for a description of the format of this structure.
Point is left at the end of the XML structure read."
(cdr (xml-parse-read progress-callback)))
(defsubst xml-tag-with-attributes-p (tag)
"Does the TAG have attributes or not?"
(listp (car tag)))
(defsubst xml-tag-name (tag)
"Return the name of an xml-parse'd XML TAG."
(cond ((xml-tag-text-p tag)
(car tag))
((xml-tag-with-attributes-p tag)
(caar tag))
(t (car tag))))
(defun xml-tag-text-p (tag)
"Is the given TAG really just a text entry?"
(stringp tag))
(defsubst xml-tag-special-p (tag)
"Return the name of an xml-parse'd XML TAG."
(and (xml-tag-text-p tag)
(eq (aref tag 0) ?\<)))
(defsubst xml-tag-attrlist (tag)
"Return the attribute list of an xml-parse'd XML TAG."
(and (not (stringp (car tag)))
(cdar tag)))
(defsubst xml-tag-attr (tag attr)
"Return a specific ATTR of an xml-parse'd XML TAG."
(cdr (assoc attr (xml-tag-attrlist tag))))
(defsubst xml-tag-children (tag)
"Return the list of child tags of an xml-parse'd XML TAG."
(cdr tag))
(defun xml-tag-child (tag name)
"Return the first child matching NAME, of an xml-parse'd XML TAG."
(catch 'found
(let ((children (xml-tag-children tag)))
(while children
(if (string= name (xml-tag-name (car children)))
(throw 'found (car children)))
(setq children (cdr children))))))
;;;###autoload
(defun insert-xml (data &optional add-newlines public system depth ret-depth)
"Insert DATA, a recursive Lisp structure, at point as XML.
DATA has the form:
ENTRY ::= (TAG CHILD*)
CHILD ::= STRING | ENTRY
TAG ::= TAG_NAME | (TAG_NAME ATTR+)
ATTR ::= (ATTR_NAME . ATTR_VALUE)
TAG_NAME ::= STRING
ATTR_NAME ::= STRING
ATTR_VALUE ::= STRING
If ADD-NEWLINES is non-nil, newlines and indentation will be added to
make the data user-friendly.
If PUBLIC and SYSTEM are non-nil, a !DOCTYPE tag will be added at the
top of the document to identify it as an XML document.
DEPTH is normally for internal use only, and controls the depth of the
indentation."
(when (and (not depth) public system)
(insert "<?xml version=\"1.0\"?>\n")
(insert "<!DOCTYPE " (if (stringp (car data))
(car data)
(caar data))
" PUBLIC \"" public "\"\n \"" system "\">\n"))
(if (stringp data)
(insert data)
(let ((node (car data)) (add-nl t))
(and depth (bolp)
(insert (make-string (* depth 2) ? )))
(if (stringp node)
(insert "<" node)
(setq node (caar data))
(insert "<" node)
(let ((attrs (cdar data)))
(while attrs
(insert " " (caar attrs) "=\"" (cdar attrs) "\"")
(setq attrs (cdr attrs)))))
(if (null (cdr data))
(insert "/>")
(insert ">")
(setq data (cdr data))
(while data
(and add-newlines add-nl
(not (stringp (car data)))
(insert ?\n))
(setq add-nl (insert-xml (car data) add-newlines
nil nil (1+ (or depth 0)))
data (cdr data)))
(when add-nl
(and add-newlines (insert ?\n))
(and depth (insert (make-string (* depth 2) ? ))))
(insert "</" node ">"))
t)))
;;;###autoload
(defun xml-reformat-tags ()
"If point is on the open bracket of an XML tag, reformat that tree.
Note that this only works if the opening tag starts at column 0."
(interactive)
(save-excursion
(let* ((beg (point)) (tags (read-xml)))
(delete-region beg (point))
(insert-xml tags t))))
;;; Internal Functions
;;; RTS did this 30/04/2001
(if (featurep 'xemacs)
(defalias 'match-string-no-properties 'match-string))
(defun xml-parse-profile ()
(interactive)
(let ((elp-function-list
'(buffer-substring-no-properties
char-after
char-before
forward-char
looking-at
match-string-no-properties
match-beginning
match-end
point
re-search-forward
read-xml
xml-parse-read
search-forward
string=
stringp
substring
xml-parse-concat)))
(elp-instrument-list)))
(defsubst xml-parse-skip-tag ()
(cond
((eq (char-after) ??)
(search-forward "?>"))
((looking-at "!--")
(search-forward "-->"))
(t ; must be <!...>
(re-search-forward "[[>]")
(if (eq (char-before) ?\[)
(let ((depth 1))
(while (and (> depth 0)
(if (re-search-forward "[][]")
t
(error "Pos %d: Unclosed open bracket in <! tag")))
(if (eq (char-before) ?\[)
(setq depth (1+ depth))
(setq depth (1- depth))))
(search-forward ">"))))))
(defsubst xml-parse-add-non-ws (text lst)
(let ((i 0) (l (length text)) non-ws)
(while (< i l)
(unless (memq (aref text i) '(?\n ?\t ? ))
(setq i l non-ws t))
(setq i (1+ i)))
(if (not non-ws)
lst
(setcdr lst (list text))
(cdr lst))))
(defsubst xml-parse-concat (beg end lst)
"Add the string from BEG to END to LST, ignoring pure whitespace."
(save-excursion
(goto-char beg)
(while (search-forward "<" end t)
(setq lst (xml-parse-add-non-ws
(buffer-substring-no-properties beg (1- (point))) lst)
beg (1- (point)))
(xml-parse-skip-tag)
(setq lst (xml-parse-add-non-ws
(buffer-substring-no-properties beg (point)) lst)
beg (point)))
(if (/= beg end)
(setq lst (xml-parse-add-non-ws
(buffer-substring-no-properties beg end) lst)))
lst))
(defun xml-parse-read (&optional progress-callback)
(let ((beg (search-forward "<" nil t)) after)
(if progress-callback
(funcall progress-callback
(* (/ (float (point)) (float (point-max))) 100)))
(while (and beg (memq (setq after (char-after)) '(?! ??)))
(xml-parse-skip-tag)
(setq beg (search-forward "<" nil t)))
(when beg
(if (eq after ?/)
(progn
(search-forward ">")
(cons (1- beg)
(buffer-substring-no-properties (1+ beg) (1- (point)))))
(skip-chars-forward "^ \t\n/>")
(cons
(1- beg)
(progn
(setq after (point))
(skip-chars-forward " \t\n")
(let* ((single (eq (char-after) ?/))
(tag (buffer-substring-no-properties beg after))
attrs data-beg data)
;; handle the attribute list, if present
(cond
(single
(skip-chars-forward " \t\n/>"))
((eq (char-after) ?\>)
(forward-char 1))
(t
(let* ((attrs (list t))
(lastattr attrs)
(end (search-forward ">")))
(goto-char after)
(while (re-search-forward
"\\([^ \t\n=]+\\)=\"\\([^\"]+\\)\"" end t)
(let ((attr (cons (match-string-no-properties 1)
(match-string-no-properties 2))))
(setcdr lastattr (list attr))
(setq lastattr (cdr lastattr))))
(goto-char end)
(setq tag (cons tag (cdr attrs))
single (eq (char-before (1- end)) ?/)))))
;; return the tag and its data
(if single
(list tag)
(setq tag (list tag))
(let ((data-beg (point)) (tag-end (last tag)))
(while (and (setq data (xml-parse-read progress-callback))
(not (stringp (cdr data))))
(setq tag-end (xml-parse-concat data-beg (car data)
tag-end)
data-beg (point))
(setcdr tag-end (list (cdr data)))
(setq tag-end (cdr tag-end)))
(xml-parse-concat data-beg (or (car data)
(point-max)) tag-end)
tag)))))))))
(provide 'xml-parse)
;;; xml-parse.el ends here

View File

@ -0,0 +1,15 @@
## Process this file with automake to produce Makefile.in
# $Id: Makefile.am,v 1.1 2003/01/26 01:49:56 ryants Exp $
# When creating the tarball, create .el files with default values
# substituted in the .el.in files for people who don't want to run
# autoconf.
EXTRA_DIST=doxymacs.el xml-parse.el
CONFIG_CLEAN_FILES=doxymacs.el xml-parse.el
doxymacs.el: ${top_srcdir}/lisp/doxymacs.el.in ${top_srcdir}/configure.ac
sed -e 's/\@VERSION\@/${VERSION}/g ; s/\@DOXYMACS_DEFAULT_STYLE\@/${DOXYMACS_DEFAULT_STYLE}/g ; s/\@DOXYMACS_USE_EXTERNAL_XML_PARSER\@/nil/g ; s/\@DOXYMACS_PARSER\@//g' < $< > $@
xml-parse.el: ${top_srcdir}/lisp/xml-parse.el
cp $< $@