re PR libstdc++/15123 (libstdc++-doc: Allocators.3 manpage is empty)
authorBenjamin Kosnik <bkoz@redhat.com>
Thu, 20 May 2004 18:52:09 +0000 (18:52 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 20 May 2004 18:52:09 +0000 (18:52 +0000)
2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>

PR libstdc++/15123
PR libstdc++/13928
* docs/doxygen/Intro.3: Remove Allocators.3.
Add new extension headers, extension namespace list.
* docs/doxygen/run_doxygen (problematic): Remove Allocators.3
Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
__gnu_debug::. Remove __policy_ renames.
* docs/doxygen/guide.html: Add dot note.
* docs/doxygen/stdheader.cc: Edit, add files.
* docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.

From-SVN: r82066

libstdc++-v3/ChangeLog
libstdc++-v3/docs/doxygen/Intro.3
libstdc++-v3/docs/doxygen/guide.html
libstdc++-v3/docs/doxygen/run_doxygen
libstdc++-v3/docs/doxygen/stdheader.cc
libstdc++-v3/docs/doxygen/user.cfg.in

index 867dad6f477e496c9f68643d69c3bf9263ceb994..a181b46aac6760a66b5219dba5d73841f8bdc9ff 100644 (file)
@@ -1,3 +1,16 @@
+2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
+
+       PR libstdc++/15123
+       PR libstdc++/13928
+       * docs/doxygen/Intro.3: Remove Allocators.3.
+       Add new extension headers, extension namespace list.
+       * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
+       Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
+       __gnu_debug::. Remove __policy_ renames.
+       * docs/doxygen/guide.html: Add dot note.
+       * docs/doxygen/stdheader.cc: Edit, add files.
+       * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
+       
 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
 
        * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
index 26b62512147186ffaefa56c5cbd84271efb7854f..59513a59f36502bd4eaaf130fe08a9e282421d41 100644 (file)
@@ -1,6 +1,6 @@
 .\" t
 .\" This man page is released under the FDL as part of libstdc++-v3.
-.TH C++Intro 3 "25 Febuary 2003" "GNU libstdc++-v3" "Standard C++ Library"
+.TH C++Intro 3 "20 May 2004" "GNU libstdc++-v3" "Standard C++ Library"
 .SH NAME
 C++Intro \- Introduction to the GNU libstdc++-v3 man pages
 .SH DESCRIPTION
@@ -16,7 +16,7 @@ and have manual entries beginning with "std::".  For example, to see
 documentation of the template class
 .I std::vector
 one would use "man std::vector".  Some entities do not have a separate man
-page; for those see the main listing in "man Namespace_Std".
+page; for those see the main listing in "man Namespace_std".
 .P
 All the man pages are automatically generated by Doxygen.  For more
 information on this tool, see the HTML counterpart to these man pages.
@@ -30,22 +30,23 @@ or Austern's.)  These category pages are:
 .\" Keep them alphabatized.
 .TS
 lB l.
-Allocators     Classes encapsulating memory allocation schemes.
-Arithmetic_functors    Functors for basic math.
+C++Intro       This page.
+Namespace_std  A listing of the contents of std::.
+Namespace___gnu_cxx    A listing of the contents of __gnu_cxx::.
+Containers     An introduction to container classes.
+Sequences      Linear containers.
 Assoc_containers       Key-based containers.
+Iterator_types Programatically distinguishing iterators/pointers.
+Intro_functors An introduction to function objects, or functors.
+Arithmetic_functors    Functors for basic math.
 Binder_functors        Functors which "remember" an argument.
 Comparison_functors    Functors wrapping built-in comparisons.
-Containers     An introduction to container classes.
 Func_ptr_functors      Functors for use with pointers to functions.
-C++Intro       This page.
-Intro_functors An introduction to function objects, or functors.
-Iterator_types Programatically distinguishing iterators/pointers.
 Logical_functors       Functors wrapping the Boolean operations.
 Member_ptr_functor     Functors for use with pointers to members.
-Namespace_Std  A listing of the contents of std::.
 Negation_functors      Functors which negate their contents.
 SGIextensions  A list of the extensions from the SGI STL subset.
-Sequences      Linear containers.
+
 .TE
 .P
 The HTML documentation typically goes into much more depth.
@@ -94,10 +95,16 @@ in the name.  Otherwise you need to read FAQ 5.4.
 .\" Easy way to generate these columns of headers is to use GNU ls(1):
 .\" ls -w 40 file1 file2... | sed 's=[a-z_][a-z_]*=<ext/&>=g'
 .TS
-lB.
-<ext/algorithm>   <ext/hash_set>  <ext/numeric>  <ext/slist>
-<ext/functional>  <ext/iterator>  <ext/rb_tree>
-<ext/hash_map>    <ext/memory>    <ext/rope>
+lB lB.
+<ext/algorithm>            <ext/numeric>            
+<ext/functional>           <ext/iterator>
+<ext/slist>                <ext/rb_tree>  
+<ext/hash_map>             <ext/hash_set>           
+<ext/rope>                 <ext/memory>               
+<ext/bitmap_allocator.h>   <ext/debug_allocator.h>    
+<ext/malloc_allocator.h>   <ext/mt_allocator.h>     
+<ext/pool_allocator.h>     <ext/pod_char_traits.h>    
+<ext/stdio_filebuf.h>      <ext/stdio_sync_filebuf.h>
 .TE
 .SS Libraries
 .TP
index 814dc1debea0bf7429e7313b70e9de86fc09f684..4a6c610dbe223cb14b4e4e79cd1f3298b2f09945 100644 (file)
    <img src="doxygen.png" alt="Doxygen" align=center border=0 width=110 height=53>
    </a>, a working version of <code>g++</code> somewhere in the PATH, and
    the <a href="http://www.gnu.org/software/coreutils/">GNU coreutils</a>.
+
+   In addition, to generate the pretty pictures, the 
+   <a href=
+   "http://www.research.att.com/sw/tools/graphviz/download.html">Graphviz</a>
+   package will need to be installed.
    (g++ is used to build a program which manipulates man pages.  GNU versions
    of find, xargs, and possibly sed and grep are used, just because the GNU
    versions make things very easy.)
index a04c7e7bfbf8a04d953066c03183a87e6abd7654..c1f8d2a838aab49a8002bd752cbcefbb527f94e4 100644 (file)
@@ -215,14 +215,14 @@ mv s20_3_5_negators.3       Negation_functors.3
 mv s20_3_6_binder.3         Binder_functors.3
 mv s20_3_7_adaptors.3       Func_ptr_functors.3
 mv s20_3_8_memadaptors.3    Member_ptr_functors.3
-mv std.3                    Namespace_Std.3
 mv iterator_tags.3          Iterator_types.3
+mv std.3                    Namespace_std.3
+mv __gnu_cxx.3              Namespace___gnu_cxx.3
 
 # man pages are for functions/types/other entities, not source files
 # directly.  who the heck would type "man foo.h" anyhow?
 find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
-rm -f *.h.3 *config* *.cc.3 *.tcc.3
-rm -f *_t.3  # workaround doxygen template parsing bug for now
+rm -f *.h.3 *config* *.cc.3 *.tcc.3 *_t.3
 # this is used to examine what we would have deleted, for debugging
 #mkdir trash
 #find . -name "[a-z]*" -a ! -name "std_*" -print | xargs -i mv {} trash
@@ -247,8 +247,7 @@ rm stdheader
 # implementations of man(1), e.g., Linux's.  We need to have another top-level
 # *roff tag to /stop/ the .SH NAME entry.
 #problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3`
-problematic='Containers.3 Sequences.3 Assoc_containers.3 Allocators.3
-             Iterator_types.3'
+problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3'
 for f in $problematic; do
     sed '/^\.SH NAME/{
 n
@@ -280,8 +279,12 @@ for f in __gnu_cxx_*; do
     newname=`echo $f | sed 's/^__gnu_cxx_/__gnu_cxx::/'`
     mv $f $newname
 done
-for f in *__policy_*; do
-    newname=`echo $f | sed 's/__policy_/__policy::/'`
+for f in __gnu_debug_*; do
+    newname=`echo $f | sed 's/^__gnu_debug_/__gnu_debug::/'`
+    mv $f $newname
+done
+for f in GLIBCXXSTD_*; do
+    newname=`echo $f | sed 's/^GLIBCXXSTD_/std::/'`
     mv $f $newname
 done
 
index a792592fe2b50ad98d6a7cc540156a5a0e6523a4..896a4e0b07cd14fdcbbb3904f5dceceb36b08d04 100644 (file)
@@ -25,17 +25,15 @@ void init_map()
     headers["algo.h"]                   = "algorithm";
     headers["algobase.h"]               = "algorithm";
     headers["algorithm.h"]              = "algorithm";
-    headers["alloc.h"]                  = "memory";
+    headers["allocator.h"]              = "memory";
     headers["basic_ios.h"]              = "ios";
     headers["basic_ios.tcc"]            = "ios";
-    headers["basic_string.h"]           = "string";
-    headers["basic_string.tcc"]         = "string";
     headers["bitset.h"]                 = "bitset";
     headers["bvector.h"]                = "vector";
-    //headers["char_traits.h"]            uhhhhhh
     headers["complex.h"]                = "complex";
     //headers["construct.h"]              stl_construct.h entirely internal
     headers["deque.h"]                  = "deque";
+    headers["deque.tcc"]                = "deque";
     headers["fstream.h"]                = "fstream";
     headers["fstream.tcc"]              = "fstream";
     headers["function.h"]               = "functional";
@@ -52,7 +50,11 @@ void init_map()
     headers["iterator_base_types.h"]    = "iterator";
     headers["limits.h"]                 = "limits";
     headers["list.h"]                   = "list";
+    headers["list.tcc"]                   = "list";
+    headers["codecvt.h"]                = "locale";
     headers["locale.h"]                 = "locale";
+    headers["localefwd.h"]              = "locale";
+    headers["locale_classes.h"]         = "locale";
     headers["locale_facets.h"]          = "locale";
     headers["locale_facets.tcc"]        = "locale";
     headers["map.h"]                    = "map";
@@ -63,7 +65,6 @@ void init_map()
     headers["ostream.h"]                = "ostream";
     headers["ostream.tcc"]              = "ostream";
     headers["pair.h"]                   = "utility";
-    //headers["pthread_alloc.h"]          who knows
     headers["queue.h"]                  = "queue";
     headers["raw_storage_iter.h"]       = "memory";
     headers["relops.h"]                 = "utility";
@@ -71,21 +72,38 @@ void init_map()
     headers["sstream.h"]                = "sstream";
     headers["sstream.tcc"]              = "sstream";
     headers["stack.h"]                  = "stack";
+    headers["functexcept.h"]             = "stdexcept";
     headers["stdexcept.h"]              = "stdexcept";
+    headers["stream_iterator.h"]        = "iterator";
+    headers["streambuf_iterator.h"]     = "iterator";
     headers["streambuf.h"]              = "streambuf";
     headers["streambuf.tcc"]            = "streambuf";
     headers["string.h"]                 = "string";
+    headers["char_traits.h"]            = "string";
+    headers["postypes.h"]               = "string";
+    headers["basic_string.h"]           = "string";
+    headers["basic_string.tcc"]         = "string";
     headers["tempbuf.h"]                = "memory";
-    //headers["threads.h"]                who knows
     headers["tree.h"]                   = "backward/tree.h";
     headers["uninitialized.h"]          = "memory";
     headers["utility.h"]                = "utility";
+    headers["gslice.h"]                 = "valarray";
+    headers["gslice_array.h"]           = "valarray";
+    headers["indirect_array.h"]         = "valarray";
+    headers["mask_array.h"]             = "valarray";
+    headers["slice_array.h"]            = "valarray";
     headers["valarray.h"]               = "valarray";
+    headers["valarray_after.h"]         = "valarray";
+    headers["valarray_before.h"]        = "valarray";
     headers["valarray_array.h"]         = "valarray";
     headers["valarray_array.tcc"]       = "valarray";
     headers["valarray_meta.h"]          = "valarray";
     headers["vector.h"]                 = "vector";
 
+    //headers["threads.h"]                 who knows
+    //headers["concurrence.h"]             who knows
+    //headers["atomicity.h"]               who knows
+
     // C wrappers -- probably was an easier way to do these, but oh well
     headers["cassert.h"]                = "cassert";
     headers["cctype.h"]                 = "cctype";
@@ -149,5 +167,4 @@ int main (int argc, char**)
         do_word (w);
 }
 
