===============================================
MODIFIED VERSION OF THE OSE DOCUMENTATION TOOLS
===============================================

This directory contains versions of the freely available OSE tools
modified by Karlheinz Dorn (kdorn@erlh.siemens.de).  I (Doug Schmidt)
am grateful to him for contributing his efforts to help improve ACE.

The primary goal of the modifications was to create a <class>.hxx and
<class>.cxx file (for each class, struct, union included within the
original ACE header file) from the ACE *.h header files by collecting
the comments from that file and feeding them into the newly created
files, but keeping the ACE *.h file untouched.

This helps when making product documentation using commercial
documentation tools (e.g., GEORGE) by feeding in these newly created
files with a customizable layout.  The modifications should be an
upgrade to the original OSE-tools, but many bug-fixes are also done
for the OSE-tool files (some are listed below).

This extensions make it very easy to include new ACE versions into
commercial documentations without doing any painful modifications of
the deltas within a frozen ACE-version or directly within ACE source
files when a new release arises.

The vendor headers can be suppressed within the hiding.fmt file, so it
is possible to generate <class>.cxx and <class>.hxx files consisting
only of pure class description (hxx) and pure prototypes (cxx). Look
at the vendor.fmt file and change the field <vendor> in replacing it
with your company identifying line.

- added a new script class2hxxcxx for making a <class>.hxx file for each
  class, struct, union included in an ACE *.h file as well as a *.cxx
  file that includes the correct prototypes for all classes within that
  *.h file.

- added new script info2headsrc for creating a <class>.hxx file for each
  class, struct, union included in an ACE *.h file as well as a <class>.cxx
  file that includes the correct prototypes for that class.

- added a new script class2hxxcxxsingle for the feature listed above.

- added a new format file named "hiding.fmt" to control more fine grained output 
  of a class in separating/suppressing PUBLIC, PROTECTED, PRIVATE parts of a 
  class, struct, union for output explicitly.

- added a new format file named "vendor.fmt" to control vendor specific 
  compilation-unit headers as well as class and method headers for the newly 
  created <class>.hxx and <class>.cxx files. The information for these headers 
  is collected from the headers and comments of the according ACE *.h files.

- changed info2doc and info2src for the features listed above.

- added the ability for handling multiline ENUMs properly (class2info,info2doc).

- added the ability for handling operator functions properly (info2src).

- added the ability for handling template functions properly (info2src).

- added the ability for handling nested classes, structs, unions properly
  by introducing nawk-function recursion within info2doc (class2info, 
  info2doc, info2src).

- added the ability for handling default values properly (info2src).

------------------------------------------------------------------------------
Some bugs inherited from the original OSE-tools are remaining. So the 
developer of the *.h files should the following keep in mind:
------------------------------------------------------------------------------

- do not write multiline inheritance!

INCORRECT:

  class x :
	public y
  {
  }

CORRECT:

  class x : public y
  {
  }

- do not write multiline templates!

INCORRECT:

  template <class t,
		class u>
  class x 
  {
  }

CORRECT:

  template <class t,class u>
  class x 
  {
  }


