Tested Platforms
----------------

SunOS-5.8/gcc-3.0.2/tcl-8.3.4/Apache-2.0.28
SunOS-5.8/gcc-3.0.4/tcl-8.4b1/Apache-2.0.39
SunOS-5.9/gcc-3.1.1/tcl-8.4b1/Apache-2.0.40

Documentation
-------------

See http://tcl.apache.org/mod_tcl/

tcl_core.c:
  core routines, handlers, configuration, initialization
tcl_cmds.c:
  commands for reading and writing variables from apache structures (request_rec
  etc.)
tcl_misc.c:
  vasprintf() and asprintf() if your system doesn't have it
mod_tcl.h:
  includes, prototypes