-// vim:ts=4:et:
 
index e606060b3c085b2308a93448159747f7b52c6125..6c99c82ed56b375eeb70d5542e7ef5b162795987 100644 (file)
@@ -1,4 +1,4 @@
-# Doxyfile 1.3-rc2
+# Doxyfile 1.3.7
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project
 #       TAG += value [value, ...]
 # Values that contain spaces should be placed between quotes (" ")
 
-### When doxygen is run, the current directory is the top of the
-### libstdc++-v3 build directory.  Keep this in mind while writing
-### relative-path directories.
-###
-### Currently this is not really run through autoconf; it just looks that way.
-
-
 #---------------------------------------------------------------------------
-# General configuration options
+# Project related configuration options
 #---------------------------------------------------------------------------
 
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
@@ -39,17 +32,181 @@ PROJECT_NUMBER         =
 
 OUTPUT_DIRECTORY       = @outdir@
 
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 2 levels of 10 sub-directories under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of source 
+# files, where putting all generated files in the same directory would otherwise 
+# cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all 
 # documentation generated by doxygen is written. Doxygen will use this 
 # information to generate all constant output in the proper language. 
 # The default language is English, other supported languages are: 
 # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, 
 # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en 
-# (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, 
-# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian.
+# (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, 
+# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
 
 OUTPUT_LANGUAGE        = English
 
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is used 
+# as the annotated text. Otherwise, the brief description is used as-is. If left 
+# blank, the following values are used ("$name" is automatically replaced with the 
+# name of the entity): "The $name class" "The $name widget" "The $name file" 
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = YES
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = YES
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = "doctodo=@todo\nDoc me!  See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." \
+                         "isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink"
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
+# only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
 # documentation are documented, even if no documentation was available. 
 # Private class members and static file members will be hidden unless 
@@ -73,6 +230,13 @@ EXTRACT_STATIC         = YES
 
 EXTRACT_LOCAL_CLASSES  = NO
 
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
 # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
 # undocumented members of documented classes, files or namespaces. 
 # If set to NO (the default) these members will be included in the 
@@ -83,7 +247,7 @@ HIDE_UNDOC_MEMBERS     = YES
 
 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
 # undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these class will be included in the various 
+# If set to NO (the default) these classes will be included in the various 
 # overviews. This option has no effect if EXTRACT_ALL is enabled.
 
 HIDE_UNDOC_CLASSES     = YES
@@ -102,47 +266,6 @@ HIDE_FRIEND_COMPOUNDS  = NO
 
 HIDE_IN_BODY_DOCS      = NO
 
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
-# members of a class in the documentation of that class as if those members were 
-# ordinary class members. Constructors, destructors and assignment operators of 
-# the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = YES
-# pedwards -- this is useful, but ch27 gets huge
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH        = 
-
 # The INTERNAL_DOCS tag determines if documentation 
 # that is typed after a \internal command is included. If the tag is set 
 # to NO (the default) then the documentation will be excluded. 
@@ -151,66 +274,25 @@ STRIP_FROM_PATH        =
 INTERNAL_DOCS          = NO
 
 # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower case letters. If set to YES upper case letters are also 
+# file names in lower-case letters. If set to YES upper-case letters are also 
 # allowed. This is useful if you have classes or files whose names only differ 
 # in case and if your file system supports case sensitive file names. Windows 
-# users are adviced to set this option to NO.
+# users are advised to set this option to NO.
 
 CASE_SENSE_NAMES       = NO
 
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
 # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
 # will show members with their full class and namespace scopes in the 
 # documentation. If set to YES the scope will be hidden.
 
 HIDE_SCOPE_NAMES       = NO
 
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = NO
-
 # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put list of the files that are included by a file in the documentation 
+# will put list of the files that are included by a file in the documentation 
 # of that file.
 
 SHOW_INCLUDE_FILES     = YES
 
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments  will behave just like the Qt-style comments (thus requiring an 
-# explict @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = YES
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# reimplements.
-
-INHERIT_DOCS           = YES
-
 # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
 # is inserted in the documentation for inline members.
 
@@ -223,17 +305,22 @@ INLINE_INFO            = YES
 
 SORT_MEMBER_DOCS       = YES
 
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
 
-DISTRIBUTE_GROUP_DOC   = YES
+SORT_BRIEF_DOCS        = NO
 
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
 
-TAB_SIZE               = 4
+SORT_BY_SCOPE_NAME     = NO
 
 # The GENERATE_TODOLIST tag can be used to enable (YES) or 
 # disable (NO) the todo list. This list is created by putting \todo 
@@ -259,23 +346,13 @@ GENERATE_BUGLIST       = YES
 
 GENERATE_DEPRECATEDLIST= YES
 
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = "doctodo=@todo\nDoc me!  See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." \
-                         "isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink"
-
 # The ENABLED_SECTIONS tag can be used to enable conditional 
 # documentation sections, marked by \if sectionname ... \endif.
 
 ENABLED_SECTIONS       = @enabled_sections@
 
 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consist of for it to appear in 
+# the initial value of a variable or define consists of for it to appear in 
 # the documentation. If the initializer consists of more lines than specified 
 # here it will be hidden. Use a value of 0 to hide initializers completely. 
 # The appearance of the initializer of individual variables and defines in the 
@@ -284,20 +361,6 @@ ENABLED_SECTIONS       = @enabled_sections@
 
 MAX_INITIALIZER_LINES  = 0
 
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
-# only. Doxygen will then generate output that is more tailored for C. 
-# For instance some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
-# only. Doxygen will then generate output that is more tailored for Java. 
-# For instance namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
 # at the bottom of the documentation of classes and structs. If set to YES the 
 # list will mention the files that were used to generate the documentation.
@@ -361,14 +424,12 @@ INPUT                  = @srcdir@/docs/doxygen/doxygroups.cc \
                          @srcdir@/libsupc++/typeinfo \
                          include
 
-
-
 # If the value of the INPUT tag contains directories, you can use the 
 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
 # and *.h) to filter out the source-files in the directories. If left 
-# blank file matching one of the following patterns are included: 
-# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
-# *.h++ *.idl
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
 
 FILE_PATTERNS          = *
 
@@ -385,7 +446,7 @@ RECURSIVE              = YES
 EXCLUDE                = Makefile \
                          CVS \
                          include/bits/demangle.h \
-                        stdc++.h.gch
+                         stdc++.h.gch
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
 # that are symbolic links (a Unix filesystem feature) are excluded from the input.
@@ -399,7 +460,7 @@ EXCLUDE_SYMLINKS       = NO
 EXCLUDE_PATTERNS       = CVS \
                          stamp-* \
                          Makefile \
-                        *gch*
+                         *gch*
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or 
 # directories that contain example code fragments that are included (see 
@@ -447,7 +508,9 @@ FILTER_SOURCE_FILES    = NO
 #---------------------------------------------------------------------------
 
 # If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources.
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
 
 SOURCE_BROWSER         = YES
 
@@ -474,6 +537,12 @@ REFERENCED_BY_RELATION = YES
 
 REFERENCES_RELATION    = YES
 
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
@@ -512,8 +581,8 @@ GENERATE_HTML          = @do_html@
 
 HTML_OUTPUT            = @html_output_dir@
 
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
 # doxygen will generate files with .html extension.
 
 HTML_FILE_EXTENSION    = .html
@@ -530,10 +599,12 @@ HTML_HEADER            =
 
 HTML_FOOTER            = 
 
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
 # style sheet that is used by each HTML page. It can be used to 
 # fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
 
 HTML_STYLESHEET        = @srcdir@/docs/doxygen/style.css
 
@@ -553,14 +624,14 @@ GENERATE_HTMLHELP      = NO
 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
 # be used to specify the file name of the resulting .chm file. You 
 # can add a path in front of the file if the result should not be 
-# written to the html output dir.
+# written to the html output directory.
 
 CHM_FILE               = 
 
 # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
 # be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non empty doxygen will try to run 
-# the html help compiler on the generated index.hhp.
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
 
 HHC_LOCATION           = 
 
@@ -577,7 +648,7 @@ GENERATE_CHI           = NO
 BINARY_TOC             = NO
 
 # The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the Html help documentation and to the tree view.
+# to the contents of the HTML help documentation and to the tree view.
 
 TOC_EXPAND             = NO
 
@@ -595,10 +666,9 @@ ENUM_VALUES_PER_LINE   = 4
 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
 # generated containing a tree-like index structure (just like the one that 
 # is generated for HTML Help). For this to work a browser that supports 
-# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
-# or Internet explorer 4.0+). Note that for large projects the tree generation 
-# can take a very long time. In such cases it is better to disable this feature. 
-# Windows users are probably better off using the HTML help feature.
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
 
 GENERATE_TREEVIEW      = NO
 
@@ -678,12 +748,18 @@ USE_PDFLATEX           = NO
 
 LATEX_BATCHMODE        = NO
 
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the RTF output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimised for Word 97 and may not look very pretty with 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
 # other RTF readers or editors.
 
 GENERATE_RTF           = NO
@@ -710,7 +786,7 @@ COMPACT_RTF            = NO
 RTF_HYPERLINKS         = NO
 
 # Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assigments. You only have to provide 
+# config file, i.e. a series of assignments. You only have to provide 
 # replacements, missing definitions are set to their default value.
 
 RTF_STYLESHEET_FILE    = 
@@ -754,12 +830,16 @@ MAN_LINKS              = NO
 
 # If the GENERATE_XML tag is set to YES Doxygen will 
 # generate an XML file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
+# the code including all documentation.
 
 GENERATE_XML           = NO
 
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
 # The XML_SCHEMA tag can be used to specify an XML schema, 
 # which can be used by a validating XML parser to check the 
 # syntax of the XML files.
@@ -772,6 +852,13 @@ XML_SCHEMA             =
 
 XML_DTD                = 
 
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
 #---------------------------------------------------------------------------
 # configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
@@ -864,21 +951,16 @@ INCLUDE_FILE_PATTERNS  =
 # or name=definition (no spaces). If the definition and the = are 
 # omitted =1 is assumed.
 
-### The deprecated functions are clearly marked as such in the code, but
-### the DEPRECATED macro must be defined for that code to be seen by doxygen.
-### The class_requires macros are kludges because SKIP_FUNCTION_MACROS is
-### completely broken, and the presence of the macros confuses the parser.
-
-PREDEFINED             = _GLIBCXX_DEPRECATED              \
-                         _GLIBCXX_USE_WCHAR_T             \
-                         _GLIBCXX_USE_LONG_LONG           \
-                         __glibcxx_class_requires="//"    \
-                         __glibcxx_class_requires2="//"   \
-                         __glibcxx_class_requires3="//"   \
-                         __glibcxx_class_requires4="//"
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded.
+PREDEFINED             = _GLIBCXX_DEPRECATED \
+                         _GLIBCXX_USE_WCHAR_T \
+                         _GLIBCXX_USE_LONG_LONG \
+                         __glibcxx_class_requires=// \
+                         __glibcxx_class_requires2=// \
+                         __glibcxx_class_requires3=// \
+                         __glibcxx_class_requires4=//
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
 # The macro definition that is found in the sources will be used. 
 # Use the PREDEFINED tag if you want to use a different macro definition.
 
@@ -886,16 +968,30 @@ EXPAND_AS_DEFINED      =
 
 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
 # doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line and do not end with a semicolon. Such function macros are typically 
-# used for boiler-plate code, and will confuse the parser if not removed.
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse the 
+# parser if not removed.
 
 SKIP_FUNCTION_MACROS   = YES
 
 #---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
+# Configuration::additions related to external references   
 #---------------------------------------------------------------------------
 
-# The TAGFILES tag can be used to specify one or more tagfiles.
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
 
 TAGFILES               = 
 
@@ -926,10 +1022,10 @@ PERL_PATH              = /usr/bin/perl
 #---------------------------------------------------------------------------
 
 # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or 
 # super classes. Setting the tag to NO turns the diagrams off. Note that this 
-# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
-# recommended to install and use dot, since it yield more powerful graphs.
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yields more powerful graphs.
 
 CLASS_DIAGRAMS         = YES
 
@@ -960,6 +1056,12 @@ CLASS_GRAPH            = YES
 
 COLLABORATION_GRAPH    = YES
 
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
 # If set to YES, the inheritance and collaboration graphs will show the 
 # relations between templates and their instances.
 
@@ -979,6 +1081,14 @@ INCLUDE_GRAPH          = YES
 
 INCLUDED_BY_GRAPH      = YES
 
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
 # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
 # will graphical hierarchy of all classes instead of a textual one.
 
@@ -1017,6 +1127,17 @@ MAX_DOT_GRAPH_WIDTH    = 1024
 
 MAX_DOT_GRAPH_HEIGHT   = 1024
 
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes that 
+# lay further from the root node will be omitted. Note that setting this option to 
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also 
+# note that a graph may be further truncated if the graph's image dimensions are 
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). 
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
 # generate a legend page explaining the meaning of the various boxes and 
 # arrows in the dot generated graphs.
@@ -1024,51 +1145,16 @@ MAX_DOT_GRAPH_HEIGHT   = 1024
 GENERATE_LEGEND        = YES
 
 # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermedate dot files that are used to generate 
+# remove the intermediate dot files that are used to generate 
 # the various graphs.
 
 DOT_CLEANUP            = YES
 
 #---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
+# Configuration::additions related to the search engine   
 #---------------------------------------------------------------------------
 
 # The SEARCHENGINE tag specifies whether or not a search engine should be 
 # used. If set to NO the values of all tags below this one will be ignored.
 
 SEARCHENGINE           = NO
-
-# The CGI_NAME tag should be the name of the CGI script that 
-# starts the search engine (doxysearch) with the correct parameters. 
-# A script with this name will be generated by doxygen.
-
-CGI_NAME               = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the 
-# cgi binaries are located. See the documentation of your http daemon for 
-# details.
-
-CGI_URL                = 
-
-# The DOC_URL tag should be the absolute URL to the directory where the 
-# documentation is located. If left blank the absolute path to the 
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL                = 
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the 
-# documentation is located. If left blank the directory on the local machine 
-# will be used.
-
-DOC_ABSPATH            = 
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
-# is installed.
-
-BIN_ABSPATH            = /usr/local/bin/
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
-# documentation generated for other projects. This allows doxysearch to search 
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS          =