You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-cvs@tcl.apache.org by mx...@apache.org on 2018/11/28 22:52:05 UTC

[tcl-site] branch master updated (d52aca7 -> ba90284)

This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-site.git.


    from d52aca7  update doap_rivet.rdf
     new 9096053  new pages for release of rivet 3.1.0 and 2.4.0
     new ba90284  add manual pages for latest release (2.4.0 and 3.1.0)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 rivet/html/about.html                              |  59 ++---
 rivet/html/ajax.html                               |  41 ++--
 rivet/html/calendar.html                           |  41 ++--
 rivet/html/colorful_table.html                     |  41 ++--
 rivet/html/download.html                           |  59 ++---
 rivet/html/file_download.html                      |  41 ++--
 rivet/html/file_upload.html                        |  41 ++--
 rivet/html/hello_world.html                        |  41 ++--
 rivet/html/{templates.html => manuals.html}        | 141 +++++-------
 rivet/html/{rn-2-3.html => release-notes.html}     | 254 +++++++++++----------
 rivet/html/var_access.html                         |  41 ++--
 rivet/index.html                                   |  65 ++----
 rivet/{manual2.3 => manual2.4}/abort_code.html     |   0
 rivet/{manual2.3 => manual2.4}/abort_page.html     |   0
 .../{manual2.3 => manual2.4}/apache_log_error.html |   0
 rivet/{manual2.3 => manual2.4}/apache_table.html   |   0
 rivet/{manual2.3 => manual2.4}/asciiglyphs.html    |   0
 rivet/{manual2.3 => manual2.4}/calendar.html       |   0
 .../{manual2.3 => manual2.4}/calendar_package.html |   0
 rivet/{manual2.3 => manual2.4}/catch.html          |   0
 rivet/{manual2.3 => manual2.4}/clock_to_rfc.html   |   0
 rivet/{manual2.3 => manual2.4}/commands.html       |   0
 rivet/{manual2.3 => manual2.4}/cookie.html         |   0
 rivet/{manual2.3 => manual2.4}/debug.html          |   0
 rivet/{manual2.3 => manual2.4}/decode.html         |   0
 rivet/{manual2.3 => manual2.4}/dio.html            |   0
 rivet/{manual2.3 => manual2.4}/dio_package.html    |   0
 rivet/{manual2.3 => manual2.4}/diodisplay.html     |   0
 .../diodisplay_package.html                        |   0
 rivet/{manual2.3 => manual2.4}/directives.html     |   0
 rivet/{manual2.3 => manual2.4}/encode.html         |   0
 rivet/{manual2.3 => manual2.4}/entities.html       |   0
 rivet/{manual2.3 => manual2.4}/env.html            |   0
 .../escape_sgml_chars.html                         |   0
 .../escape_shell_command.html                      |   0
 rivet/{manual2.3 => manual2.4}/escape_string.html  |   0
 rivet/{manual2.3 => manual2.4}/examples.html       |   0
 rivet/{manual2.3 => manual2.4}/exit.html           |   0
 rivet/{manual2.3 => manual2.4}/fb.html             |   0
 rivet/{manual2.3 => manual2.4}/form.html           |   0
 rivet/{manual2.3 => manual2.4}/form_package.html   |   0
 rivet/{manual2.3 => manual2.4}/formbroker.html     |   0
 rivet/{manual2.3 => manual2.4}/headers.html        |   0
 rivet/{manual2.3 => manual2.4}/help.html           |   0
 rivet/{manual2.3 => manual2.4}/html.html           |   0
 rivet/{manual2.3 => manual2.4}/html_calendar.html  |   0
 rivet/{manual2.3 => manual2.4}/http_accept.html    |   0
 rivet/{manual3.0 => manual2.4}/images/acrobat.png  | Bin
 rivet/{manual3.0 => manual2.4}/images/blank.png    | Bin
 rivet/{picts => manual2.4/images}/calendar.png     | Bin
 rivet/{manual3.0 => manual2.4}/images/caution.png  | Bin
 .../images/color-table.png                         | Bin
 rivet/{manual3.0 => manual2.4}/images/disk.png     | Bin
 rivet/{manual3.0 => manual2.4}/images/draft.png    | Bin
 rivet/{manual3.0 => manual2.4}/images/home.png     | Bin
 .../{manual3.0 => manual2.4}/images/important.png  | Bin
 rivet/{manual3.0 => manual2.4}/images/next.png     | Bin
 rivet/{manual3.0 => manual2.4}/images/note.png     | Bin
 rivet/{manual3.0 => manual2.4}/images/prev.png     | Bin
 .../images/qbullet-note.png                        | Bin
 rivet/{manual3.0 => manual2.4}/images/remote.png   | Bin
 rivet/{manual3.0 => manual2.4}/images/scrollup.png | Bin
 rivet/{picts => manual2.4/images}/table.png        | Bin
 rivet/{manual3.0 => manual2.4}/images/tip.png      | Bin
 .../{manual3.0 => manual2.4}/images/toc-blank.png  | Bin
 .../{manual3.0 => manual2.4}/images/toc-minus.png  | Bin
 rivet/{manual3.0 => manual2.4}/images/toc-plus.png | Bin
 rivet/{manual3.0 => manual2.4}/images/up.png       | Bin
 rivet/{manual3.0 => manual2.4}/images/warning.png  | Bin
 rivet/{manual3.0 => manual2.4}/images/word.png     | Bin
 .../import_keyvalue_pairs.html                     |   0
 rivet/{manual2.3 => manual2.4}/include.html        |   0
 rivet/{manual2.3 => manual2.4}/incr0.html          |   0
 rivet/{manual2.3 => manual2.4}/index.html          |   8 +-
 rivet/{manual2.3 => manual2.4}/inspect.html        |   0
 rivet/{manual2.3 => manual2.4}/installation.html   |  10 +-
 rivet/{manual2.3 => manual2.4}/internals.html      |   0
 rivet/{manual2.3 => manual2.4}/lassign_array.html  |   0
 rivet/{manual2.3 => manual2.4}/lempty.html         |   0
 rivet/{manual2.3 => manual2.4}/lmatch.html         |   0
 rivet/{manual2.3 => manual2.4}/load_cookies.html   |   0
 rivet/{manual2.3 => manual2.4}/load_env.html       |   0
 rivet/{manual2.3 => manual2.4}/load_headers.html   |   0
 rivet/{manual2.3 => manual2.4}/load_response.html  |   0
 rivet/{manual2.3 => manual2.4}/lremove.html        |   0
 rivet/{manual2.3 => manual2.4}/makeurl.html        |   0
 rivet/{manual2.3 => manual2.4}/no_body.html        |   0
 rivet/{manual2.3 => manual2.4}/parray.html         |   0
 rivet/{manual2.3 => manual2.4}/parse.html          |   0
 rivet/{manual2.3 => manual2.4}/raw_post.html       |   0
 rivet/{manual2.3 => manual2.4}/read_file.html      |   0
 rivet/{manual2.3 => manual2.4}/redirect.html       |   0
 rivet/{manual2.3 => manual2.4}/request.html        |   0
 rivet/{manual2.3 => manual2.4}/rivet.css           |   0
 .../{manual2.3 => manual2.4}/session_package.html  |   0
 rivet/{manual2.3 => manual2.4}/shorthand.html      |   0
 rivet/{manual2.3 => manual2.4}/tcl_packages.html   |   0
 rivet/{manual2.3 => manual2.4}/toglyphs.html       |   0
 rivet/{manual2.3 => manual2.4}/try.html            |   0
 .../{manual2.3 => manual2.4}/unescape_string.html  |   0
 rivet/{manual2.3 => manual2.4}/upgrading.html      |   0
 rivet/{manual2.3 => manual2.4}/upload.html         |   0
 rivet/{manual2.3 => manual2.4}/url_query.html      |   0
 rivet/{manual2.3 => manual2.4}/var.html            |   0
 rivet/{manual2.3 => manual2.4}/wrap.html           |   0
 rivet/{manual2.3 => manual2.4}/wrapline.html       |   0
 rivet/{manual2.3 => manual2.4}/xml.html            |   0
 rivet/{manual2.3 => manual2.4}/xml_calendar.html   |   0
 rivet/{manual3.0 => manual3.1}/abort_code.html     |   4 +-
 rivet/{manual3.0 => manual3.1}/abort_page.html     |   8 +-
 .../{manual3.0 => manual3.1}/apache_log_error.html |   2 +-
 rivet/{manual3.0 => manual3.1}/apache_table.html   |   2 +-
 rivet/{manual3.0 => manual3.1}/asciiglyphs.html    |   4 +-
 rivet/{manual3.0 => manual3.1}/calendar.html       |   4 +-
 .../{manual3.0 => manual3.1}/calendar_package.html |   2 +-
 rivet/{manual3.0 => manual3.1}/catch.html          |   2 +-
 rivet/{manual3.0 => manual3.1}/clock_to_rfc.html   |   2 +-
 rivet/{manual3.0 => manual3.1}/cmake.html          |   6 +-
 rivet/{manual3.0 => manual3.1}/commands.html       |   2 +-
 rivet/{manual3.0 => manual3.1}/cookie.html         |   2 +-
 rivet/{manual3.0 => manual3.1}/debug.html          |   4 +-
 rivet/{manual3.0 => manual3.1}/decode.html         |   4 +-
 rivet/{manual3.0 => manual3.1}/dio.html            |   2 +-
 rivet/{manual3.0 => manual3.1}/dio_package.html    |   6 +-
 rivet/{manual3.0 => manual3.1}/diodisplay.html     |   2 +-
 .../diodisplay_package.html                        |  12 +-
 rivet/{manual3.0 => manual3.1}/directives.html     |   6 +-
 rivet/{manual3.0 => manual3.1}/encode.html         |   4 +-
 rivet/{manual3.0 => manual3.1}/entities.html       |   2 +-
 rivet/{manual3.0 => manual3.1}/env.html            |   4 +-
 .../escape_sgml_chars.html                         |   2 +-
 .../escape_shell_command.html                      |   2 +-
 rivet/{manual3.0 => manual3.1}/escape_string.html  |   2 +-
 rivet/{manual3.0 => manual3.1}/examples.html       |   4 +-
 rivet/{manual3.0 => manual3.1}/exit.html           |   2 +-
 rivet/{manual3.0 => manual3.1}/fb.html             |   8 +-
 rivet/{manual3.0 => manual3.1}/form.html           |   2 +-
 rivet/{manual2.3 => manual3.1}/form_package.html   |  68 +++---
 rivet/{manual3.0 => manual3.1}/formbroker.html     |   2 +-
 rivet/{manual3.0 => manual3.1}/headers.html        |   2 +-
 rivet/{manual3.0 => manual3.1}/help.html           |  10 +-
 rivet/{manual3.0 => manual3.1}/html.html           |   2 +-
 rivet/{manual3.0 => manual3.1}/html_calendar.html  |   4 +-
 rivet/{manual3.0 => manual3.1}/http_accept.html    |   4 +-
 rivet/{manual3.0 => manual3.1}/images/acrobat.png  | Bin
 rivet/{manual3.0 => manual3.1}/images/blank.png    | Bin
 rivet/{picts => manual3.1/images}/calendar.png     | Bin
 rivet/{manual3.0 => manual3.1}/images/caution.png  | Bin
 .../images/color-table.png                         | Bin
 rivet/{manual3.0 => manual3.1}/images/disk.png     | Bin
 rivet/{manual3.0 => manual3.1}/images/draft.png    | Bin
 rivet/{manual3.0 => manual3.1}/images/home.png     | Bin
 .../{manual3.0 => manual3.1}/images/important.png  | Bin
 rivet/{manual3.0 => manual3.1}/images/next.png     | Bin
 rivet/{manual3.0 => manual3.1}/images/note.png     | Bin
 rivet/{manual3.0 => manual3.1}/images/prev.png     | Bin
 .../images/qbullet-note.png                        | Bin
 rivet/{manual3.0 => manual3.1}/images/remote.png   | Bin
 rivet/{manual3.0 => manual3.1}/images/scrollup.png | Bin
 rivet/{picts => manual3.1/images}/table.png        | Bin
 rivet/{manual3.0 => manual3.1}/images/tip.png      | Bin
 .../{manual3.0 => manual3.1}/images/toc-blank.png  | Bin
 .../{manual3.0 => manual3.1}/images/toc-minus.png  | Bin
 rivet/{manual3.0 => manual3.1}/images/toc-plus.png | Bin
 rivet/{manual3.0 => manual3.1}/images/up.png       | Bin
 rivet/{manual3.0 => manual3.1}/images/warning.png  | Bin
 rivet/{manual3.0 => manual3.1}/images/word.png     | Bin
 .../import_keyvalue_pairs.html                     |   2 +-
 rivet/{manual3.0 => manual3.1}/include.html        |   2 +-
 rivet/{manual3.0 => manual3.1}/incr0.html          |   2 +-
 rivet/{manual3.0 => manual3.1}/index.html          |  30 +--
 rivet/{manual3.0 => manual3.1}/inspect.html        |   2 +-
 rivet/{manual3.0 => manual3.1}/installation.html   |  16 +-
 rivet/{manual3.0 => manual3.1}/internals.html      |  20 +-
 rivet/{manual3.0 => manual3.1}/lassign_array.html  |   2 +-
 rivet/{manual3.0 => manual3.1}/lazybridge.html     |   8 +-
 rivet/{manual3.0 => manual3.1}/lempty.html         |   4 +-
 rivet/{manual3.0 => manual3.1}/lmatch.html         |   4 +-
 rivet/{manual3.0 => manual3.1}/load_cookies.html   |   2 +-
 rivet/{manual3.0 => manual3.1}/load_env.html       |   2 +-
 rivet/{manual3.0 => manual3.1}/load_headers.html   |   2 +-
 rivet/{manual3.0 => manual3.1}/load_response.html  |   2 +-
 rivet/{manual3.0 => manual3.1}/lremove.html        |   2 +-
 rivet/{manual3.0 => manual3.1}/makeurl.html        |   2 +-
 rivet/{manual3.0 => manual3.1}/no_body.html        |   2 +-
 rivet/{manual3.0 => manual3.1}/parray.html         |   2 +-
 rivet/{manual3.0 => manual3.1}/parse.html          |   2 +-
 rivet/{manual3.0 => manual3.1}/processing.html     |   6 +-
 rivet/{manual3.0 => manual3.1}/raw_post.html       |   2 +-
 rivet/{manual3.0 => manual3.1}/read_file.html      |   4 +-
 rivet/{manual3.0 => manual3.1}/redirect.html       |   2 +-
 rivet/{manual3.0 => manual3.1}/request.html        |  14 +-
 rivet/{manual3.0 => manual3.1}/rivet.css           |   0
 .../{manual2.3 => manual3.1}/session_package.html  |  14 +-
 rivet/{manual3.0 => manual3.1}/shorthand.html      |   4 +-
 rivet/{manual3.0 => manual3.1}/tcl_packages.html   |   2 +-
 rivet/{manual3.0 => manual3.1}/toglyphs.html       |   4 +-
 rivet/{manual3.0 => manual3.1}/try.html            |   6 +-
 .../{manual3.0 => manual3.1}/unescape_string.html  |   2 +-
 rivet/{manual3.0 => manual3.1}/upload.html         |   2 +-
 rivet/{manual3.0 => manual3.1}/url_script.html     |   2 +-
 rivet/{manual3.0 => manual3.1}/var.html            |   2 +-
 rivet/{manual3.0 => manual3.1}/wrap.html           |   4 +-
 rivet/{manual3.0 => manual3.1}/wrapline.html       |   4 +-
 rivet/{manual3.0 => manual3.1}/xml.html            |   4 +-
 rivet/{manual3.0 => manual3.1}/xml_calendar.html   |   6 +-
 rivet/templates/wondrous/external-link-16.png      | Bin 0 -> 398 bytes
 rivet/templates/wondrous/link-16-white.png         | Bin 0 -> 483 bytes
 .../wondrous/picts}/bodybg.jpg                     | Bin
 .../wondrous/picts}/h4-bg.png                      | Bin
 rivet/templates/wondrous/styles.css                |  22 +-
 211 files changed, 616 insertions(+), 683 deletions(-)
 copy rivet/html/{templates.html => manuals.html} (50%)
 copy rivet/html/{rn-2-3.html => release-notes.html} (56%)
 copy rivet/{manual2.3 => manual2.4}/abort_code.html (100%)
 copy rivet/{manual2.3 => manual2.4}/abort_page.html (100%)
 copy rivet/{manual2.3 => manual2.4}/apache_log_error.html (100%)
 copy rivet/{manual2.3 => manual2.4}/apache_table.html (100%)
 copy rivet/{manual2.3 => manual2.4}/asciiglyphs.html (100%)
 copy rivet/{manual2.3 => manual2.4}/calendar.html (100%)
 copy rivet/{manual2.3 => manual2.4}/calendar_package.html (100%)
 copy rivet/{manual2.3 => manual2.4}/catch.html (100%)
 copy rivet/{manual2.3 => manual2.4}/clock_to_rfc.html (100%)
 copy rivet/{manual2.3 => manual2.4}/commands.html (100%)
 copy rivet/{manual2.3 => manual2.4}/cookie.html (100%)
 copy rivet/{manual2.3 => manual2.4}/debug.html (100%)
 copy rivet/{manual2.3 => manual2.4}/decode.html (100%)
 copy rivet/{manual2.3 => manual2.4}/dio.html (100%)
 copy rivet/{manual2.3 => manual2.4}/dio_package.html (100%)
 copy rivet/{manual2.3 => manual2.4}/diodisplay.html (100%)
 copy rivet/{manual2.3 => manual2.4}/diodisplay_package.html (100%)
 copy rivet/{manual2.3 => manual2.4}/directives.html (100%)
 copy rivet/{manual2.3 => manual2.4}/encode.html (100%)
 copy rivet/{manual2.3 => manual2.4}/entities.html (100%)
 copy rivet/{manual2.3 => manual2.4}/env.html (100%)
 copy rivet/{manual2.3 => manual2.4}/escape_sgml_chars.html (100%)
 copy rivet/{manual2.3 => manual2.4}/escape_shell_command.html (100%)
 copy rivet/{manual2.3 => manual2.4}/escape_string.html (100%)
 copy rivet/{manual2.3 => manual2.4}/examples.html (100%)
 copy rivet/{manual2.3 => manual2.4}/exit.html (100%)
 copy rivet/{manual2.3 => manual2.4}/fb.html (100%)
 copy rivet/{manual2.3 => manual2.4}/form.html (100%)
 copy rivet/{manual2.3 => manual2.4}/form_package.html (100%)
 copy rivet/{manual2.3 => manual2.4}/formbroker.html (100%)
 copy rivet/{manual2.3 => manual2.4}/headers.html (100%)
 copy rivet/{manual2.3 => manual2.4}/help.html (100%)
 copy rivet/{manual2.3 => manual2.4}/html.html (100%)
 copy rivet/{manual2.3 => manual2.4}/html_calendar.html (100%)
 copy rivet/{manual2.3 => manual2.4}/http_accept.html (100%)
 copy rivet/{manual3.0 => manual2.4}/images/acrobat.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/blank.png (100%)
 copy rivet/{picts => manual2.4/images}/calendar.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/caution.png (100%)
 copy rivet/{manual2.3 => manual2.4}/images/color-table.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/disk.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/draft.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/home.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/important.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/next.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/note.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/prev.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/qbullet-note.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/remote.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/scrollup.png (100%)
 copy rivet/{picts => manual2.4/images}/table.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/tip.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/toc-blank.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/toc-minus.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/toc-plus.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/up.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/warning.png (100%)
 copy rivet/{manual3.0 => manual2.4}/images/word.png (100%)
 copy rivet/{manual2.3 => manual2.4}/import_keyvalue_pairs.html (100%)
 copy rivet/{manual2.3 => manual2.4}/include.html (100%)
 copy rivet/{manual2.3 => manual2.4}/incr0.html (100%)
 copy rivet/{manual2.3 => manual2.4}/index.html (98%)
 copy rivet/{manual2.3 => manual2.4}/inspect.html (100%)
 copy rivet/{manual2.3 => manual2.4}/installation.html (97%)
 copy rivet/{manual2.3 => manual2.4}/internals.html (100%)
 copy rivet/{manual2.3 => manual2.4}/lassign_array.html (100%)
 copy rivet/{manual2.3 => manual2.4}/lempty.html (100%)
 copy rivet/{manual2.3 => manual2.4}/lmatch.html (100%)
 copy rivet/{manual2.3 => manual2.4}/load_cookies.html (100%)
 copy rivet/{manual2.3 => manual2.4}/load_env.html (100%)
 copy rivet/{manual2.3 => manual2.4}/load_headers.html (100%)
 copy rivet/{manual2.3 => manual2.4}/load_response.html (100%)
 copy rivet/{manual2.3 => manual2.4}/lremove.html (100%)
 copy rivet/{manual2.3 => manual2.4}/makeurl.html (100%)
 copy rivet/{manual2.3 => manual2.4}/no_body.html (100%)
 copy rivet/{manual2.3 => manual2.4}/parray.html (100%)
 copy rivet/{manual2.3 => manual2.4}/parse.html (100%)
 copy rivet/{manual2.3 => manual2.4}/raw_post.html (100%)
 copy rivet/{manual2.3 => manual2.4}/read_file.html (100%)
 copy rivet/{manual2.3 => manual2.4}/redirect.html (100%)
 copy rivet/{manual2.3 => manual2.4}/request.html (100%)
 copy rivet/{manual2.3 => manual2.4}/rivet.css (100%)
 copy rivet/{manual2.3 => manual2.4}/session_package.html (100%)
 copy rivet/{manual2.3 => manual2.4}/shorthand.html (100%)
 copy rivet/{manual2.3 => manual2.4}/tcl_packages.html (100%)
 copy rivet/{manual2.3 => manual2.4}/toglyphs.html (100%)
 copy rivet/{manual2.3 => manual2.4}/try.html (100%)
 copy rivet/{manual2.3 => manual2.4}/unescape_string.html (100%)
 copy rivet/{manual2.3 => manual2.4}/upgrading.html (100%)
 copy rivet/{manual2.3 => manual2.4}/upload.html (100%)
 copy rivet/{manual2.3 => manual2.4}/url_query.html (100%)
 copy rivet/{manual2.3 => manual2.4}/var.html (100%)
 copy rivet/{manual2.3 => manual2.4}/wrap.html (100%)
 copy rivet/{manual2.3 => manual2.4}/wrapline.html (100%)
 copy rivet/{manual2.3 => manual2.4}/xml.html (100%)
 copy rivet/{manual2.3 => manual2.4}/xml_calendar.html (100%)
 copy rivet/{manual3.0 => manual3.1}/abort_code.html (94%)
 copy rivet/{manual3.0 => manual3.1}/abort_page.html (93%)
 copy rivet/{manual3.0 => manual3.1}/apache_log_error.html (94%)
 copy rivet/{manual3.0 => manual3.1}/apache_table.html (98%)
 copy rivet/{manual3.0 => manual3.1}/asciiglyphs.html (89%)
 copy rivet/{manual3.0 => manual3.1}/calendar.html (93%)
 copy rivet/{manual3.0 => manual3.1}/calendar_package.html (94%)
 copy rivet/{manual3.0 => manual3.1}/catch.html (97%)
 copy rivet/{manual3.0 => manual3.1}/clock_to_rfc.html (93%)
 copy rivet/{manual3.0 => manual3.1}/cmake.html (82%)
 copy rivet/{manual3.0 => manual3.1}/commands.html (95%)
 copy rivet/{manual3.0 => manual3.1}/cookie.html (97%)
 copy rivet/{manual3.0 => manual3.1}/debug.html (95%)
 copy rivet/{manual3.0 => manual3.1}/decode.html (95%)
 copy rivet/{manual3.0 => manual3.1}/dio.html (93%)
 copy rivet/{manual3.0 => manual3.1}/dio_package.html (97%)
 copy rivet/{manual3.0 => manual3.1}/diodisplay.html (96%)
 copy rivet/{manual3.0 => manual3.1}/diodisplay_package.html (98%)
 copy rivet/{manual3.0 => manual3.1}/directives.html (91%)
 copy rivet/{manual3.0 => manual3.1}/encode.html (94%)
 copy rivet/{manual3.0 => manual3.1}/entities.html (91%)
 copy rivet/{manual3.0 => manual3.1}/env.html (92%)
 copy rivet/{manual3.0 => manual3.1}/escape_sgml_chars.html (94%)
 copy rivet/{manual3.0 => manual3.1}/escape_shell_command.html (93%)
 copy rivet/{manual3.0 => manual3.1}/escape_string.html (95%)
 copy rivet/{manual3.0 => manual3.1}/examples.html (98%)
 copy rivet/{manual3.0 => manual3.1}/exit.html (97%)
 copy rivet/{manual3.0 => manual3.1}/fb.html (98%)
 copy rivet/{manual3.0 => manual3.1}/form.html (93%)
 copy rivet/{manual2.3 => manual3.1}/form_package.html (90%)
 copy rivet/{manual3.0 => manual3.1}/formbroker.html (92%)
 copy rivet/{manual3.0 => manual3.1}/headers.html (98%)
 copy rivet/{manual3.0 => manual3.1}/help.html (88%)
 copy rivet/{manual3.0 => manual3.1}/html.html (94%)
 copy rivet/{manual3.0 => manual3.1}/html_calendar.html (94%)
 copy rivet/{manual3.0 => manual3.1}/http_accept.html (96%)
 copy rivet/{manual3.0 => manual3.1}/images/acrobat.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/blank.png (100%)
 copy rivet/{picts => manual3.1/images}/calendar.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/caution.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/color-table.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/disk.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/draft.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/home.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/important.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/next.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/note.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/prev.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/qbullet-note.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/remote.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/scrollup.png (100%)
 copy rivet/{picts => manual3.1/images}/table.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/tip.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/toc-blank.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/toc-minus.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/toc-plus.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/up.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/warning.png (100%)
 copy rivet/{manual3.0 => manual3.1}/images/word.png (100%)
 copy rivet/{manual3.0 => manual3.1}/import_keyvalue_pairs.html (94%)
 copy rivet/{manual3.0 => manual3.1}/include.html (93%)
 copy rivet/{manual3.0 => manual3.1}/incr0.html (95%)
 copy rivet/{manual3.0 => manual3.1}/index.html (64%)
 copy rivet/{manual3.0 => manual3.1}/inspect.html (97%)
 copy rivet/{manual3.0 => manual3.1}/installation.html (94%)
 copy rivet/{manual3.0 => manual3.1}/internals.html (94%)
 copy rivet/{manual3.0 => manual3.1}/lassign_array.html (96%)
 copy rivet/{manual3.0 => manual3.1}/lazybridge.html (97%)
 copy rivet/{manual3.0 => manual3.1}/lempty.html (94%)
 copy rivet/{manual3.0 => manual3.1}/lmatch.html (94%)
 copy rivet/{manual3.0 => manual3.1}/load_cookies.html (93%)
 copy rivet/{manual3.0 => manual3.1}/load_env.html (94%)
 copy rivet/{manual3.0 => manual3.1}/load_headers.html (94%)
 copy rivet/{manual3.0 => manual3.1}/load_response.html (96%)
 copy rivet/{manual3.0 => manual3.1}/lremove.html (94%)
 copy rivet/{manual3.0 => manual3.1}/makeurl.html (94%)
 copy rivet/{manual3.0 => manual3.1}/no_body.html (94%)
 copy rivet/{manual3.0 => manual3.1}/parray.html (95%)
 copy rivet/{manual3.0 => manual3.1}/parse.html (93%)
 copy rivet/{manual3.0 => manual3.1}/processing.html (95%)
 copy rivet/{manual3.0 => manual3.1}/raw_post.html (93%)
 copy rivet/{manual3.0 => manual3.1}/read_file.html (93%)
 copy rivet/{manual3.0 => manual3.1}/redirect.html (96%)
 copy rivet/{manual3.0 => manual3.1}/request.html (93%)
 copy rivet/{manual3.0 => manual3.1}/rivet.css (100%)
 copy rivet/{manual2.3 => manual3.1}/session_package.html (92%)
 copy rivet/{manual3.0 => manual3.1}/shorthand.html (95%)
 copy rivet/{manual3.0 => manual3.1}/tcl_packages.html (95%)
 copy rivet/{manual3.0 => manual3.1}/toglyphs.html (93%)
 copy rivet/{manual3.0 => manual3.1}/try.html (97%)
 copy rivet/{manual3.0 => manual3.1}/unescape_string.html (94%)
 copy rivet/{manual3.0 => manual3.1}/upload.html (98%)
 copy rivet/{manual3.0 => manual3.1}/url_script.html (94%)
 copy rivet/{manual3.0 => manual3.1}/var.html (98%)
 copy rivet/{manual3.0 => manual3.1}/wrap.html (94%)
 copy rivet/{manual3.0 => manual3.1}/wrapline.html (94%)
 copy rivet/{manual3.0 => manual3.1}/xml.html (97%)
 copy rivet/{manual3.0 => manual3.1}/xml_calendar.html (93%)
 create mode 100644 rivet/templates/wondrous/external-link-16.png
 create mode 100644 rivet/templates/wondrous/link-16-white.png
 copy rivet/{picts/wondrous => templates/wondrous/picts}/bodybg.jpg (100%)
 copy rivet/{picts/wondrous => templates/wondrous/picts}/h4-bg.png (100%)


---------------------------------------------------------------------
To unsubscribe, e-mail: site-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: site-cvs-help@tcl.apache.org


[tcl-site] 01/02: new pages for release of rivet 3.1.0 and 2.4.0

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-site.git

commit 90960537c45f1861dadf29288ec4bce3d5383d95
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Wed Nov 28 23:45:22 2018 +0100

    new pages for release of rivet 3.1.0 and 2.4.0
---
 rivet/html/about.html                         |  59 ++---
 rivet/html/ajax.html                          |  41 ++--
 rivet/html/calendar.html                      |  41 ++--
 rivet/html/colorful_table.html                |  41 ++--
 rivet/html/download.html                      |  59 ++---
 rivet/html/file_download.html                 |  41 ++--
 rivet/html/file_upload.html                   |  41 ++--
 rivet/html/hello_world.html                   |  41 ++--
 rivet/html/manuals.html                       | 132 +++++++++++
 rivet/html/release-notes.html                 | 307 ++++++++++++++++++++++++++
 rivet/html/var_access.html                    |  41 ++--
 rivet/index.html                              |  65 ++----
 rivet/templates/wondrous/external-link-16.png | Bin 0 -> 398 bytes
 rivet/templates/wondrous/link-16-white.png    | Bin 0 -> 483 bytes
 rivet/templates/wondrous/picts/bodybg.jpg     | Bin 0 -> 1261 bytes
 rivet/templates/wondrous/picts/h4-bg.png      | Bin 0 -> 350 bytes
 rivet/templates/wondrous/styles.css           |  22 +-
 17 files changed, 666 insertions(+), 265 deletions(-)

diff --git a/rivet/html/about.html b/rivet/html/about.html
index c3f030c..9f0964e 100644
--- a/rivet/html/about.html
+++ b/rivet/html/about.html
@@ -90,75 +90,48 @@
 
             <div class="sidebar">
                 <ul>
-                    <li id="news">
-    <h4>News</h4>
-    <ul class="blocklist">
-        <li class="navitem">
-            <a href="rn%2d2%2d3.html">11 Nov 2017: Rivet 2.3.5 released</a>
-        </li>
-        <li class="navitem">
-            <a href="rn%2d3%2d0.html">18 Nov 2018: Rivet 3.0.3 released</a>
-        </li>
-    </ul>
-</li>
- 
+                     
                 </ul> 
                 <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
-        </li>
-        <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
-        </li>
-    </ul>
-</li>
-<li id="tcl">
-    <h4>Tcl/Tk</h4>
-    <ul class="blocklist">
-        <li class="navitem">
-            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">
-                The Tcl/Tk Language
-                </a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
             <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
-        </li>
-        <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
-<li id="support">
-    <h4>Support</h4>
+<li id="documentation">
+    <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/ajax.html b/rivet/html/ajax.html
index ec60348..a612efb 100644
--- a/rivet/html/ajax.html
+++ b/rivet/html/ajax.html
@@ -180,47 +180,52 @@ if {[var exists load]} {
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/html/calendar.html b/rivet/html/calendar.html
index 8054844..29e8e71 100644
--- a/rivet/html/calendar.html
+++ b/rivet/html/calendar.html
@@ -88,47 +88,52 @@ puts $html_txt</pre>
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/html/colorful_table.html b/rivet/html/colorful_table.html
index a266974..0706353 100644
--- a/rivet/html/colorful_table.html
+++ b/rivet/html/colorful_table.html
@@ -77,47 +77,52 @@ puts "&lt;/body&gt;&lt;/html&gt;"</pre>
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/html/download.html b/rivet/html/download.html
index b54a0a5..534f80a 100644
--- a/rivet/html/download.html
+++ b/rivet/html/download.html
@@ -107,75 +107,48 @@
 
             <div class="sidebar">
                 <ul>
-                    <li id="news">
-    <h4>News</h4>
-    <ul class="blocklist">
-        <li class="navitem">
-            <a href="rn%2d2%2d3.html">11 Nov 2017: Rivet 2.3.5 released</a>
-        </li>
-        <li class="navitem">
-            <a href="rn%2d3%2d0.html">18 Nov 2018: Rivet 3.0.3 released</a>
-        </li>
-    </ul>
-</li>
- 
+                     
                 </ul> 
                 <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
-        </li>
-        <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
-        </li>
-    </ul>
-</li>
-<li id="tcl">
-    <h4>Tcl/Tk</h4>
-    <ul class="blocklist">
-        <li class="navitem">
-            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">
-                The Tcl/Tk Language
-                </a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
             <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
-        </li>
-        <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
-<li id="support">
-    <h4>Support</h4>
+<li id="documentation">
+    <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/file_download.html b/rivet/html/file_download.html
index db624f6..fb424d2 100644
--- a/rivet/html/file_download.html
+++ b/rivet/html/file_download.html
@@ -121,47 +121,52 @@ if {[var exists pdfname]} {
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/html/file_upload.html b/rivet/html/file_upload.html
index 97afde6..7a1cbe8 100644
--- a/rivet/html/file_upload.html
+++ b/rivet/html/file_upload.html
@@ -81,47 +81,52 @@ puts "Saved file [upload filename MyUpload] \
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/html/hello_world.html b/rivet/html/hello_world.html
index bb44f65..894eba8 100644
--- a/rivet/html/hello_world.html
+++ b/rivet/html/hello_world.html
@@ -81,47 +81,52 @@
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/html/manuals.html b/rivet/html/manuals.html
new file mode 100644
index 0000000..e9fe6eb
--- /dev/null
+++ b/rivet/html/manuals.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Apache Rivet Manuals</title>
+    <link rel="stylesheet" href="../templates/wondrous/styles.css" type="text/css" />
+</head>
+
+<body>
+    <div id="container">
+        <div id="header">
+            <h1><a href="../index.html">Rivet</a></h1>
+            <h2 id="slogan">Webscripting for Tcl'ers</h2>
+            <div class="clear"></div>
+        </div>
+        <div id="body">
+            <div id="content">
+                <h2>Apache Rivet Manuals</h2>
+                <p>
+				Latest Rivet versions
+			</p>
+
+<ul>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual2.4/">Rivet 2.4</a>
+    </li>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual3.1/">Rivet 3.1</a>
+    </li>
+</ul>
+
+<p>
+				Other Rivet versions
+			</p>
+
+<ul>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+    </li>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+    </li>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+    </li>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+    </li>
+</ul>
+
+
+
+                <div class="contentbottom">
+                    
+                </div>
+            </div>
+
+            <div class="sidebar">
+                <ul>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+        </li>
+        <li class="navitem">
+            <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
+        </li>
+        <li class="navitem">
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
+        </li>
+        <li class="navitem">
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
+        </li>
+    </ul>
+</li>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+        </li>
+        <li class="navitem">
+            <a href="release%2dnotes.html">Release Notes</a>
+        </li>
+        <li class="navitem">
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
+        </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
+        </li>
+    </ul>
+</li>
+ 
+                </ul> 
+                <ul>
+                     
+                </ul> 
+                <ul>
+                    <li id="manual">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a title="Rivet 3.1" target="rivetman3.1" href="http://tcl.apache.org/rivet/manual3.1/">Rivet 3.1</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.4" target="rivetman2.4" href="http://tcl.apache.org/rivet/manual2.4/">Rivet 2.4</a>
+        </li>
+    </ul>
+</li>
+ 
+                </ul> 
+            </div>
+            <div class="clear"></div>
+        </div>
+    </div>
+    <div id="footer">
+        <div class="footer-content">
+            <p><a href="http://www.apache.org/">Apache Software Foundation</a> | Design by <a href="http://www.spyka.net">Free CSS Templates</a> | <a href="http://www.justfreetemplates.com">Free Web Templates</a></p>
+        </div>
+    </div>
+    <div style="text-align: center; font-size: 0.75em;">Design downloaded from <a href="http://www.freewebtemplates.com/">free website templates</a>.</div></body>
+</html>
+
diff --git a/rivet/html/release-notes.html b/rivet/html/release-notes.html
new file mode 100644
index 0000000..b3cf73c
--- /dev/null
+++ b/rivet/html/release-notes.html
@@ -0,0 +1,307 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Apache Rivet Release Notes</title>
+    <link rel="stylesheet" href="../templates/wondrous/styles.css" type="text/css" />
+</head>
+
+<body>
+    <div id="container">
+        <div id="header">
+            <h1><a href="../index.html">Rivet</a></h1>
+            <h2 id="slogan">Webscripting for Tcl'ers</h2>
+            <div class="clear"></div>
+        </div>
+        <div id="body">
+            <div id="content">
+                <h2>Apache Rivet Release Notes</h2>
+                <p>Apache Rivet current stable version is 3.1.0</p>
+
+<dl>
+    <dt>Rivet 3.1</dt>
+    <dd>
+        <ul>
+            <li>Rivet 3.1.0 is a bug fix release of Rivet 3.0.3. The decision of
+        		releasing a new point release has been suggested by the nature of the fix that,
+        		even though unlikely, in principle might break existing code developed on 
+        		wrong assumptions about the behavior of commands 
+        		<b>::rivet::var_ps</b>
+
+ and <b>::rivet::var_post</b>
+            </li>
+        </ul>
+    </dd>
+    <dt>Rivet 3.0 release notes</dt>
+    <dd>
+        <h4>Rivet 3.0.3</h4>
+        <ul>
+            <li>Packages in DIO are not assuming anymore the rivet command set has
+                            been imported into the global namespace</li>
+            <li>A minor change to ::rivet::xml provides a new form to 
+                            generate self closing elements</li>
+        </ul>
+        <h4>Rivet 3.0.2</h4>
+        <ul>
+            <li>Fixed a bug in the default error handler</li>
+            <li>Other minor changes only relevant to mod_rivet code and with
+ 							no interest at the application level (see the Changelog file to know more)
+ 							</li>
+        </ul>
+        <h4>Rivet 3.0.1</h4>
+        <ul>
+            <li>rivet Namespace determination in librivet has been revised to
+   							 avoid to check for the module globals and therefore avoiding
+   							 the inclusion of mod_rivet.h
+   						</li>
+            <li>A few details in the worker bridge have been fixed, including
+							a thread root interpreter initialization</li>
+            <li>the lazy bridge has been extensively commented</li>
+            <li>documentation has been expanded and corrected in various sections</li>
+        </ul>
+    </dd>
+    <dt>Rivet 2.4</dt>
+    <dd>
+        <h4>Rivet 2.4.0</h4>
+        <ul>
+            <li>Rivet 2.4.0 is a bug fix release of Rivet 2.3.5. The new point
+        				release was done on the same ground of 3.1.0: marking the fact that this version
+        				could potentially (though unlikely) create regressions if commands <b>::rivet::var_post</b>
+
+
+        				and <b>::rivet::var_qs</b>
+
+ are improperly used
+        				                            </li>
+        </ul>
+    </dd>
+    <dt>Rivet 2.3</dt>
+    <dd>
+        <h4>Rivet 2.3.5</h4>
+        <p>
+						Rivet 2.3.5 is a bug fix release for rivet 2.3. Rivet 2.3.5 received contributions
+						from Ronnie Brunner and Jeff Lawson 
+						<ul>
+                <li>Fixed server initialization procedure. ServerInitScript is now executed only once, the second time
+							the server initialization callback is called</li>
+                <li>Fixed test suite problem with virtual host handling in certain installations</li>
+                <li>Mysql DIO connector now handles also the special value NULL for a column</li>
+                <li>Fixed buffer overflow bug in libWWW</li>
+                <li>Tcl environment now can be loaded also from outside mod_rivet</li>
+                <li>Command <strong>::rivet::redirect</strong>
+
+ now accepts integer status code
+							to control redirection. This enables the command to emit status codes other than
+							301 and 302                                    </li>
+            </ul>
+        </p>
+        <h4>Rivet 2.3.4</h4>
+        <p>
+            <ul>
+                <li>Fixed buffer allocation size in command <strong>::rivet::escape_sgml_chars</strong>
+
+
+							(fixes bug #61353)                                    </li>
+                <li>Random number generator is re-seeded for each interpreter thus to guarantee they
+							will output different sequences</li>
+                <li>package <strong>formbroker</strong>
+
+ now handles also boolean type of data                                    </li>
+                <li>invocation of rivet commands has been fully qualified with the <strong>::rivet</strong>
+
+ namespace                                    </li>
+            </ul>
+        </p>
+        <h4>Rivet 2.3.3</h4>
+        <ul>
+            <li>DIO: String quoting of the Posgresql connector was incorrect and has been fixed (closes bug #60378)</li>
+            <li>
+							New package <strong>formbroker</strong>
+
+: this package is a form response broker and validator,
+							still experimental but usable
+						                            </li>
+            <li>Fixed typo in manual page</li>
+            <li>
+							Change in mod_rivet internals: as a content generator mod_rivet has to figure out
+							when a request has to be handled or passed on to other modules. 
+							The request type is now determined more correctly from
+							the field <q>header</q>
+
+ of the <strong>request_rec</strong>
+
+ (previosly was
+							<q>content_type</q>
+
+)
+						                            </li>
+        </ul>
+        <h4>Rivet 2.3.2</h4>
+        <p>
+            <ul>
+                <li>The test suite now requires Apache 2.4</li>
+                <li>Commands <strong>::rivet::try</strong>
+
+ and <strong>::rivet::catch</strong>
+
+
+								have been fixed. Under some circumstances they failed to properly evaluate
+								the code they are supposed to guard and control                                    </li>
+                <li>A new utility command <strong>::rivet::url_query</strong>
+
+ 
+								composes the query part of an URL from a list of parameter-value pairs                                    </li>
+            </ul>
+        </p>
+        <h4>Rivet 2.3.1</h4>
+        <p>
+						Rivet 2.3.1 is a bug fix release for package rivet 2.3. Method 'file' which was
+						to print an HTML5 <pre class="programlisting">&lt;input type="file" name="...."/&gt;</pre>
+
+ 
+						was actually printing an email form field. This problem was not serious but affected any serious 
+						development of forms using rivet's form package
+					                    </p>
+        <h4>Rivet 2.3.0</h4>
+        <p>
+               	Rivet 2.3.0 consolidates the 2.2.x module series with several improvements in the way 
+                  the command export was handled. This will be the last 2.x version series in preparation
+                  of the newly developed 3.0 module.
+               </p>
+        <p>
+                  Rivet 2.3.0 introduces the command <b>::rivet::try</b>
+
+ and <b>::rivet::catch</b>
+
+
+                  as a wrappers of the Tcl core 
+                  language <b>try</b>
+
+ and <b>catch</b>
+
+ commands. These commands are not exported to 
+                  the global namespace even when
+                  mod_rivet is build with the <i>--enable-rivet-commands-export</i>
+
+ and they should be
+                  used within Rivet scripts to protect any <b>::rivet::abort_page</b>
+
+ and
+                  <b>::rivet::exit</b>
+
+ execution. These commands interrupt code execution by
+                  raising a Tcl error with reserved error codes (respectively ABORTPAGE and EXITPAGE) to
+                  signal the module to fire the AbortScript Tcl script with special codes accessible
+                  through the <b>::rivet::abort_code</b>
+
+ command
+		   		                     </p>
+        <p>
+                  Execution of <b>::rivet::try</b>
+
+ fails if mod_rivet is not built with Tcl &gt;= 8.6
+                                    </p>
+        <p>
+                    Command <b>::rivet::exit</b>
+
+ was also introduced to give the command
+                    <b>exit</b>
+
+ a more sensible behaviour within the context of the Apache HTTP Web Server. 
+                    In fact the core command has become an alias of <b>::rivet::exit</b>
+
+ which interrupts 
+                    the script execution and hands control on to an AbortScript. Then it completes the 
+                    request and just before returning to the web server framework it terminates the child
+                    process by calling <b>Tcl_Exit</b>
+        </p>
+        <p>
+                    This command replaces the <b>exit</b>
+
+ core command and it's provided as a way
+                    to give it a meaning within the Rivet and Apache context but the
+                    programmer should avoid to use it and instead adopt proper software design
+                    to bring about sudden process termination
+                                    </p>
+    </dd>
+</dl>
+
+
+
+                <div class="contentbottom">
+                    
+                </div>
+            </div>
+
+            <div class="sidebar">
+                <ul>
+                     
+                </ul> 
+                <ul>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+        </li>
+        <li class="navitem">
+            <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
+        </li>
+        <li class="navitem">
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
+        </li>
+        <li class="navitem">
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
+        </li>
+    </ul>
+</li>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+        </li>
+        <li class="navitem">
+            <a href="release%2dnotes.html">Release Notes</a>
+        </li>
+        <li class="navitem">
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
+        </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
+        </li>
+    </ul>
+</li>
+ 
+                </ul> 
+                <ul>
+                    <li id="acknowledgments">
+    <h4>Acknowledgments</h4>
+    <ul class="blocklist">
+        <li class="navitem">
+            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
+        </li>
+    </ul>
+</li>
+ 
+                </ul> 
+            </div>
+            <div class="clear"></div>
+        </div>
+    </div>
+    <div id="footer">
+        <div class="footer-content">
+            <p><a href="http://www.apache.org/">Apache Software Foundation</a> | Design by <a href="http://www.spyka.net">Free CSS Templates</a> | <a href="http://www.justfreetemplates.com">Free Web Templates</a></p>
+        </div>
+    </div>
+    <div style="text-align: center; font-size: 0.75em;">Design downloaded from <a href="http://www.freewebtemplates.com/">free website templates</a>.</div></body>
+</html>
+
diff --git a/rivet/html/var_access.html b/rivet/html/var_access.html
index ddf5b27..9b66344 100644
--- a/rivet/html/var_access.html
+++ b/rivet/html/var_access.html
@@ -135,47 +135,52 @@ if { [llength $errlist] != 0 } {
 
             <div class="sidebar">
                 <ul>
-                     
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
+            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a href="release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
+    </ul>
+</li>
+<li id="documentation">
+    <h4>Documentation</h4>
+    <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a href="hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
-<li id="rivetexamples">
+ 
+                </ul> 
+                <ul>
+                    <li id="rivetexamples">
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
diff --git a/rivet/index.html b/rivet/index.html
index a51472b..ddf3e36 100644
--- a/rivet/index.html
+++ b/rivet/index.html
@@ -23,7 +23,7 @@
  is a powerful, flexible, consistent,
 		  		fast, and robust solution to creating web applications:
 			            </p>
-    <img src="../picts/Rivetlogo_tiny.png" class="floatright"/>
+    <img src="picts/Rivetlogo_tiny.png" class="floatright"/>
     <p>
         <b>Powerful</b>
 
@@ -95,81 +95,54 @@
 
             <div class="sidebar">
                 <ul>
-                    <li id="news">
-    <h4>News</h4>
+                    <li id="tclstuff">
+    <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="html/rn%2d2%2d3.html">11 Nov 2017: Rivet 2.3.5 released</a>
-        </li>
-        <li class="navitem">
-            <a href="html/rn%2d3%2d0.html">18 Nov 2018: Rivet 3.0.3 released</a>
-        </li>
-    </ul>
-</li>
- 
-                </ul> 
-                <ul>
-                    <li id="home">
-    <h4>Rivet</h4>
-    <ul class="blocklist">
-        <li class="navitem">
-            <a title="A home for Rivet" href="index.html">Rivet Homepage</a>
+            <a title="The Rivet development team" href="html/about.html">About Us - Contact</a>
         </li>
         <li class="navitem">
             <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
         </li>
         <li class="navitem">
-            <a title="Getting Rivet" href="html/download.html">Getting Rivet</a>
-        </li>
-        <li class="navitem">
-            <a title="Hello World!" href="html/hello%5fworld.html">Examples</a>
-        </li>
-        <li class="navitem">
-            <a title="The Rivet development team" href="html/about.html">About Us - Contact</a>
-        </li>
-    </ul>
-</li>
-<li id="tcl">
-    <h4>Tcl/Tk</h4>
-    <ul class="blocklist">
-        <li class="navitem">
-            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">
-                The Tcl/Tk Language
-                </a>
+            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">The Tcl/Tk Language</a>
         </li>
         <li class="navitem">
             <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
-<li id="manual">
-    <h4>Documentation</h4>
+<li id="rivetstuff">
+    <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
-        </li>
-        <li class="navitem">
-            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
+            <a title="Getting Rivet" href="html/download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
+            <a href="html/release%2dnotes.html">Release Notes</a>
         </li>
         <li class="navitem">
-            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
+            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
-<li id="support">
-    <h4>Support</h4>
+<li id="documentation">
+    <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
+            <a href="html/hello%5fworld.html">Examples</a>
+        </li>
+        <li class="navitem">
+            <a href="html/manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
  
                 </ul> 
                 <ul>
+                     
+                </ul> 
+                <ul>
                     <li id="acknowledgments">
     <h4>Acknowledgments</h4>
     <ul class="blocklist">
diff --git a/rivet/templates/wondrous/external-link-16.png b/rivet/templates/wondrous/external-link-16.png
new file mode 100644
index 0000000..34f54d6
Binary files /dev/null and b/rivet/templates/wondrous/external-link-16.png differ
diff --git a/rivet/templates/wondrous/link-16-white.png b/rivet/templates/wondrous/link-16-white.png
new file mode 100644
index 0000000..9d94601
Binary files /dev/null and b/rivet/templates/wondrous/link-16-white.png differ
diff --git a/rivet/templates/wondrous/picts/bodybg.jpg b/rivet/templates/wondrous/picts/bodybg.jpg
new file mode 100644
index 0000000..28a812d
Binary files /dev/null and b/rivet/templates/wondrous/picts/bodybg.jpg differ
diff --git a/rivet/templates/wondrous/picts/h4-bg.png b/rivet/templates/wondrous/picts/h4-bg.png
new file mode 100644
index 0000000..d8d1b78
Binary files /dev/null and b/rivet/templates/wondrous/picts/h4-bg.png differ
diff --git a/rivet/templates/wondrous/styles.css b/rivet/templates/wondrous/styles.css
index 0dbf8ba..426fc15 100644
--- a/rivet/templates/wondrous/styles.css
+++ b/rivet/templates/wondrous/styles.css
@@ -1,5 +1,5 @@
 body {
-	background: #480E0E url('../../picts/wondrous/bodybg.jpg') repeat-x scroll top left;
+	background: #480E0E url('picts/bodybg.jpg') repeat-x scroll top left;
 	margin:0;
 	padding:0;
 	font-family: Arial, Helvetica, sans-serif;
@@ -25,7 +25,7 @@ th, td {
 th {
 	color: #fff;
 	font-weight: normal;
-	background: transparent url(../../picts/wondrous/h4-bg.png) repeat-x scroll left top;
+	background: transparent url('picts/h4-bg.png') repeat-x scroll left top;
 }
 
 td {
@@ -97,7 +97,7 @@ form input, form select, form textarea {
 
 form input.formbutton {
 	border: none;
-	background:transparent url(../../picts/wondrous/h4-bg.png) repeat-x scroll center;
+	background:transparent url('picts/h4-bg.png') repeat-x scroll center;
 	color: #ffffff;
 	font-weight: bold;
 	padding: 6px 10px;
@@ -264,10 +264,11 @@ li ol, li ul {
 
 .sidebar li ul.blocklist li a {
 	display: block;
-	padding: 7px 8px;
+	padding: 7px 8px 7px 20px;
 	margin: 0 7px;
 	text-decoration: none;
 	border-bottom: 1px solid #5F1311;
+    background:     transparent url(link-16-white.png) center left no-repeat;
 }
 
 .sidebar li ul.blocklist li a:hover {
@@ -281,7 +282,7 @@ li ol, li ul {
 .sidebar h4 {
 	color: #fff;
 	font-family: Arial, Helvetica, sans-serif;
-	background:transparent url('../../picts/wondrous/h4-bg.png') repeat-x scroll top left;
+	background:transparent url('picts/h4-bg.png') repeat-x scroll top left;
 	font-size: 12px;
 	letter-spacing: 0;
 	text-transform: uppercase;
@@ -349,7 +350,14 @@ div.floatright {
 }
 
 .sidebar li ul.blocklist li a.extern {
-    display:        inline-block;
+    display:        block;
     padding-left:   20px;
-    background:     transparent url(external-link-grey.png) center left no-repeat;
+    background:     transparent url(external-link-16.png) center left no-repeat;
+}
+
+dt {
+    border-bottom:  1px solid black;
+    margin-bottom:  1em;
+    font-size:      110%;
+    font-weight:    bold;
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: site-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: site-cvs-help@tcl.apache.org


[tcl-site] 02/02: add manual pages for latest release (2.4.0 and 3.1.0)

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-site.git

commit ba90284945f87c19674cce62fef2ff4ea5ace238
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Wed Nov 28 23:50:21 2018 +0100

    add manual pages for latest release (2.4.0 and 3.1.0)
---
 rivet/manual2.4/abort_code.html            |  10 +
 rivet/manual2.4/abort_page.html            |  26 ++
 rivet/manual2.4/apache_log_error.html      |  15 +
 rivet/manual2.4/apache_table.html          |  62 ++++
 rivet/manual2.4/asciiglyphs.html           |  27 ++
 rivet/manual2.4/calendar.html              |  26 ++
 rivet/manual2.4/calendar_package.html      |  20 ++
 rivet/manual2.4/catch.html                 |  20 ++
 rivet/manual2.4/clock_to_rfc.html          |   5 +
 rivet/manual2.4/commands.html              |  19 ++
 rivet/manual2.4/cookie.html                |  13 +
 rivet/manual2.4/debug.html                 |  10 +
 rivet/manual2.4/decode.html                |  11 +
 rivet/manual2.4/dio.html                   |   1 +
 rivet/manual2.4/dio_package.html           | 276 ++++++++++++++++
 rivet/manual2.4/diodisplay.html            |   1 +
 rivet/manual2.4/diodisplay_package.html    | 430 +++++++++++++++++++++++++
 rivet/manual2.4/directives.html            | 232 ++++++++++++++
 rivet/manual2.4/encode.html                |  11 +
 rivet/manual2.4/entities.html              |   8 +
 rivet/manual2.4/env.html                   |   7 +
 rivet/manual2.4/escape_sgml_chars.html     |   7 +
 rivet/manual2.4/escape_shell_command.html  |  10 +
 rivet/manual2.4/escape_string.html         |   9 +
 rivet/manual2.4/examples.html              | 496 ++++++++++++++++++++++++++++
 rivet/manual2.4/exit.html                  |  30 ++
 rivet/manual2.4/fb.html                    | 260 +++++++++++++++
 rivet/manual2.4/form.html                  |  17 +
 rivet/manual2.4/form_package.html          | 213 +++++++++++++
 rivet/manual2.4/formbroker.html            |  16 +
 rivet/manual2.4/headers.html               |  38 +++
 rivet/manual2.4/help.html                  |  48 +++
 rivet/manual2.4/html.html                  |   6 +
 rivet/manual2.4/html_calendar.html         |  25 ++
 rivet/manual2.4/http_accept.html           |  33 ++
 rivet/manual2.4/images/acrobat.png         | Bin 0 -> 391 bytes
 rivet/manual2.4/images/blank.png           | Bin 0 -> 374 bytes
 rivet/manual2.4/images/calendar.png        | Bin 0 -> 9869 bytes
 rivet/manual2.4/images/caution.png         | Bin 0 -> 1250 bytes
 rivet/manual2.4/images/color-table.png     | Bin 0 -> 70347 bytes
 rivet/manual2.4/images/disk.png            | Bin 0 -> 361 bytes
 rivet/manual2.4/images/draft.png           | Bin 0 -> 17454 bytes
 rivet/manual2.4/images/home.png            | Bin 0 -> 5572 bytes
 rivet/manual2.4/images/important.png       | Bin 0 -> 722 bytes
 rivet/manual2.4/images/next.png            | Bin 0 -> 924 bytes
 rivet/manual2.4/images/note.png            | Bin 0 -> 490 bytes
 rivet/manual2.4/images/prev.png            | Bin 0 -> 817 bytes
 rivet/manual2.4/images/qbullet-note.png    | Bin 0 -> 353 bytes
 rivet/manual2.4/images/remote.png          | Bin 0 -> 567 bytes
 rivet/manual2.4/images/scrollup.png        | Bin 0 -> 353 bytes
 rivet/manual2.4/images/table.png           | Bin 0 -> 3352 bytes
 rivet/manual2.4/images/tip.png             | Bin 0 -> 449 bytes
 rivet/manual2.4/images/toc-blank.png       | Bin 0 -> 318 bytes
 rivet/manual2.4/images/toc-minus.png       | Bin 0 -> 259 bytes
 rivet/manual2.4/images/toc-plus.png        | Bin 0 -> 264 bytes
 rivet/manual2.4/images/up.png              | Bin 0 -> 797 bytes
 rivet/manual2.4/images/warning.png         | Bin 0 -> 1241 bytes
 rivet/manual2.4/images/word.png            | Bin 0 -> 393 bytes
 rivet/manual2.4/import_keyvalue_pairs.html |  16 +
 rivet/manual2.4/include.html               |   5 +
 rivet/manual2.4/incr0.html                 |  13 +
 rivet/manual2.4/index.html                 |  85 +++++
 rivet/manual2.4/inspect.html               |  47 +++
 rivet/manual2.4/installation.html          | 127 ++++++++
 rivet/manual2.4/internals.html             | 201 ++++++++++++
 rivet/manual2.4/lassign_array.html         |  18 ++
 rivet/manual2.4/lempty.html                |   7 +
 rivet/manual2.4/lmatch.html                |  14 +
 rivet/manual2.4/load_cookies.html          |   5 +
 rivet/manual2.4/load_env.html              |  10 +
 rivet/manual2.4/load_headers.html          |   5 +
 rivet/manual2.4/load_response.html         |  27 ++
 rivet/manual2.4/lremove.html               |  12 +
 rivet/manual2.4/makeurl.html               |  17 +
 rivet/manual2.4/no_body.html               |   5 +
 rivet/manual2.4/parray.html                |   6 +
 rivet/manual2.4/parse.html                 |   5 +
 rivet/manual2.4/raw_post.html              |   4 +
 rivet/manual2.4/read_file.html             |   6 +
 rivet/manual2.4/redirect.html              |  21 ++
 rivet/manual2.4/request.html               | 162 ++++++++++
 rivet/manual2.4/rivet.css                  | 351 ++++++++++++++++++++
 rivet/manual2.4/session_package.html       | 182 +++++++++++
 rivet/manual2.4/shorthand.html             |  13 +
 rivet/manual2.4/tcl_packages.html          |  11 +
 rivet/manual2.4/toglyphs.html              |   6 +
 rivet/manual2.4/try.html                   |  54 ++++
 rivet/manual2.4/unescape_string.html       |  10 +
 rivet/manual2.4/upgrading.html             |  32 ++
 rivet/manual2.4/upload.html                |  53 +++
 rivet/manual2.4/url_query.html             |   9 +
 rivet/manual2.4/var.html                   |  52 +++
 rivet/manual2.4/wrap.html                  |   9 +
 rivet/manual2.4/wrapline.html              |  11 +
 rivet/manual2.4/xml.html                   |  17 +
 rivet/manual2.4/xml_calendar.html          |  87 +++++
 rivet/manual3.1/abort_code.html            |  10 +
 rivet/manual3.1/abort_page.html            |  26 ++
 rivet/manual3.1/apache_log_error.html      |  15 +
 rivet/manual3.1/apache_table.html          |  62 ++++
 rivet/manual3.1/asciiglyphs.html           |  27 ++
 rivet/manual3.1/calendar.html              |  26 ++
 rivet/manual3.1/calendar_package.html      |  20 ++
 rivet/manual3.1/catch.html                 |  18 ++
 rivet/manual3.1/clock_to_rfc.html          |   5 +
 rivet/manual3.1/cmake.html                 |  31 ++
 rivet/manual3.1/commands.html              |  19 ++
 rivet/manual3.1/cookie.html                |  13 +
 rivet/manual3.1/debug.html                 |  10 +
 rivet/manual3.1/decode.html                |  11 +
 rivet/manual3.1/dio.html                   |   1 +
 rivet/manual3.1/dio_package.html           | 274 ++++++++++++++++
 rivet/manual3.1/diodisplay.html            |   1 +
 rivet/manual3.1/diodisplay_package.html    | 430 +++++++++++++++++++++++++
 rivet/manual3.1/directives.html            | 271 ++++++++++++++++
 rivet/manual3.1/encode.html                |  11 +
 rivet/manual3.1/entities.html              |   8 +
 rivet/manual3.1/env.html                   |   7 +
 rivet/manual3.1/escape_sgml_chars.html     |   7 +
 rivet/manual3.1/escape_shell_command.html  |  10 +
 rivet/manual3.1/escape_string.html         |   9 +
 rivet/manual3.1/examples.html              | 497 +++++++++++++++++++++++++++++
 rivet/manual3.1/exit.html                  |  34 ++
 rivet/manual3.1/fb.html                    | 259 +++++++++++++++
 rivet/manual3.1/form.html                  |  17 +
 rivet/manual3.1/form_package.html          | 213 +++++++++++++
 rivet/manual3.1/formbroker.html            |  16 +
 rivet/manual3.1/headers.html               |  38 +++
 rivet/manual3.1/help.html                  |  48 +++
 rivet/manual3.1/html.html                  |   6 +
 rivet/manual3.1/html_calendar.html         |  25 ++
 rivet/manual3.1/http_accept.html           |  33 ++
 rivet/manual3.1/images/acrobat.png         | Bin 0 -> 391 bytes
 rivet/manual3.1/images/blank.png           | Bin 0 -> 374 bytes
 rivet/manual3.1/images/calendar.png        | Bin 0 -> 9869 bytes
 rivet/manual3.1/images/caution.png         | Bin 0 -> 1250 bytes
 rivet/manual3.1/images/color-table.png     | Bin 0 -> 59362 bytes
 rivet/manual3.1/images/disk.png            | Bin 0 -> 361 bytes
 rivet/manual3.1/images/draft.png           | Bin 0 -> 17454 bytes
 rivet/manual3.1/images/home.png            | Bin 0 -> 5572 bytes
 rivet/manual3.1/images/important.png       | Bin 0 -> 722 bytes
 rivet/manual3.1/images/next.png            | Bin 0 -> 924 bytes
 rivet/manual3.1/images/note.png            | Bin 0 -> 490 bytes
 rivet/manual3.1/images/prev.png            | Bin 0 -> 817 bytes
 rivet/manual3.1/images/qbullet-note.png    | Bin 0 -> 353 bytes
 rivet/manual3.1/images/remote.png          | Bin 0 -> 567 bytes
 rivet/manual3.1/images/scrollup.png        | Bin 0 -> 353 bytes
 rivet/manual3.1/images/table.png           | Bin 0 -> 3352 bytes
 rivet/manual3.1/images/tip.png             | Bin 0 -> 449 bytes
 rivet/manual3.1/images/toc-blank.png       | Bin 0 -> 318 bytes
 rivet/manual3.1/images/toc-minus.png       | Bin 0 -> 259 bytes
 rivet/manual3.1/images/toc-plus.png        | Bin 0 -> 264 bytes
 rivet/manual3.1/images/up.png              | Bin 0 -> 797 bytes
 rivet/manual3.1/images/warning.png         | Bin 0 -> 1241 bytes
 rivet/manual3.1/images/word.png            | Bin 0 -> 393 bytes
 rivet/manual3.1/import_keyvalue_pairs.html |  16 +
 rivet/manual3.1/include.html               |   5 +
 rivet/manual3.1/incr0.html                 |  13 +
 rivet/manual3.1/index.html                 | 105 ++++++
 rivet/manual3.1/inspect.html               |  47 +++
 rivet/manual3.1/installation.html          | 169 ++++++++++
 rivet/manual3.1/internals.html             | 315 ++++++++++++++++++
 rivet/manual3.1/lassign_array.html         |  18 ++
 rivet/manual3.1/lazybridge.html            | 407 +++++++++++++++++++++++
 rivet/manual3.1/lempty.html                |   7 +
 rivet/manual3.1/lmatch.html                |  14 +
 rivet/manual3.1/load_cookies.html          |   5 +
 rivet/manual3.1/load_env.html              |  10 +
 rivet/manual3.1/load_headers.html          |   5 +
 rivet/manual3.1/load_response.html         |  27 ++
 rivet/manual3.1/lremove.html               |  12 +
 rivet/manual3.1/makeurl.html               |  17 +
 rivet/manual3.1/no_body.html               |   5 +
 rivet/manual3.1/parray.html                |   6 +
 rivet/manual3.1/parse.html                 |   5 +
 rivet/manual3.1/processing.html            | 225 +++++++++++++
 rivet/manual3.1/raw_post.html              |   4 +
 rivet/manual3.1/read_file.html             |   6 +
 rivet/manual3.1/redirect.html              |  25 ++
 rivet/manual3.1/request.html               | 191 +++++++++++
 rivet/manual3.1/rivet.css                  | 391 +++++++++++++++++++++++
 rivet/manual3.1/session_package.html       | 182 +++++++++++
 rivet/manual3.1/shorthand.html             |  13 +
 rivet/manual3.1/tcl_packages.html          |   4 +
 rivet/manual3.1/toglyphs.html              |   6 +
 rivet/manual3.1/try.html                   |  58 ++++
 rivet/manual3.1/unescape_string.html       |  10 +
 rivet/manual3.1/upload.html                |  53 +++
 rivet/manual3.1/url_script.html            |   7 +
 rivet/manual3.1/var.html                   |  52 +++
 rivet/manual3.1/wrap.html                  |   9 +
 rivet/manual3.1/wrapline.html              |  11 +
 rivet/manual3.1/xml.html                   |  28 ++
 rivet/manual3.1/xml_calendar.html          |  87 +++++
 194 files changed, 9231 insertions(+)

diff --git a/rivet/manual2.4/abort_code.html b/rivet/manual2.4/abort_code.html
new file mode 100644
index 0000000..c0a5702
--- /dev/null
+++ b/rivet/manual2.4/abort_code.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>abort_code</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="shorthand.html" title="&lt;?= ... ?&gt;"><link rel="next" href="abort_page.html" title="abort_page"></head><bod [...]
+				Returns the code passed to <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span>
+				earlier during the request processing
+			</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::abort_code</span> </div></div></div><div class="refsect1"><a name="idm547"></a><h2>Description</h2><p style="width:90%">
+				Usage of this command is meaningful only in a script set as
+				AbortScript or AfterEveryScript. 
+				<span style="font-family:monospace"><span class="command"><strong>abort_code</strong></span></span> returns the value of the optional 
+				parameter passed to <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span> earlier in
+				the same request processing.
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="shorthand.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="abort_page.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="to [...]
diff --git a/rivet/manual2.4/abort_page.html b/rivet/manual2.4/abort_page.html
new file mode 100644
index 0000000..49dcd37
--- /dev/null
+++ b/rivet/manual2.4/abort_page.html
@@ -0,0 +1,26 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>abort_page</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="abort_code.html" title="abort_code"><link rel="next" href="apache_log_error.html" title="apache_log_error"></he [...]
+		    Stops outputting data to web page, similar in
+		    purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::abort_page</span>  (<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>abort code</code></em></span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code [...]
+		    This command flushes the output buffer and stops the Tcl 
+		    script from sending any more data to the client.
+		    A normal Tcl script might use the
+		    <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command, but that cannot be used in
+		    Rivet without actually exiting the apache child
+		    process!
+		    <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span> triggers
+		    the execution of an optional AbortScript that has to be
+		    specified in the configuration. The value of the
+		    argument  ?<span style="font-family:monospace; font-weight: bold;">abort code</span>? can be retrieved with the 
+		    <span style="font-family:monospace"><span class="command"><strong>abort_code</strong></span></span> command during the
+		    execution of <a class="link" href="directives.html" title="Rivet Apache Directives">AbortScript or 
+		    AfterEveryScript</a>, 
+		    allowing the script to take appropriate actions in order to deal
+		    with the cause of the abort. 
+		</p><p style="width:90%">
+		    The argument -aborting causes abort_page
+		    to return 1 when the current execution is the outcome of an abort condition.
+		    In other words this query is meaningful in code specified as 
+		    <a class="link" href="directives.html" title="Rivet Apache Directives">AfterEveryScript</a> to understand
+		    if an abort condition took place beforehand.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abort_code.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="apache_log_error.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" vali [...]
diff --git a/rivet/manual2.4/apache_log_error.html b/rivet/manual2.4/apache_log_error.html
new file mode 100644
index 0000000..cfd3043
--- /dev/null
+++ b/rivet/manual2.4/apache_log_error.html
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>apache_log_error</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="abort_page.html" title="abort_page"><link rel="next" href="apache_table.html" title="apache_table"></head [...]
+		    The apache_log_error command logs a message to the 
+		    Apache error log, whose name and location have been
+		    set by the ErrorLog directive.
+		</p><p style="width:90%">
+		    Priority must be one of
+			    debug,
+			    info,
+			    notice,
+			    warning,
+			    err,
+			    crit,
+			    alert, or
+			    emerg.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abort_page.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="apache_table.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign=" [...]
diff --git a/rivet/manual2.4/apache_table.html b/rivet/manual2.4/apache_table.html
new file mode 100644
index 0000000..23df7f9
--- /dev/null
+++ b/rivet/manual2.4/apache_table.html
@@ -0,0 +1,62 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>apache_table</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="apache_log_error.html" title="apache_log_error"><link rel="next" href="catch.html" title="catch"></head><body [...]
+		    The apache_table command is for accessing and manipulating
+		    Apache tables in the request structure.
+		</p><p style="width:90%">
+		    The table name must be one of
+		    notes,
+		    headers_in,
+		    headers_out,
+		    err_headers_out, or
+		    subprocess_env.
+		</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				When given the name of an Apache table
+				<em class="replaceable"><code>tablename</code></em>
+				and the name of a key
+				<em class="replaceable"><code>tablename</code></em>,
+				returns the value of the key in the table, or an empty
+				string.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">set</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">set</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Stores the <em class="replaceable"><code>value</code></em> in
+				the table <em class="replaceable"><code>tablename</code></em>
+				under the key <em class="replaceable"><code>key</code></em>.
+			    </div><div style="margin-bottom:1.5ex ; padding .5ex">
+				For the list form,
+				<em class="replaceable"><code>list</code></em> contains
+				a list of zero or more pairs of key-value pairs to be
+				set into the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">exists</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em cl [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns 1 if the specified key,
+				<em class="replaceable"><code>key</code></em>,
+				exists in table
+				<em class="replaceable"><code>tablename</code></em>,
+				else 0.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">unset</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em cla [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Removes the key-value pair referenced by
+				<em class="replaceable"><code>key</code></em>
+				from the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">names</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns a list of all of the keys present in the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">array_get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns a list of key-value pairs from the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">clear</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				    Clears the contents of the specified table.
+			    </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apache_log_error.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="catch.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width [...]
diff --git a/rivet/manual2.4/asciiglyphs.html b/rivet/manual2.4/asciiglyphs.html
new file mode 100644
index 0000000..7dd3d2d
--- /dev/null
+++ b/rivet/manual2.4/asciiglyphs.html
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>AsciiGlyphs</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="html_calendar.html" title="HtmlCalendar"><link rel="next" href="toglyphs.html" title="toGlyphs"></head><body bgcolor="white" text="bl [...]
+				The <span style="font-family:monospace"><span class="command"><strong>AsciiGlyphs</strong></span></span> package provides a command
+				to print large ASCII glyphs in an HTML fragment based on
+				a &lt;pre&gt;...&lt;/pre:&gt; element. The shape of the glyphs was
+				inspired by the challenge response used by Fossil to let anonymous users
+				to log into a repository. The glyph set was extended to
+				support the whole English alphabet and some punctuation characters.
+				The string to be represented has to be made of pure 7-bit ASCII characters.
+				The package also runs standalone outside of mod_rivet
+        </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3935"></a>Example</h3></div></div></div><pre class="programlisting">package require AsciiGlyphs
+::AsciiGlyphs toGlyphs "Date: 07-12-2015"
+ _____              _____   ______          ___   ______         __  ___          ___    ___   __  _____ 
+|  __ \     /\     |_   _| |  ____|  _     / _ \ |____  |       /_ ||__ \        |__ \  / _ \ /_ || ____|
+| |  | |   /  \      | |   | |__    |_|   | | | |    / /  ____   | |   ) | ____     ) || | | | | || |__  
+| |  | |  / /\ \     | |   |  __|    _    | | | |   / /  |____|  | |  / / |____|   / / | | | | | ||___ \ 
+| |__| | / ____ \    | |   | |____  |_|   | |_| |  / /           | | / /_         / /_ | |_| | | | ___) |
+|_____/ /_/    \_\   |_|   |______|        \___/  /_/            |_||____|       |____| \___/  |_||____/ 
+
+::AsciiGlyphs toGlyphs "Time: 18:10:19"
+ _____   ___  _    _   ______         __   ___        __   ___        __   ___  
+|_   _| |   || \  / | |  ____|  _    /_ | / _ \   _  /_ | / _ \   _  /_ | / _ \ 
+  | |    | | |  \/  | | |__    |_|    | || (_) | |_|  | || | | | |_|  | || (_) |
+  | |    | | | |  | | |  __|    _     | | &gt; _ &lt;   _   | || | | |  _   | | \__, |
+  | |    | | | |  | | | |____  |_|    | || (_) | |_|  | || |_| | |_|  | |   / / 
+  |_|   |___||_|  |_| |______|        |_| \___/       |_| \___/       |_|  /_/  
+
+</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="html_calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="toglyphs.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">HtmlCalendar </td><td width="20%" align="center"><a accesskey="h" href= [...]
diff --git a/rivet/manual2.4/calendar.html b/rivet/manual2.4/calendar.html
new file mode 100644
index 0000000..a564f4b
--- /dev/null
+++ b/rivet/manual2.4/calendar.html
@@ -0,0 +1,26 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Calendar</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="calendar_package.html" title="Calendar Package"><link rel="prev" href="calendar_package.html" title="Calendar Package"><link rel="next" href="xml_calendar.html" title="XmlCalendar"></head><bod [...]
+				The main public command for a calendar object is 
+				<span style="font-family:monospace"><span class="command"><strong>emit</strong></span></span> that returns a calendar table
+			</p></div><div class="refsect1"><a name="idm3737"></a><div class="variablelist"><p style="width:90%">
+	    			The method <span style="font-family:monospace"><span class="command"><strong>emit</strong></span></span> when invoked with a single argument
+	    			takes it as an year number and prints the whole calendar of
+	    			that year. When invoked with 2 arguments takes the first as a month, either
+	    			expressed in its shortened form ('Jan','Feb',...) or as a number in the 
+	    			range 1-12. The second argument is a year number.
+	    		</p><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+		      			calendar_obj <span style="font-weight:bold ; font-family:monospace">emit</span> </div></div><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+		      			calendar_obj <span style="font-weight:bold ; font-family:monospace">emit</span>  ?<span style="font-family:monospace; font-weight: bold;">month</span>? ?<span style="font-family:monospace; font-weight: bold;">year</span>?</div></div><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+							calendar_obj <span style="font-weight:bold ; font-family:monospace">emit</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>month | year</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+							The method 'emit' if invoked without arguments returns an 
+							ASCII formatted calendar of the current month
+		      		</div><pre class="programlisting">
+set cal [Calendar #auto]
+set current_month [$cal emit]
+puts $current_month
+      Jun 2010
+  Su Mo Tu We Th Fr Sa
+        1  2  3  4  5
+  6  7  8  9 10 11 12
+ 13 14 15 16 17 18 19
+ 20 21 22 23 24 25 26
+ 27 28 29 30</pre></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="calendar_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="calendar_package.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="xml_calendar.html"><img src="images/next.png" alt="Next"></a></t [...]
diff --git a/rivet/manual2.4/calendar_package.html b/rivet/manual2.4/calendar_package.html
new file mode 100644
index 0000000..0a3fca1
--- /dev/null
+++ b/rivet/manual2.4/calendar_package.html
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Calendar Package</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="form_package.html" title="form"><link rel="next" href="calendar.html" title="Calendar"></head><body bgcolor="white" text="black" [...]
+      	The package is based on the Calendar class, a class capable
+      	of printing an ascii calendar table that closely resembles the output 
+      	of the typical Unix <span style="font-family:monospace"><span class="command"><strong>cal</strong></span></span> command. The internal
+      	code is written entirely in Tcl, therefore doesn't rely on the 
+      	existance of <span style="font-family:monospace"><span class="command"><strong>cal</strong></span></span> on the system. 
+      	XmlCalendar inherits the basic methods and adds XML tagging to the
+      	table. XmlCalendar prints an XML calendar table whose header, 
+      	weekdays banner and days rows tags are configurable. 
+      	Also specific days or specific weeks can be given arbitrary attributes.
+      </p><p style="width:90%">
+      	Calendar core methods are based on the 
+      	<a class="ulink" href="http://wiki.tcl.tk/17964" target="_top">cal</a> procedure
+      	written by Richard Suchenwirth and published on the 
+      	<a class="ulink" href="http://wiki.tcl.tk" target="_top">Tcl Wiki</a>
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+        The Calendar package uses Tcl <span style="font-family:monospace"><span class="command"><strong>dict</strong></span></span> command to manage markup 
+        information. Hence either Tcl8.5 or Tcl8.4 with 
+        <a class="ulink" href="http://wiki.tcl.tk/5042" target="_top">package dict</a> are required.   
+      </td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="form_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="calendar.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">form </td><td width="20%" align="center"><a acce [...]
diff --git a/rivet/manual2.4/catch.html b/rivet/manual2.4/catch.html
new file mode 100644
index 0000000..e91ff72
--- /dev/null
+++ b/rivet/manual2.4/catch.html
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>catch</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="apache_table.html" title="apache_table"><link rel="next" href="clock_to_rfc.html" title="clock_to_rfc850_gmt"></head [...]
+			a special way fake error conditions resulting from calls to <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span>
+			and <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::catch</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em> [...]
+		    	<span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> wraps the core language's same command adding some
+                extra error handling needed by mod_rivet design.
+		    	The rationale for Rivet to have its own <span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> reads as follows: 
+                within mod_rivet a script execution can be interrupted by either calling 
+		    	<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>(deprecated) or <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span>. These commands
+                implement a simple internal exception mechanism by 
+                returning a special error code so that execution is in turn handed down to the
+                <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> and eventually to <span style="font-family:monospace"><span class="command"><strong>AfterEveryScript</strong></span></span> (if any of them is 
+                defined). Any code calling one of these commands which runs under control of the
+                <span style="font-family:monospace"><span class="command"><strong>::catch</strong></span></span> command would need to do this chore itself, checking the error info and in case 
+                throw the error again if it had been originated by one of mod_rivet's exceptions calls. 
+                This is what <span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> does hiding the implementation
+                details to provide a better and more compatibile way to handle this condition.                
+			</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+				This command is not meant to replace the core command, thus it's not exported from the 
+            <span style="font-family:monospace"><span class="command"><strong>::rivet</strong></span></span> namespace and therefore has to be fully qualified.
+			</td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apache_table.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="clock_to_rfc.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40% [...]
diff --git a/rivet/manual2.4/clock_to_rfc.html b/rivet/manual2.4/clock_to_rfc.html
new file mode 100644
index 0000000..7b23dad
--- /dev/null
+++ b/rivet/manual2.4/clock_to_rfc.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>clock_to_rfc850_gmt</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="catch.html" title="catch"><link rel="next" href="cookie.html" title="cookie"></head><body bgcolor="whi [...]
+		    Convert an integer-seconds-since-1970 click value to
+		    RFC850 format, with the additional requirement that it be
+		    GMT only.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="catch.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="cookie.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">catch  [...]
diff --git a/rivet/manual2.4/commands.html b/rivet/manual2.4/commands.html
new file mode 100644
index 0000000..05891c4
--- /dev/null
+++ b/rivet/manual2.4/commands.html
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Tcl Commands and Variables</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="directives.html" title="Rivet Apache Directives"><link rel="next" href="shorthand.html" title="&lt;?= ... ?&gt;" [...]
+			Starting with version 2.1.0 Rivet command set moved into the 
+			<span style="font-family:monospace"><span class="command"><strong>::rivet</strong></span></span> namespace.
+		</p><p style="width:90%">
+			In order to preserve out of the box compatibility with existing scripts,
+			Rivet exports commands by default and makes them available for import 
+			into any namespace (global namespace included). 
+			Rivet's build system can be told not to export the command set by
+			passing the switch <span style="font-family:monospace"><span class="command"><strong>--disable-rivet-commands-export</strong></span></span> 
+			to 'configure'. In the future we may change this option's default.
+		</p><p style="width:90%">
+			Commands must be imported into another namespace with the command:
+		</p><p style="width:90%">
+			<span style="font-family:monospace"><span class="command"><strong>namespace import -force ::rivet::*</strong></span></span>
+		</p><p style="width:90%">
+			Whenever a new application is being developed and compatibility
+			issues can be confined within specific files, it is recommended
+			that commands be specified with their fully qualified names.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="directives.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="shorthand.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Rivet Apache Directives </td><td width="20%" align="center"><a accesskey= [...]
diff --git a/rivet/manual2.4/cookie.html b/rivet/manual2.4/cookie.html
new file mode 100644
index 0000000..94cb594
--- /dev/null
+++ b/rivet/manual2.4/cookie.html
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>cookie</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="clock_to_rfc.html" title="clock_to_rfc850_gmt"><link rel="next" href="debug.html" title="debug"></head><body bgcolo [...]
+			    <span style="font-family:monospace"><span class="command"><strong>cookie</strong></span></span> gets, sets, unsets or deletes a cookie.  When you
+			    get a cookie, the command returns the value of the cookie,
+			    or an empty string if no cookie exists.
+			</p><p style="width:90%">
+			    <span style="font-family:monospace"><span class="command"><strong>cookie delete</strong></span></span> will set the timeout value to -1 minutes - 
+			    deleting the cookie in the browser.
+			</p><p style="width:90%">
+			    <span style="font-family:monospace"><span class="command"><strong>cookie unset</strong></span></span> will remove the defined cookie in the server 
+			    (perhaps preparatory to checking/resetting the cookie).
+			</p><p style="width:90%">
+				The command has a number of switches setting a cookie attributes
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="clock_to_rfc.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="debug.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual2.4/debug.html b/rivet/manual2.4/debug.html
new file mode 100644
index 0000000..bb183a9
--- /dev/null
+++ b/rivet/manual2.4/debug.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>debug</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="cookie.html" title="cookie"><link rel="next" href="env.html" title="env"></head><body bgcolor="white" text="black" l [...]
+		    A command to print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::debug</span>   <span style="font-family:monospace; font-weight: bold;">-subst</span>  ?<span style="font-family:monospace; font-weight: bold;">&lt;on|off&gt;</span>?  <span style="font-family:monospace; font-weight: bold;"> [...]
+		    A command to make debugging more convenient print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</p><p style="width:90%">
+		    Also allows the setting of an array called debug which will pick up
+		    options for all debug commands.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cookie.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="env.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">cookie < [...]
diff --git a/rivet/manual2.4/decode.html b/rivet/manual2.4/decode.html
new file mode 100644
index 0000000..9799b77
--- /dev/null
+++ b/rivet/manual2.4/decode.html
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>decode</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="entities.html" title="RivetEntities"><link rel="prev" href="encode.html" title="encode"><link rel="next" href="formbroker.html" title="The Form Broker"></head><body bgcolor="white" text="black"  [...]
+                decode an SGML encoded string replacing every entity with the
+                corresponding character
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::decode</span>   <span style="font-family:monospace; font-weight: bold;">string</span>  ?<span style="font-family:monospace; font-weight: bold;">-encoding <em class="replaceable"><code>&lt;encoding&gt;</code></em>< [...]
+                    <span style="font-family:monospace"><span class="command"><strong>::rivet::decode</strong></span></span> implements the inverse function of
+                    <span style="font-family:monospace"><span class="command"><strong>::rivet::encode</strong></span></span>. The input string is scanned searching
+                    and replacing every SGML entity with its corresponding character.
+                    By default the command assumes the output string has to be encoded in UTF-8.
+                    Other encodings are supported by passing the 
+                    <span style="font-family:monospace"><span class="command"><strong>-encoding &lt;encoding&gt;</strong></span></span> argument.
+            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="encode.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="entities.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="formbroker.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" vali [...]
diff --git a/rivet/manual2.4/dio.html b/rivet/manual2.4/dio.html
new file mode 100644
index 0000000..c51eb20
--- /dev/null
+++ b/rivet/manual2.4/dio.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIO - Database Interface Objects</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="tcl_packages.html" title="Rivet Tcl Packages"><link rel="next" href="dio_package.html" title="DIO"></head><body  [...]
diff --git a/rivet/manual2.4/dio_package.html b/rivet/manual2.4/dio_package.html
new file mode 100644
index 0000000..25eb6ad
--- /dev/null
+++ b/rivet/manual2.4/dio_package.html
@@ -0,0 +1,276 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIO</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="dio.html" title="DIO - Database Interface Objects"><link rel="prev" href="dio.html" title="DIO - Database Interface Objects"><link rel="next" href="diodisplay.html" title="DIODisplay - Database Int [...]
+	  <span style="font-family:monospace"><span class="command"><strong>DIO</strong></span></span> is designed to be a generic,
+	  object-oriented interface to SQL databases.  Its main goal
+	  is to be as generic as possible, but since not all SQL
+	  databases support the exact same syntaxes, keeping code
+	  generic between databases is left to the abilities of the
+	  programmer.  DIO simply provides a way to keep the Tcl
+	  interface generic.
+	</p><p style="width:90%">
+	  interface - The name of the database
+	  interface.  Currently supported interfaces are
+	  Postgresql and Mysql.
+	</p><p style="width:90%">
+	  If <em class="replaceable"><code>objectName</code></em> is
+	  specified, DIO creates an object of that name.  If there is
+	  no <em class="replaceable"><code>objectName</code></em>
+	  given, DIO will automatically generate a unique object ID
+	</p></div><div class="refsect1"><a name="idm1862"></a><h2>Options</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-host</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+		The hostname of the computer to connect to.  If none
+		is given, DIO assumes the local host.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-port</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>portNumber</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; paddi [...]
+		The name of the database to connect to.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-table</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tableName</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; paddi [...]
+		The default table to use when using built-in commands
+		for storing and fetching.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-keyfield</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>keyFieldname</code></em></span>?</div></div><div style="m [...]
+		The default field to use as the primary key when using
+		built-in commands for storing and fetching.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-autokey</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</ [...]
+				If this option is set to 1, DIO will attempt to
+				determine an automatic key for
+				keyField when storing and fetching.
+				In most databases, this requires that the
+				sequence also be specified.  In the
+				case of MySQL, where sequences do not exist, autokey
+				must be used in conjunction with a table which has a
+				field specified as AUTO.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-sequence</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>sequenceName</code></em></span>?</div></div><div style=" [...]
+				If DIO is automatically generating keys, it will use
+				this sequence as a means to gain a unique number for
+				the stored key.</div></div></dd></dl></div></div><div class="refsect1"><a name="idm1932"></a><h2>DIO Object Commands</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code> [...]
+		Execute request as a SQL query and
+		create an array from the first record found.  The
+		array is set with the fields of the table and the
+		values of the record found.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">autokey</span>? (<span style="font-family: [...]
+		Return the current autokey value.  If
+		value is specified, it sets a new
+		value for the autokey option.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">close</span>?</div></div><div style="mar [...]
+	      	Close the current database connection.  This command is
+				automatically called when the DIO object is destroyed.
+			</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">count</span>?</div></div><div style="margin-bottom:1.5ex ; padding . [...]
+		specified (or current) table.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">db</span>? ?<span style="font-family:mon [...]
+		Return the current database.  If
+		value is specified, it sets a new
+		value for the database.  In most cases, the DIO object
+		will automatically connect to the new database when
+		this option is changed.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">delete</span>? ?<span style="font-family:monos [...]
+		Delete a record from the database where the primary
+		key matches key.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">destroy</span>?</div></div><div style="margin-bottom: [...]
+		Destroy the DIO object.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">errorinfo</span>? ?<span style="font-family:monospace; font-weig [...]
+		the last error, if any, to occur while executing a
+		request.  When a request fails for any reason, this
+		variable is filled with the error message from the SQL
+		interface package.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">exec</span>? ?<span style="font-family:monospace; f [...]
+		Execute request as an SQL query.
+		When the exec command is called, the query is
+		executed, and a DIO result object is returned.  From
+		there, the result object can be used to obtain
+		information about the query status and records in a
+		generic way.  See <a class="link" href="dio_package.html#resultobj" title="Result Object Commands">Result
+		  Object Commands</a>
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">fetch</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Fetch a record from the database where the primary key
+		matches key and store the result in
+		an array called arrayName.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">forall</span>? ?<span style="font-family:monospace; font-weight: [...]
+	       Execute an SQL select request and iteratively 
+	       fill the array named arrayName
+	       with elements named with the matching field names, and
+	       values containing the matching values, repeatedly executing 
+	       the specified code body
+	       for each row returned.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">host</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return the current host value.  If
+		value is specified, it sets a new
+		value for the host.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">insert</span>? ?<span style="font-family:monospace; font-weight: [...]
+		Insert fields from arrayName into the specified table in the database.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">interface</span>?</div></div><div style="margin-bottom:1.5ex ; p [...]
+		Return the database interface type, such as 
+		<code class="literal">Postgresql</code> or <code class="literal">Mysql</code>.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">keyfield</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current keyfield.  If
+		value is specified, it sets a new
+		value for the keyfield.  Value can contain
+		multiple key fields as a Tcl list, if the table has multiple
+		key fields.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">keys</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return a list of keys in the database.  If
+		pattern is specified, only the keys
+		matching will be returned.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">lastkey</span>?</div></div><div style="margin-bottom:1.5ex ; pad [...]
+		Return the last key that was used from
+		sequence.  If sequence has not been
+		specified, this command returns an empty string.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">list</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Execute request as a SQL query and
+		return a list of the first column of each record
+		found.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">makekey</span>? ?<span style="font-family:monospace; font-weight [...]
+		Given an array containing key-value pairs and an optional
+		list of key fields (we use the object's keyfield if
+		none is specified), if we're doing auto keys, create
+		and return a new key, otherwise if it's a single key,
+		just return its value from the array, else if there are
+		multiple keys, return all the keys' values from the
+		array as a list.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">nextkey</span>?</div></div><div style="margin-bottom:1.5ex ; pad [...]
+		next key to be used.  If sequence has not been
+		specified, this command returns an empty
+		string.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">open</span>?</div></div><div style="margin-bottom:1.5ex ; padd [...]
+		command is automatically called from any command which
+		accesses the database.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">pass</span>? ?<span style="font-family:monospac [...]
+		Return the current pass value.  If
+		value is specified, it sets a new
+		value for the password.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">port</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		specified, it sets a new value for the port.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">quote</span>? ?<span styl [...]
+	      a way that makes it acceptable as a value in a SQL statement.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">search</span>? (<span style="font-family:monospace; font-weight: [...]
+		Search the current table, or the specified table if
+		-table tableName is specified, for rows matching
+		one or more fields as key-value pairs, and return
+		a query result handle.
+		See <a class="link" href="dio_package.html#resultobj" title="Result Object Commands">Result Object Commands</a>
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		For example,
+	<pre class="programlisting">set res [DIO search -table people -firstname Bob]</pre>
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">sequence</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current sequence value.  If value is
+		specified, it sets a new value for the sequence.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">store</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Store the contents of arrayName in the 
+		database, where the keys are the field names and the
+		array's values are the corresponding values.  Do an SQL insert 
+		if the corresponding row doesn't exist, or an update 
+		if it does.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		The table name must have been previously set
+		or specified with  ?<span style="font-family:monospace; font-weight: bold;">-table</span>?, and the key field(s) must
+		have been previously set or specified with
+		 ?<span style="font-family:monospace; font-weight: bold;">-keyfield</span>?.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Please note that the store method has significantly higher 
+		overhead than
+		the update or insert methods, so if you know you are
+		inserting a row rather than updating one, it is advisable
+		to use the insert method and, likewise, if you know you
+		are updating rather than inserting, to use the
+		update method.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>? ?<span style="font-family:monospace; font-weight: [...]
+		Execute request as a SQL query and
+		return a string containing the first record
+		found.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">table</span>? ?<span style="font-family:monospace; font-weight: [...]
+		value is specified, it sets a new
+		value for the table.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">update</span>? ?<span style="font-family:monospac [...]
+		Updates the row matching the contents of 
+		arrayName in the database.  The matching
+		row must already exist.  The table can have already been
+		set or can be specified with  ?<span style="font-family:monospace; font-weight: bold;">-table</span>?, and
+		the key field(s) must either have been set or
+		specified with  ?<span style="font-family:monospace; font-weight: bold;">-keyfield</span>?.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">user</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return the current user value.  If
+		value is specified, it sets a new
+		value for the user.
+	      </div></div></dd></dl></div></div><div class="refsect1"><a name="resultobj"></a><h2>Result Object Commands</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultO [...]
+		Return the current autocache value.  If
+		value is specified, it sets a new
+		value for autocache.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		If autocache is true, the result object will
+		automatically cache rows as you use them.  This means
+		that the first time you execute a forall command, each
+		row is being cached in the result object itself and
+		will no longer need to access the SQL result.
+		<span class="emphasis"><em>Default is true</em></span>.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">cache</span>?</div></div><div style="margin-bottom:1.5ex ; paddin [...]
+		Cache the results of the current SQL result in the
+		result object itself.  This means that even if the
+		database connection is closed and all the results of
+		the DIO object are lost, this result object will still
+		maintain a cached copy of its records.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">errorcode</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current errorcode value.  If value
+		is specified, it sets a new value for errorcode.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		errorcode contains the current code from the
+		SQL database which specifies the result of the query
+		statement which created this object.  This variable
+		can be used to determine the success or failure of a
+		query.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">errorinfo</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current errorinfo value.  If value
+		is specified, it sets a new value for errorinfo.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		If an error occurred during the SQL query, DIO
+		attempts to set the value of errorinfo to the
+		resulting error message.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">fields</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Return the current fields value.  If
+		value is specified, it sets a new
+		value for fields.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		fields contains the list of fields
+		used in this query.  The fields are in order of the
+		fields retrieved for each row.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">forall</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Execute body over each record in the
+		result object.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">Types:</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-array</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Create
+		      <em class="replaceable"><code>varName</code></em>
+		      as an array where the indexes are the names of
+		      the fields in the table and the values are the
+		      values of the current row.
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-keyvalue</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list containing key-value pairs of fields
+		      and values from the current row. (-field value
+		      -field value)
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-list</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list that contains the values of the
+		      current row.
+		    </div></div></dd></dl></div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">next</span>? ?<span style="font-family:monos [...]
+		Retrieve the next record in the result object.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">Types:</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-array</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Create
+		      <em class="replaceable"><code>varName</code></em>
+		      as an array where the indexes are the names of
+		      the fields in the table and the values are the
+		      values of the current row.
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-keyvalue</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list containing key-value pairs of fields
+		      and values from the current row. (-field value
+		      -field value)
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-list</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list that contains the values of the
+		      current row.
+		    </div></div></dd></dl></div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">numrows</span>? ?<span style="font-family:mo [...]
+		Return the current numrows value.  If value is
+		specified, it sets a new value for numrows.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		numrows is the number of rows in this result.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">resultid</span>? ?<span style="font-family:monospace; font-weight [...]
+		Return the current resultid value.  If value is
+		specified, it sets a new value for resultid.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		resultid in most databases is the result
+		pointer which was given us by the database.  This
+		variable is not generic and should not really be used,
+		but it's there if you want it.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">rowid</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return the current rowid value.  If value is
+		specified, it sets a new value for rowid.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		rowid contains the number of the
+		current result record in the result object.  This
+		variable should not really be accessed outside of the
+		result object, but it's there if you want it.
+	      </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dio.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="dio.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="diodisplay.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align= [...]
diff --git a/rivet/manual2.4/diodisplay.html b/rivet/manual2.4/diodisplay.html
new file mode 100644
index 0000000..ebcf3fa
--- /dev/null
+++ b/rivet/manual2.4/diodisplay.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIODisplay - Database Interface Objects Display Class</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="dio_package.html" title="DIO"><link rel="next" href="diodisplay_package.html" title="DIODis [...]
diff --git a/rivet/manual2.4/diodisplay_package.html b/rivet/manual2.4/diodisplay_package.html
new file mode 100644
index 0000000..d6ffd5b
--- /dev/null
+++ b/rivet/manual2.4/diodisplay_package.html
@@ -0,0 +1,430 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIODisplay</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="diodisplay.html" title="DIODisplay - Database Interface Objects Display Class"><link rel="prev" href="diodisplay.html" title="DIODisplay - Database Interface Objects Display Class"><link rel [...]
+	  DIODisplay is an HTML display class that uses a DIO object
+	  to do the database work and a form object to do the
+	  displaying.
+	</p></div><div class="refsect1"><a name="idm2472"></a><h2>Options</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-DIO</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>dioObject</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The DIO object to be used in conjunction with this
+		display object.  This is a required field.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-cleanup</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</span>)</div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		If cleanup is true, when the display object is shown,
+		it will automatically destroy the DIO object, the form
+		object and itself. Default is true.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-confirmdelete</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</span>)</div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		If confirmdelete is true, attempting to delete a
+		record from the database first requires that the user
+		confirm that they wish to delete it.  If it is false,
+		deletion occurs without prompting the user. Defaults
+		to true.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-errorhandler</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>procName</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The name of a procedure to handle errors when they
+		occur.  During the processing of requests and pages,
+		sometimes unexpected errors can occur.  This procedure
+		will handle any errors.  It is called with a single
+		argument, the error string.  Use of the Tcl errorInfo
+		and errorCode variables is also recommended though.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		If no errorhandler is specified, the handle_error
+		method within the Display object will handle the
+		error.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-fields</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Specify a list of fields to be used in this object.
+		The fields list is actually created by using the
+		<span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> command to add fields to the
+		display, but this option can be useful to sometimes
+		over-set the list of fields created.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-form</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formObject</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A Rivet form object to use when displaying a form.  If
+		one is not specified, the display object will
+		automatically create one when it is necessary.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-functions</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>functionList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of functions to be displayed in the main menu.
+		This is a list of functions the user is allowed to
+		execute.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-pagesize</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>pageSize</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		How many records to show per page on a search or
+		list. Default is 25.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-rowfields</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of fields to display in each row of a search or
+		list.  When a search or list is conducted and the
+		resulting rows are displayed, this list will limit
+		which fields are displayed.  Default is all fields.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-rowfunctions</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>functionList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of functions to display in each row of a search
+		or list.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-searchfields</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of fields to allow a user to search by.  This
+		list will appear in the main screen as a drop-down box
+		of fields the user can search on.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-title</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>title</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The title of the display object.  This will be output
+		as the title of the HTML document.
+	      </div></div></dd></dl></div><div class="refsect2"><a name="idm2575"></a><h3>DIO Display Object Commands</h3><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">cleanup</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current cleanup value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for the cleanup
+		  option.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">delete</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Delete the specified key from the
+		  database.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The default action of this method is to call the DIO
+		  object's delete command.  This method can be
+		  overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">destroy</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Destroy the diodisplay object.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">DIO</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current DIO value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for DIO.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">errorhandler</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current errorhandler value.  If
+		  <em class="replaceable"><code>value</code></em> is specified, it
+		  sets a new value for errorhandler.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">fetch</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>   <span style="font-family:monospace; font-we [...]
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Fetch the specified <em class="replaceable"><code>key</code></em>
+		  from the database and store it as an array in
+		  <em class="replaceable"><code><em class="replaceable"><code>arrayName</code></em></code></em>.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The default of this method is to call the DIO object's fetch command.
+		  This method can be overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">field</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldName</code></em></span>  (<span style="font-family:monospace; f [...]
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Create a new field object and add it to the display.
+		  When a field is added to the display, a new object
+		  of the DIODisplayField class is created with its
+		  values.  See [FIXME - LINK] DIO Display Fields for
+		  options and values.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">fields</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current fields value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for fields.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">form</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current form value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for form.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">function</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>functionName</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Add a new function to the list of possible
+		  functions.  The display object will only execute
+		  methods and procs which are defined as functions by
+		  the object.  This is to protect the program from
+		  executing a different procedure other than what is
+		  allowed.  The <span style="font-family:monospace"><span class="command"><strong>function</strong></span></span> command
+		  adds a new function to the list of allowable
+		  functions.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">functions</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current functions value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for functions.  See
+		  [FIXME - LINK DIO Display Functions] for a list of
+		  default functions.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">pagesize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current form pagesize.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for pagesize.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowfields</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current form rowfields.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for rowfields.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowfooter</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Output the footer of a list of rows to the web page.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowfunctions</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current rowfunctions value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for rowfunctions.
+		  
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowheader</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Output the header of a list of rows to the web page.
+		By default, this is an HTML table with a top row
+		listing the fields in the table.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">searchfields</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current searchfields value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for searchfields.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">show</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Show the display object.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This is the main method of the display class.  It
+		  looks for a variable called <code class="varname">mode</code>
+		  to be passed in through a form response and uses
+		  that mode to execute the appropriate function.  If
+		  mode is not given, the <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>
+		  function is called.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function should be called for every page.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">showform</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display the form of the object.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method displays the form for this display
+		  object.  It is used in the <span style="font-family:monospace"><span class="command"><strong>Add</strong></span></span>
+		  and <span style="font-family:monospace"><span class="command"><strong>Edit</strong></span></span> methods but can be
+		  called separately if needed.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden if the default look of
+		  a form needs to be changed.  By default, the form
+		  displayed is simply the fields in a table, in order.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">showrow</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display a single row of a resulting list or search.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method is used to display a single row while
+		  displaying the result of a list or search.
+		  <em class="replaceable"><code>arrayName</code></em>
+		  is a fetched array of the record.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overriden if the default look of
+		  a row needs to be changed.  By default, each row is
+		  output as a table row with each field as a table
+		  data cell.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">showview</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display the view of the object.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method displays the view for this display
+		  object.  It is used in the
+		  <span style="font-family:monospace"><span class="command"><strong>Details</strong></span></span> methods but can be
+		  called separately if needed.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden if the default look of
+		  a view needs to be changed.  By default, the view
+		  displayed is simply the fields in a table, in order.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">store</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Store the specified
+		  <em class="replaceable"><code>arrayName</code></em>
+		  in the database.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The default of this method is to call the DIO
+		  object's store command.  This method can be
+		  overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">text</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current text value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for text.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">title</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current title value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for title.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">type</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current type value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for type.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">value</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current value value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for value.
+		</div></div></dd></dl></div></div><div class="refsect2"><a name="idm2888"></a><h3>DIO Display Functions</h3><p style="width:90%">
+	    These functions are called from the
+	    <span style="font-family:monospace"><span class="command"><strong>show</strong></span></span> method when a form response
+	    variable called <code class="varname">mode</code> is set.  If no
+	    mode has been set, the default mode is
+	    <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>.  The show method will handle
+	    the necessary switching of functions.  The show method
+	    also handles checking to make sure the function given is a
+	    true function.  If not, an error message is displayed.
+	    New functions can be added as methods or by use of the
+	    <span style="font-family:monospace"><span class="command"><strong>function</strong></span></span> command, and any of the
+	    default functions can be overridden with new methods to
+	    create an entirely new class.  These are the default
+	    functions provided.
+	  </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Add</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Show a form that allows the user to add a new entry
+		  to the database.  This function calls
+		  <span style="font-family:monospace"><span class="command"><strong>showform</strong></span></span> to display the form
+		  for adding the entry.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Cancel</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The <span style="font-family:monospace"><span class="command"><strong>Cancel</strong></span></span> function does nothing
+		  but redirect back to the <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>
+		  function.  This is handy for forms which have a
+		  cancel button to point to.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Delete</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  If <code class="varname">confirmdelete</code> is true (the
+		  default), the <span style="font-family:monospace"><span class="command"><strong>Delete</strong></span></span> function
+		  will ask the user if they're sure they want to
+		  delete the record from the database.  If
+		  <code class="varname">confirmdelete</code> is false, or if the
+		  user confirms they wish to delete, this function
+		  calls the <span style="font-family:monospace"><span class="command"><strong>DoDelete</strong></span></span> function to do
+		  the actual deletion of a record.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Details</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display the view of a single record from the database.  This function calls
+		  the <span style="font-family:monospace"><span class="command"><strong>showview</strong></span></span> method to display a single record from the database.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>DoDelete</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function actually deletes a record from the
+		  database.  Once it has deleted the record, it
+		  redirects the user back to the
+		  <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span> function.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Edit</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Show a form that allows the user to edit an existing
+		  entry to the database.  This function calls
+		  <span style="font-family:monospace"><span class="command"><strong>showform</strong></span></span> to display the form for
+		  editing the entry and fills in the fields with the
+		  values retrieved from the database.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>List</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function lists the entires contents of the
+		  database.  Each record is output in a row using the
+		  <span style="font-family:monospace"><span class="command"><strong>showrow</strong></span></span> method.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function is the main function of the display
+		  object.  If there is no mode, or once most commands
+		  complete, the user will be redirected to this
+		  function.  The default <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>
+		  function displays a list of functions the user can
+		  execute, a list of searchfields the user can search
+		  on, and a query field.  This query field is used by
+		  all of the other functions to determine what the
+		  user is trying to find.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  In the case of a <span style="font-family:monospace"><span class="command"><strong>search</strong></span></span>, query
+		  specifies what string the user is looking for in the
+		  specified search field.  In the case of
+		  <span style="font-family:monospace"><span class="command"><strong>delete</strong></span></span>,
+		  <span style="font-family:monospace"><span class="command"><strong>details</strong></span></span> or
+		  <span style="font-family:monospace"><span class="command"><strong>edit</strong></span></span>, the query specifies the
+		  database key to access.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Save</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function saves any data passed to using the
+		  <span style="font-family:monospace"><span class="command"><strong>store</strong></span></span> method.  This is primarily
+		  used by the <span style="font-family:monospace"><span class="command"><strong>add</strong></span></span> and
+		  <span style="font-family:monospace"><span class="command"><strong>edit</strong></span></span> commands to store the
+		  results of the form the user has filled out.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Search</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function searches the database for any row
+		  whose <code class="varname">searchBy</code> field matches
+		  <code class="varname">query</code>. Once any number of records
+		  are found, <span style="font-family:monospace"><span class="command"><strong>Search</strong></span></span> displays the
+		  results in rows.
+		</div></div></dd></dl></div></div><div class="refsect2"><a name="idm2969"></a><h3>DIO Display Fields</h3><p style="width:90%">
+	    Display fields are created with the
+	    <span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> command of the DIODisplay object.
+	    Each field is created as a new DIODisplayField object or
+	    as a subclass of DIODisplayField.  The standard form
+	    fields use the standard field class, while specialized
+	    field types use a class with different options but still
+	    supports all of the same commands and values a generic
+	    field does.
+	  </p><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>displayObject</code></em></span>   <span style="font-family:monospace; font-weight: bold;">field</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldname</code></em></span>  (<span style="font-family:mono [...]
+	    These are the standard options supported by field types:
+	  </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-formargs</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arguments</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  When a field is created, any argument which is not a
+		  standard option is assumed to be an argument passed
+		  to the form object when the field is shown in a
+		  form.  These arguments are all appended to the
+		  <code class="varname">formargs</code> variable.  You can use
+		  this option to override or add options after the
+		  initial creation of an object
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-readonly</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</span>)</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  If <code class="varname">readonly</code> is set to true, the
+		  field will not display a form entry when displaying
+		  in a form.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-text</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>text</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The text displayed next to the form or view field.
+		  By default, DIODisplay tries to figure out a pretty
+		  way to display the field name.  This text will
+		  override that default and display whatever is
+		  specified.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-type</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldType</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The type of field this is.  This type is used when
+		  creating the field in the form object.
+		  <em class="replaceable"><code>fieldType</code></em>
+		  can be any of the accepted form field types.  See
+		  [FIXME - LINK DIO Field Types] for a list of types
+		  available.
+		</div></div></dd></dl></div><p style="width:90%">
+	    All other arguments, unless specified in an individual
+	    field type, are passed directly to the form object when
+	    the field is created.  So, you can pass
+	    -size or -maxsize to
+	    specify the length and maximum length of the field entry.
+	    Or, if type were textarea, you could define
+	    -rows and -cols to
+	    specify its row and column count.
+	  </p></div><div class="refsect2"><a name="idm3027"></a><h3>DIO Display Field Types</h3><p style="width:90%">
+	    The following is a list of recognized field types by
+	    DIODisplay.  Some are standard HTML form fields, and
+	    others are DIODisplay fields which execute special actions
+	    and functions.
+	  </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="diodisplay.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="diodisplay.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="session_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="le [...]
diff --git a/rivet/manual2.4/directives.html b/rivet/manual2.4/directives.html
new file mode 100644
index 0000000..08849ce
--- /dev/null
+++ b/rivet/manual2.4/directives.html
@@ -0,0 +1,232 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Apache Directives</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="request.html" title="Apache Child Processes Lifecycle and Request Processing"><link rel="next" href="commands.html" title [...]
+	      Rivet directives are used within the Apache httpd server
+	      configuration to set up the environment where Rivet script
+	      will be run.  Their precedence is as follows: 
+	      <span style="font-family:monospace"><span class="command"><strong>RivetDirConf</strong></span></span>,
+	      <span style="font-family:monospace"><span class="command"><strong>RivetUserConf</strong></span></span>,
+	      <span style="font-family:monospace"><span class="command"><strong>RivetServerConf</strong></span></span>, meaning that DirConf will
+	      override UserConf, which will in turn override ServerConf.
+	   </p></div><div class="section"><div class="titlepage"></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">RivetServerConf</span>  (<span style="font-family:monospace; font-weight: bold;">CacheSize</span> | <span style="font-family:monospace; font-weight: bold;">ServerInitScript</span> | <span style="font-family:monospace; font-weight: bold;">GlobalInitScript</span> | <span style="font-fam [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					<span style="font-family:monospace"><span class="command"><strong>RivetServerConf</strong></span></span> specifies a global
+			    	option that is valid for the whole server.  If you have a
+			    	virtual host, in some cases, the option specified in the
+			    	virtualhost takes precedence over the 'global' version.
+				</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+						<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">CacheSize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>size</code></em></span>?</div></div>
+	      		</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						  Sets the size of the internal page cache, where
+						  <em class="replaceable"><code>size</code></em> is
+						  the number of byte-compiled pages to be cached for
+						  future use.  Default is
+						  <span style="font-family:monospace"><span class="command"><strong>MaxRequestsPerChild</strong></span></span> / 5, or 50,
+						  if <span style="font-family:monospace"><span class="command"><strong>MaxRequestsPerChild</strong></span></span> is 0.
+						</div><div style="margin-bottom:1.5ex ; padding .5ex">
+						  This option is completely global, even when using
+						  separate, per-virtual host interpreters.
+						</div></div></dd><dt><span class="term">
+	   				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ServerInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	   			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			   			Tcl script which is to run when the master interpreter is created. 
+			   			Namespaces, variables and packages loaded during this stage will 
+			   			be copied later on in the startup process, when child
+			   			processes are created. 
+			   		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        This option is only available at the global level.
+			   		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					    	The directive <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> plays a special
+					    	role since the script runs within the master interpreter,
+					    	an interpreter created before the Apache parent process spawns
+					    	the children that actually will serve the requests coming from
+					    	the network. During this stage Apache is still running as a 
+					    	single process, so this is the right place for doing 
+					    	initializations or loading packages. Since this
+					    	script will be running in a single process environment (from the
+					    	Apache point of view) <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> 
+					    	is also the right place for doing anything needs to avoid
+				        	resource concurrency among processes (e.g. the creation and 
+					    	initialization of an IPC system)
+	   				</div></div></dd><dt><span class="term">
+						<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">GlobalInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+			      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						  Tcl script run as part of a child process initialization. 
+						  If the option SeparateVirtualInterp is not used this is
+						  the right place where file handles, database connections or sockets can 
+						  be opened.
+						  The argument <em class="replaceable"><code>script</code></em>
+						  is an actual Tcl script, so to run a file, you would
+						  do: <pre class="programlisting">RivetServerConf GlobalInitScript "source /var/www/foobar.tcl"</pre>
+						</div><div style="margin-bottom:1.5ex ; padding .5ex">
+						  This option is ignored in virtual hosts.
+						</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ChildInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be evaluated when each Apache child
+					  process is initialized. This is the recommended
+					  place to load modules, create global variables, open
+					  connections to other facilities (such as databases)
+					  and so on.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this script is run in addition to
+					  any global childinitscript. 
+	                  When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterp</strong></span></span>
+	                  any <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> placed within a 
+	                  &lt;VirtualHost ...&gt;....&lt;/VirtualHost&gt;
+	                  will be that Virtual Host specific ininitalization
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ChildExitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be evaluated when each Apache child
+					  process exits. This is the logical place to clean
+					  up resources created in ChildInitScript, 
+					  if necessary.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this script is run in addition to
+					  any global childexitscript.
+	              
+	              When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterp</strong></span></span>
+	              any <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> placed within a 
+	              &lt;VirtualHost ...&gt;....&lt;/VirtualHost&gt;
+	              will be that Virtual Host specific exit handler
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">BeforeScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be evaluated before each server parsed
+					  (.rvt) page.  This can be used to create a standard
+					  header, for instance.  It could also be used to load
+					  code that you need for every page, if you don't want
+					  to put it in a GlobalInitScript
+					  ChildInitScript when you are first
+					  developing a web site.
+					  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+					    This code is evaluated at the global level, not
+					    inside the request namespace where pages are
+					    evaluated.
+					  </td></tr></table></div>
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this option takes precedence over
+					  the global setting.
+					</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AfterScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Script to be called after each server parsed (.rvt) page.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  In virtual hosts, this option takes precedence over
+		  the global setting.
+		</div></div></dd><dt><span class="term">
+				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ErrorScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				  When Rivet encounters an error in a script, it
+				  constructs an HTML page with some information about
+				  the error, and the script that was being
+				  evaluated. If an ErrorScript is
+				  specified, it is possible to create custom error
+				  pages.  This may be useful if you want to make sure
+				  that users never view your source code.
+				</div><div style="margin-bottom:1.5ex ; padding .5ex">
+				  In virtual hosts, this option takes precedence over
+				  the global setting.
+				</div></div></dd><dt><span class="term">
+				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AfterEveryScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					AfterEveryScript is a script that is to
+					be run anyway before requests processing ends. This script
+					is therefore run both when the content generation script
+					completes successfully and when its execution is interrupted
+					by <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>. The code in this script
+					can understand whether it's running after the page was
+					interrupted by calling <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>	
+					with the argument  ?<span style="font-family:monospace; font-weight: bold;">-aborting</span>?. The command
+					will return 1 if an abort_page call took place 
+					earlier in the request processing.
+				</div></div></dd><dt><span class="term">
+				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AbortScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					The execution of a can be interrupted by
+					invoking <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>. If  
+					an AbortScript is defined for the page
+					being generated, control is passed to it. AbortScript
+					is the right place where specific actions can be taken
+					to catch resources left dangling by the sudden interruption.				
+				</div></div></dd><dt><span class="term">
+				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadDirectory</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>directory</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Directory to place uploaded files.</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  			In virtual hosts, this option takes precedence over
+		  			the global setting.
+				</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadMaxSize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>size</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Maximum size for uploaded files.</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  In virtual hosts, this option takes precedence over
+		  the global setting.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadFilesToVar</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This option controls whether it is possible to
+		  upload files to a Tcl variable.  If you have a size
+		  limit, and don't have to deal with large files, this
+		  might be more convenient than sending the data to a
+		  file on disk.
+		</div></div></dd><dt><span class="term">
+		     <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">SeparateVirtualInterps</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+		  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+      		  If on, Rivet will create a separate Tcl interpreter
+      		  for each Apache virtual host.  This is useful in an
+      		  ISP type situation where it is desirable to separate
+      		  clients into separate interpreters, so that they
+      		  don't accidentally interfere with one another.
+      		</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+   		      This option is, by nature, only available at the
+   		      global level. By enabling <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
+   		      you must rely only on <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> to
+   		      initialize the interpreters. Don't expect the 
+   		      initialization done in <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> and 
+   		      <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> to be handed down to the
+   		      slave interpreters that are private to each configured 
+   		      virtual host.
+   		   </td></tr></table></div></div></dd><dt><span class="term">
+		     <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">SeparateChannels</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+		  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+      			Internally mod_rivet creates a new Tcl channel (Rivet channel) which is configured
+      			as <span style="font-family:monospace"><span class="command"><strong>stdout</strong></span></span> and registered to each existing interpreter.
+      			There is no need of multiple channels in a single thread as each thread can 
+      			serve only one request at a time. But if you are deploying mod_rivet in a
+      			complex environment running unrelated applications developed by 
+      			different teams, it could be the case to have <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
+      			set. If you want to enhance the environment separation you may also
+      			set <span style="font-family:monospace"><span class="command"><strong>SeparateChannels</strong></span></span> to force mod_rivet to create
+      			a channel per each Tcl interpreter thus enabling single application
+      			code to change the Rivet channel parameters without affecting other
+      			applications (even though changing the Tcl channel parameters is a rare 
+      			necessity). Setting this options increases the system overheads as each
+      			Rivet channel needs to allocate its own control structures and internal
+      			buffers.
+      		</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+      			This option is implemented in order to have fine-grained control over mod_rivet. In
+      			nearly all practical cases you won't need to change Rivet Channel (stdout) settings
+      			for different applications by calling <span style="font-family:monospace"><span class="command"><strong>fconfigure stdout ....</strong></span></span>. 
+      			This option is, by nature, only available at the global level and has effect only if 
+   		      also <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is set
+   		   </td></tr></table></div></div></dd><dt><span class="term">
+				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">HonorHeaderOnlyRequests</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				  If a HEAD requests is issued by the client Rivet detects
+				  this case and sends back to the client a standard header 
+				  response. If the real header has to be examined (e.g. 
+				  for debugging) you can turn this options on. 
+				</div><div style="margin-bottom:1.5ex ; padding .5ex">This option is, by nature, only available at the global level</div></div></dd></dl></div></div></dd><dt><span class="term">
+			  <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">RivetDirConf</span>  (<span style="font-family:monospace; font-weight: bold;">BeforeScript</span> | <span style="font-family:monospace; font-weight: bold;">AfterScript</span> | <span style="font-family:monospace; font-weight: bold;">ErrorScript</span> | <span style="font-family:monos [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			    These options are the same as for
+			    <span style="font-family:monospace"><span class="command"><strong>RivetServerConf</strong></span></span>, except that they are
+			    only valid for the directory where they are specified, and
+			    its subdirectories.  It may be specified in <span style="font-family:monospace"><span class="command"><strong>Directory</strong></span></span> 
+			    sections.
+			  </div></div></dd><dt><span class="term">
+			  <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">RivetUserConf</span>  (<span style="font-family:monospace; font-weight: bold;">BeforeScript</span> | <span style="font-family:monospace; font-weight: bold;">AfterScript</span> | <span style="font-family:monospace; font-weight: bold;">ErrorScript</span> | <span style="font-family:mono [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			    These options are the same as for
+			    <span style="font-family:monospace"><span class="command"><strong>RivetServerConf</strong></span></span>, except that they are
+			    only valid for the directory where they are specified, and
+			    its subdirectories.
+			  </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="request.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="commands.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Child Processes Lifecycle and Request Proce [...]
diff --git a/rivet/manual2.4/encode.html b/rivet/manual2.4/encode.html
new file mode 100644
index 0000000..ab1188d
--- /dev/null
+++ b/rivet/manual2.4/encode.html
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>encode</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="entities.html" title="RivetEntities"><link rel="prev" href="entities.html" title="RivetEntities"><link rel="next" href="decode.html" title="decode"></head><body bgcolor="white" text="black" link [...]
+                encode a string replacing every occurrence of characters for 
+                which an SGML entity exists
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::encode</span>   <span style="font-family:monospace; font-weight: bold;">string</span>  ?<span style="font-family:monospace; font-weight: bold;">-encoding <em class="replaceable"><code>&lt;encoding&gt;</code></em>< [...]
+                <span style="font-family:monospace"><span class="command"><strong>::rivet::encode</strong></span></span> returns a copy of the input string
+                after replacing every occurence of characters for which an SGML entity 
+                exists.  By default the command assumes the string is encoded in UTF-8,
+                other encodings are supported by passing the 
+                <span style="font-family:monospace"><span class="command"><strong>-encoding &lt;encoding&gt;</strong></span></span> argument. The list of
+                available encodings is returned by command
+            </p><pre class="programlisting">encoding names</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="entities.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="entities.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="decode.html"><img src="images/next.png" alt="Next"></a>< [...]
diff --git a/rivet/manual2.4/entities.html b/rivet/manual2.4/entities.html
new file mode 100644
index 0000000..12e4877
--- /dev/null
+++ b/rivet/manual2.4/entities.html
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>RivetEntities</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="toglyphs.html" title="toGlyphs"><link rel="next" href="encode.html" title="encode"></head><body bgcolor="white" text="black" link=" [...]
+				The <span style="font-family:monospace"><span class="command"><strong>RivetEntities</strong></span></span> package was kindly provided by Harald Oehlmann and 
+				is largely taken from a simple yet clever encoder/decoder of HTML entities
+ 				starting from a utf-8 character string. The original code writted by Andy Goth is 
+				at http://wiki.tcl.tk/26403. Package entities extends the functionality in the 
+				original code combining it with Tcl's 'encoding' command to encode/decode from 
+				any supported encoding
+        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="toglyphs.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="encode.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">toGlyphs </td><td width="20%" align="center"><a accesskey="h" href="inde [...]
diff --git a/rivet/manual2.4/env.html b/rivet/manual2.4/env.html
new file mode 100644
index 0000000..92aa94d
--- /dev/null
+++ b/rivet/manual2.4/env.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>env</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="debug.html" title="debug"><link rel="next" href="escape_sgml_chars.html" title="escape_sgml_chars"></head><body bgcolo [...]
+		    Loads a single "environmental variable" into a Tcl variable.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::env</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varName</code></em></span>?</div></div></div><div class="refsect1"><a name="idm854"></a><h2>Description</h2><p style="width:90%">
+		    If it is only necessary to load one environmental variable,
+		    this command may be used to avoid the overhead of loading
+		    and storing the entire array.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="escape_sgml_chars.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign=" [...]
diff --git a/rivet/manual2.4/escape_sgml_chars.html b/rivet/manual2.4/escape_sgml_chars.html
new file mode 100644
index 0000000..1287f21
--- /dev/null
+++ b/rivet/manual2.4/escape_sgml_chars.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>escape_sgml_chars</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="env.html" title="env"><link rel="next" href="escape_shell_command.html" title="escape_shell_command"></h [...]
+		    Scans through each character in the specified string looking
+		    for any special (with respect to SGML, and hence HTML) characters
+		    from the specified string, and returns the result.  
+		    For example, the right angle bracket is escaped to the corrected
+            ampersand gt symbol.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="env.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="escape_shell_command.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign= [...]
diff --git a/rivet/manual2.4/escape_shell_command.html b/rivet/manual2.4/escape_shell_command.html
new file mode 100644
index 0000000..c461a8c
--- /dev/null
+++ b/rivet/manual2.4/escape_shell_command.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>escape_shell_command</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="escape_sgml_chars.html" title="escape_sgml_chars"><link rel="next" href="escape_string.html" title="e [...]
+		    Scans through each character in the specified string looking
+		    for any shell metacharacters, such as asterisk, less than and
+		    greater than, parens, square brackets, curly brackets, angle 
+		    brackets, dollar signs, backslashes, semicolons, ampersands,
+		    vertical bars, etc.	
+		</p><p style="width:90%">
+		    For each metacharacter found, it is quoted in the result by
+		    prepending it with a backslash, returning the result.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="escape_sgml_chars.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="escape_string.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left"  [...]
diff --git a/rivet/manual2.4/escape_string.html b/rivet/manual2.4/escape_string.html
new file mode 100644
index 0000000..2b8fdf2
--- /dev/null
+++ b/rivet/manual2.4/escape_string.html
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>escape_string</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="escape_shell_command.html" title="escape_shell_command"><link rel="next" href="exit.html" title="exit"></hea [...]
+		    Scans through each character in the specified string looking
+		    for special characters, escaping them as needed, mapping
+		    special characters to a quoted hexadecimal equivalent,
+		    returning the result.
+		</p><p style="width:90%">
+		    This is useful for quoting strings that are going to be
+		    part of a URL.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="escape_shell_command.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="exit.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign [...]
diff --git a/rivet/manual2.4/examples.html b/rivet/manual2.4/examples.html
new file mode 100644
index 0000000..6b49434
--- /dev/null
+++ b/rivet/manual2.4/examples.html
@@ -0,0 +1,496 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Examples and Usage</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="xml.html" title="xml"><link rel="next" href="tcl_packages.html" title="Rivet Tcl Packages"></head><body bgcolor="white" text=" [...]
+        Some examples of Rivet usage follow.  Some prior Tcl knowledge
+        is assumed.  If you don't know much Tcl, don't worry, it's easy,
+        and there are some good resources available on the web that will
+        get you up to speed quickly.  Go to the 
+        <a class="link" href="help.html#websites" title="Web Sites">web sites</a> section and have a look.
+    </p><div class="example"><a name="hello_world"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p style="width:90%">
+			As with any tool, it's always nice to see something work, so
+			let's create a small "Hello World" page.
+	    </p><p style="width:90%">
+			Assuming you have Apache configured correctly, create a file
+			called <code class="filename">hello.rvt</code> where Apache can find
+			it, with the following content:
+        </p><pre class="programlisting">&lt;?
+puts "Hello World"
+?&gt;
+
+</pre><p style="width:90%">
+			If you then access it with your browser, you should see a
+			blank page with the text "Hello World" (without the quotes) on it.
+            The command <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> is the good old Tcl command for
+            terminal printing, which appends to the argument string the control
+            characters needed to open a newline. When you don't have to run through
+            complex elaboration and the output can be lumped
+            in a single string (just like in the 'Hello World' example) you
+            can draw on the popular shorthand syntax for string
+            output that comes handy in many cases
+        </p><pre class="programlisting">&lt;?= "Hello World" ?&gt;
+</pre><p style="width:90%">
+            which is translated into 
+            </p><pre class="programlisting">puts -nonewline "Hello World"</pre><p style="width:90%">
+        </p></div></div><br class="example-break"><div class="example"><a name="idm1719"></a><p class="title"><b>Example 2. Generate a Colorful Table</b></p><div class="example-contents"><p style="width:90%">
+	   	In another simple example, we dynamically generate a table selecting
+	   	a different background color for each cell. The font color is determined
+	   	through a simple CSS rule embedded in a HTML &lt;style&gt; element. Create
+	   	the file color-table.tcl and put the following code in it
+	  	</p><pre class="programlisting">puts "&lt;html&gt;&lt;head&gt;"
+puts "&lt;style&gt;\n  td { font-size: 12px; }\n  td.bright { color: #eee; }\n  td.dark { color: #222; }\n&lt;/style&gt;"
+puts "&lt;/head&gt;&lt;body&gt;"
+puts "&lt;table&gt;"
+
+# we create a 8x8 table selecting a different background for each cell
+
+for {set i 0} { $i &lt; 9 } {incr i} {
+    puts "&lt;tr&gt;"
+    for {set j 0} {$j &lt; 9} {incr j} {
+
+        set r [expr int(255 * ($i + $j) / 16)] 
+        set g [expr int(255 * (8 - $i + $j) / 16)]
+        set b [expr int(255 * ($i + 8 - $j) / 16)]
+
+# determining the background luminosity (YIQ space of NTSC) and choosing
+# the foreground color accordingly in order maintain maximum contrast
+
+        if { [expr ($r*0.29894)+($g*0.58704)+($b*0.11402)] &gt; 128} {
+            set cssclass "dark"
+        } else {
+            set cssclass "bright"
+        }
+
+        puts [format "&lt;td bgcolor=\"%02x%02x%02x\" class=\"%s\"&gt;$r $g $b&lt;/td&gt;" $r $g $b $cssclass]
+    }
+    puts "&lt;/tr&gt;"
+}
+puts "&lt;/table&gt;"
+puts "&lt;/body&gt;&lt;/html&gt;"
+</pre><p style="width:90%">
+	    	If you read the code, you can see that this is pure Tcl.  We
+	    	could take the same code, run it outside of Rivet, and it
+	    	would generate the same HTML
+	  	</p><p style="width:90%">
+	    	The result should look something like this:
+	  	</p><div><img src="images/color-table.png"></div></div></div><br class="example-break"><div class="example"><a name="variable_access"></a><p class="title"><b>Example 3. Variable Access</b></p><div class="example-contents"><p style="width:90%">
+			Here, we demonstrate how to access variables set by GET or
+			POST operations.
+      </p><p style="width:90%">
+			Given an HTML form like the following:
+      </p><pre class="programlisting">&lt;form action="vars.rvt"&gt;
+  &lt;table&gt;
+    &lt;tbody&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Title:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;&lt;input name="title" /&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Salary:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;&lt;input name="salary" /&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Boss:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;&lt;input name="boss" /&gt;&lt;/td&gt;&lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Skills:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;
+          &lt;select name="skills" multiple="multiple"&gt;
+            &lt;option&gt;C&lt;/option&gt;
+            &lt;option&gt;Java&lt;/option&gt;
+            &lt;option&gt;Tcl&lt;/option&gt;
+            &lt;option&gt;Perl&lt;/option&gt;
+          &lt;/select&gt;
+        &lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;input type="submit" /&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+    &lt;/tbody&gt;
+  &lt;/table&gt;
+&lt;/form&gt;
+
+</pre><p style="width:90%">
+			We can use this Rivet script to get the variable values:
+      </p><pre class="programlisting">&lt;?
+set errlist {}
+if { [::rivet::var exists title] } {
+    set title [::rivet::var get title]
+} else {
+    set errlist "You need to enter a title"
+}
+
+if { [::rivet::var exists salary] } {
+    set salary [::rivet::var get salary]
+    if { ! [string is digit $salary] } {
+        lappend errlist "Salary must be a number"
+    }
+} else {
+    lappend errlist "You need to enter a salary"
+}
+
+if { [::rivet::var exists boss] } {
+    set boss [::rivet::var get boss]
+} else {
+    set boss "Mr. Burns"
+}
+
+if { [::rivet::var exists skills] } {
+    set skills [::rivet::var list skills]
+} else {
+    lappend errlist "You need to enter some skills"
+}
+
+if { [llength $errlist] != 0 } {
+    foreach err $errlist {
+        puts "&lt;b&gt; $err &lt;/b&gt;"
+    }
+} else {
+    puts "Thanks for the information!"
+    ?&gt;
+    &lt;table&gt;
+      &lt;tbody&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Title:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $title ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Boss:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $boss ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Salary:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $salary ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Skills:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $skills ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+      &lt;/tbody&gt;
+    &lt;/table&gt;
+    &lt;?
+}
+?&gt;
+
+</pre><p style="width:90%">
+			The first statement checks to make sure that the
+			<code class="varname">boss</code> variable has been passed to the
+			script, and then does something with that information.  If
+			it's not present, an error is added to the list of errors.
+      </p><p style="width:90%">
+	In the second block of code, the variable
+	<code class="varname">salary</code> is fetched, with one more error
+	check - because it's a number, it needs to be composed of
+	digits.
+      </p><p style="width:90%">
+	The <code class="varname">boss</code> variable isn't required to have
+	been sent - we set it to "Mr. Burns" if it isn't among the
+	information we received.
+      </p><p style="width:90%">
+	The last bit of variable handing code is a bit trickier.
+	Because <code class="varname">skills</code> is a listbox, and can
+	potentially have multiple values, we opt to receive them as a
+	list, so that at some point, we could iterate over them.
+      </p><p style="width:90%">
+	The script then checks to make sure that
+	<code class="varname">errlist</code> is empty and outputting a thankyou
+	message.  If <code class="varname">errlist</code> is not empty, the list
+	of errors it contains is printed.
+      </p></div></div><br class="example-break"><div class="example"><a name="file_upload"></a><p class="title"><b>Example 4. File Upload</b></p><div class="example-contents"><p style="width:90%">
+			The <span style="font-family:monospace"><span class="command"><strong>::rivet::upload</strong></span></span> command endows Rivet with an
+			interface to access files transferred over http as parts of a
+			multipart form.  The following HTML in one file, say,
+			<code class="filename">upload.html</code> creates a form with a text
+			input entry. By clicking the file chooser button the file
+			browser shows up and the user selects the file to be uploaded
+			(the file path will appear in the text input).  In order to make
+			sure you're uploading the whole file you must combine the
+			action of the enctype and method attributes of the
+			&lt;form...&gt; tag in the way shown in the example.  Failure
+			to do so would result in the client sending only the file's
+			path, rather than the actual contents.
+      </p><pre class="programlisting">&lt;form action="foo.rvt" enctype="multipart/form-data" method="post"&gt;
+&lt;input type="file" name="MyUpload"&gt;&lt;/input&gt;
+&lt;input type="submit" value="Send File"&gt;&lt;/input&gt;
+&lt;/form&gt;
+
+</pre><p style="width:90%">
+			In the script invoked by the form
+			(<code class="filename">upload.rvt</code>) <span style="font-family:monospace"><span class="command"><strong>upload</strong></span></span>
+			 ?<span style="font-family:monospace; font-weight: bold;">argument ...</span>? commands can be used to manipulate the
+			various files uploaded.
+      </p><pre class="programlisting">&lt;?
+::rivet::upload save MyUpload /tmp/uploadfiles/file1
+puts "Saved file [::rivet::upload filename MyUpload] \
+	([::rivet::upload size MyUpload] bytes) to server"
+?&gt;
+
+</pre><p style="width:90%">
+			Don't forget that the apache server must have write access to
+			the directory where files are being created.  The Rivet Apache
+			directives have a substantial impact on the upload process,
+			you have to carefully read the docs in order to set the
+			appropriate directives values that would match your
+			requirements.
+      </p><p style="width:90%">
+			It is also important to understand that some 
+			<span style="font-family:monospace"><span class="command"><strong>upload</strong></span></span> commands are effective only when
+			used in a mutually exclusive way.  Apache stores the data in
+			temporary files which are read by the <span style="font-family:monospace"><span class="command"><strong>upload save
+			 ?<span style="font-family:monospace; font-weight: bold;">upload name</span>? ?<span style="font-family:monospace; font-weight: bold;">filename</span>?</strong></span></span> or by the
+			<span style="font-family:monospace"><span class="command"><strong>upload data  ?<span style="font-family:monospace; font-weight: bold;">upload name</span>?</strong></span></span>
+			command. Subsequent calls to these 2 commands using the same
+			 ?<span style="font-family:monospace; font-weight: bold;">upload name</span>? argument will return no data on the
+			second call.  Likewise <span style="font-family:monospace"><span class="command"><strong>upload channel  ?<span style="font-family:monospace; font-weight: bold;">upload
+			name</span>?</strong></span></span> will return a Tcl file channel that you
+			can use in regular Tcl scripts only if you haven't already
+			read the data, for example with a call to the <span style="font-family:monospace"><span class="command"><strong>upload
+			data  ?<span style="font-family:monospace; font-weight: bold;">upload name</span>?</strong></span></span> command.
+      </p></div></div><br class="example-break"><div class="example"><a name="file_download"></a><p class="title"><b>Example 5. File Download</b></p><div class="example-contents"><p style="width:90%">
+			In general setting up a data file for being sent over http is 
+			as easy as determining the file's URI and letting Apache's
+			do all that is needed. If this approach fits your design all 
+			you have to do is to keep the downloadable files somewhere 
+			within Apache's DocumentRoot (or in any of the directories 
+			Apache has right to access).
+      </p><p style="width:90%">
+			When a client sends a request for a file, Apache takes
+			care of determining the filetype, sends appropriate headers to
+			the client and then the file content. The client is responsible
+			for deciding how to handle the data accordingly to the 
+			"content-type" headers and its internal design. For example
+			when browsers give up trying to display a certain "content-type"
+			they display a download dialog box asking for directions from
+			the user. 
+      </p><p style="width:90%">
+            Rivet can help if you have more sofisticated needs.  For
+            instance you may be developing an application that uses
+            webpages to collect input data. This information might be
+            passed on to scripts or programs for processing. 
+            In this case a real file representing the
+            data doesn't exist and the content is generated on demand 
+            by the server. 
+            In other circumstances you may need to dynamically inhibit 
+            the download of specific files and hide them away, 
+            Your scripts may expunge from the pages
+            every link to these files (your pages are dynamic, aren't
+            they?) and move them out of way, but it looks like a
+            cumbersome solution.
+      </p><p style="width:90%">
+            Putting Tcl and Rivet in charge of the whole download
+            mechanism helps in building cleaner and safer approaches to
+            the download problem.
+      </p><p style="width:90%">
+            In this example a procedure checks for the existence of a
+            parameter passed in by the browser. The parameter is the name
+            (without extension) of a pdf file.  
+            Pdf files are stored in a directory whose path is
+            in the <span style="font-family:monospace"><span class="command"><strong>pdf_repository</strong></span></span> variable.
+      </p><p style="width:90%">
+            This code is reported as an example of how to control 
+            the protocol using the <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command.
+      </p><pre class="programlisting"># Code example for the transmission of a pdf file. 
+
+if {[::rivet::var exists pdfname]} {
+    set pdfname [::rivet::var get pdfname]
+
+# let's build the full path to the pdf file. The 'pdf_repository'
+# directory must be readable by the apache children
+
+    set pdf_full_path [file join $pdf_repository ${pdfname}.pdf]
+    if {[file exists $pdf_full_path]} {
+
+# Before the file is sent we inform the client about the file type and
+# file name. The client can be proposed a filename different from the
+# original one. In this case, this is the point where a new file name
+# must be generated.
+
+        ::rivet::headers type                       "application/pdf"
+        ::rivet::headers add Content-Disposition    "attachment; filename=${pdfname}.pdf"
+        ::rivet::headers add Content-Description    "PDF Document"
+
+# The pdf is read and stored in a Tcl variable. The file handle is
+# configured for a binary read: we are just shipping raw data to a
+# client. The following 4 lines of code can be replaced by any code
+# that is able to retrieve the data to be sent from any data source
+# (e.g. database, external program, other Tcl code)
+
+        set paper       [open $pdf_full_path r]
+        fconfigure      $paper -translation binary
+        set pdf         [read $paper]
+        close $paper
+
+# Now we got the data: let's tell the client how many bytes we are
+# about to send (useful for the download progress bar of a dialog box)
+
+        ::rivet::headers add Content-Length  [string length $pdf]
+
+# Let's send the actual file content
+
+        puts $pdf
+    } else {
+        source pdf_not_found_error.rvt
+    }
+} else {
+    source parameter_not_defined_error.rvt
+}
+
+</pre><p style="width:90%">
+            Before the pdf is sent the procedure sets the
+            <code class="constant">Content-Type</code>, 
+            <code class="constant">Content-Disposition</code>,
+            <code class="constant">Content-Description</code> and
+            <code class="constant">Content-Length</code> headers to inform
+            the client about the file type, name and size. Notice that in
+            order to set the <code class="constant">Content-Type</code> header Rivet 
+            uses a specialiezed form of the <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> 
+            command. Headers must be sent before data gets sent down the 
+            output channel. Messing with this prescription causes an error 
+            to be raised (in fact the protocol itself is been violated)
+      </p><p style="width:90%">
+	More information about the meaning of the mime headers in the
+	http context can be found at 
+	<a class="ulink" href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" target="_top">http://www.w3.org/Protocols/rfc2616/rfc2616.html</a>
+      </p></div></div><br class="example-break"><div class="example"><a name="ajax_xml_messaging"></a><p class="title"><b>Example 6. XML Messages and Ajax</b></p><div class="example-contents"><p style="width:90%">
+	The <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command is crucial for generating 
+	XML messages that have to be understood by JavaScript code used 
+	in Ajax applications. 
+      </p><p style="width:90%">
+	    Ajax is a web programming technique that heavily relies on the abilty of a web browser to run in backround
+	    JavaScript functions. JavaScript functions can be run as callbacks of events generated by a user interaction 
+	    but they can also react to other I/O events, for example network events. 
+	    Modern browsers endow JavaScript with the ability to build http GET/POST requests to be sent to a remote
+	    webserver. Generally these requests refer to scripts (e.g. Tcl scripts run by Rivet) which inherit as 
+	    variables the arguments encoded in the request. 
+	    The output produced by these scripts is sent back to the browser where callbacks functions extract 
+	    information and hand it down to functions that directly manipulate a page's DOM.
+	    Therefore through Ajax becomes possible to build web applications that are more responsive and flexible: 
+	    instead of going through the cycle of request-generation-transfer-display 
+	    of a whole page, Ajax scripts request from a webserver only the essential data to be displayed.
+	    Ajax emphasizes the requirement of separation between data and user interface, saves 
+	    the server from sending over the same html code and graphics if only a fraction of a page has to be 
+	    updated, allows the programmer to design flexible solutions for complex forms and makes possible
+	    to find new innovative approaches to simple problems (e.g. Google tips that show up as you type in
+	    a query). A downside of this approach is the large number of complexities, subtleties and incompatibilities 
+	    that still exist in the way different versions of popular browsers handle the DOM elements of a page.
+      </p><p style="width:90%">
+	    JavaScript can handle the communication between client and server through an instance of a 
+	    specialized object. For quite a long time 2 approaches existed, the non-IE world (Firefox,Safari,Opera...) 
+	    used the XMLHttpRequest class to create this object, whereas IE (before IE7) used the ActiveXObject class.
+	    With the release of IE7 Microsoft introduced native support for XMLHttpRequest class objects thus enabling
+	    programmers with a unique method for the development of dynamic pages. 
+	</p><p style="width:90%">
+	    By creating an instance of this class a POST or GET request can be sent to the server and the response is 
+	    stored in a property ('returnedText') of the communication object. It's become widely customary to encode 
+	    these responses in XML messages. You can invent your own message structure (either based on XML or anything 
+	    else), but one has to be aware that if the http headers are properly set and the message returned to the 
+	    client is a well formed XML fragment, also the property XMLResponse is assigned with a reference to an object 
+	    that represents the DOM of the XML response. By means of the XML W3C DOM interface the programmer can easily
+	    manipulate the data embedded in the XML message.
+	</p><p style="width:90%">
+	    In this example a Rivet script initializes an array with the essential data regarding a few of the major 
+	    composers of the european music. This array plays the role of a database. The script sends back to the 
+	    client two types of responses: a catalog of the composers or a single record of a composer.
+	</p><pre class="programlisting">#
+# Ajax query servelet: a pseudo database is built into the dictionary 'composers' with the
+# purpose of emulating the role of a real data source. 
+# The script answers with  2 types of responses: a catalog of the record ids and a database 
+# entry matching a given rec_id. The script obviously misses the error handling and the
+# likes. Just an example to see rivet sending xml data to a browser. The full Tcl, JavaScript
+# and HTML code are available from http://people.apache.org/~mxmanghi/rivet-ajax.tar.gz
+
+# This example requires Tcl8.5 or Tcl8.4 with package 'dict' 
+# (http://pascal.scheffers.net/software/tclDict-8.5.2.tar.gz)
+# 
+
+# A pseudo database. rec_id matches a record in the db
+
+set composers [dict create  \
+                1 {first_name Claudio middle_name "" last_name Monteverdi   \
+                    lifespan 1567-1643 era Renaissance/Baroque}             \
+                2 {first_name Johann middle_name Sebastian last_name Bach   \
+                    lifespan 1685-1750 era Baroque }                        \
+                3 {first_name Ludwig middle_name "" last_name "van Beethoven" \
+                    lifespan 1770-1827 era Classical/Romantic}              \
+                4 {first_name Wolfgang middle_name Amadeus last_name Mozart \
+                    lifespan 1756-1791 era Classical }                      \
+                5 {first_name Robert middle_name "" last_name Schumann      \
+                    lifespan 1810-1856 era Romantic} ]
+
+# we use the 'load' argument in order to determine the type of query
+#
+# load=catalog:         we have to return a list of the names in the database
+# load=composer&amp;amp;res_id=&lt;id&gt;: the script is supposed to return the record
+#               having &lt;id&gt; as record id
+
+if {[::rivet::var exists load]} {
+
+# the xml declaration is common to every message (error messages included)
+
+    set xml "&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n"
+    switch [::rivet::var get load] {
+        catalog {
+            append xml "&lt;catalog&gt;\n"
+            foreach nm [dict keys $composers] {
+                set first_name  [dict get $composers $nm first_name]
+                set middle_name [dict get $composers $nm middle_name]
+                set last_name   [dict get $composers $nm last_name]
+                append xml "    &lt;composer key=\"$nm\"&gt;$first_name "
+                if {[string length [string trim $middle_name]] &gt; 0} {
+                    append xml "$middle_name "
+                }
+                append xml "$last_name&lt;/composer&gt;\n"
+            }
+            append xml "&lt;/catalog&gt;\n"
+        }
+        composer {
+            append xml "&lt;composer&gt;\n"
+            if {[::rivet::var exists rec_id]} {
+                set rec_id [::rivet::var get rec_id]
+                if {[dict exists $composers $rec_id]} {
+                    foreach {k v} [dict get $composers $rec_id] {
+                        append xml "&lt;$k&gt;$v&lt;/$k&gt;\n"
+                    }
+                }
+            }
+            append xml "&lt;/composer&gt;\n"
+        }
+    }
+
+# we have to tell the client this is an XML message. Failing to do so
+# would result in an XMLResponse property set to null
+
+    ::rivet::headers type "text/xml"
+    ::rivet::headers add Content-Length [string length $xml]
+    puts $xml
+}
+
+
+</pre><p style="width:90%">
+	    For sake of brevity the JavaScript and HTML will not listed here. They can be downloaded (along with the Tcl 
+	    script) stored in the <a class="ulink" href="http://people.apache.org/~mxmanghi/rivet-ajax.tar.gz" target="_top">rivet-ajax.tar.gz</a> archive. 
+	    By simply opening this tar archive in a directory accessible 
+	    by your apache server and pointing your browser to the rivetService.html page you should see a page with a 
+	    drop-down list. Every time a different name is picked from the list a new query is sent and logged in the 
+	    apache access.log file, even though the html is never reloaded.
+	</p></div></div><br class="example-break"><div class="example"><a name="calexample"></a><p class="title"><b>Example 7. A Calendar Utility</b></p><div class="example-contents"><p style="width:90%">
+	    Rivet comes with a <span class="emphasis"><em>Calendar</em></span> package that provides classes for printing 
+	    calendar tables in various forms.	
+	</p><p style="width:90%">
+		The <span class="emphasis"><em>HtmlCalendar</em></span> class prints a calendar table in a similar form the Unix 
+		program 'cal' does. Example: the following code
+		</p><pre class="programlisting">package require Calendar
+
+proc ::cal_cell_attributes { day month year weekday } {
+    if {$weekday == 3} {
+        return [list class curr_wkday]
+    }
+}
+
+set htmlc [HtmlCalendar #auto]
+set html_txt [$htmlc emit -container {table class calendar} -current_weekday 3 \
+                          -cell_function cal_cell_attributes ]
+puts $html_txt
+</pre><p style="width:90%">
+
+	    with some CSS styling would print
+	 </p><p style="width:90%">
+		</p><div><img src="images/calendar.png"></div><p style="width:90%">
+	 </p></div></div><br class="example-break"></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xml.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="tcl_packages.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">xml </td><td width="20%" align="center"><a ac [...]
diff --git a/rivet/manual2.4/exit.html b/rivet/manual2.4/exit.html
new file mode 100644
index 0000000..2870686
--- /dev/null
+++ b/rivet/manual2.4/exit.html
@@ -0,0 +1,30 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>exit</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="escape_string.html" title="escape_string"><link rel="next" href="headers.html" title="headers"></head><body bgcolor=" [...]
+				Replaces Tcl's <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> core command. <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+				interrupts execution of the current script and passes execution to AbortScript if
+				such script is set. After AbortScript has finished and request processing completed
+				the child process is forced to exit by calling Tcl_Exit producing the same final
+				effect of the core command. During an <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> execution the
+				exit condition can be detected
+				</p><pre class="programlisting">if {[<span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page -exiting</strong></span></span>]} {
+...handle exit condition
+}</pre><p style="width:90%">
+			</p><p style="width:90%">
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> has a single optional argument  ?<span style="font-family:monospace; font-weight: bold;">code</span>?. This 
+				value must be a positive integer number to be passed to Tcl_Exit. If any other value is
+				given  ?<span style="font-family:monospace; font-weight: bold;">code</span>? is set to 0. The exit code can be obtained from the dictionary
+				returned by <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_code</strong></span></span>
+			</p><pre class="programlisting">[::rivet::abort_code]
+&lt;== return_code  ?<span style="font-family:monospace; font-weight: bold;">code</span>? error_code exit</pre><p style="width:90%">
+				We support this command in order to have a gentle way to terminate a request processing
+				before actually exit the child process and avoid an abrupt interruption of a request that
+				might leave an application in a inconsistent state. In some cases <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+				could be the only way to exit a process and force the Apache HTTP web server to start
+				a fresh one. Moreover the core <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> could be called from third parties
+				software and you may not be aware of it. We thus decided to trap this command and give it 
+				the most gentle behavior still preserving the its basic purpose.
+			</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+				Nonetheless we discourage the programmer to use such command, and suggest to focus on proper
+				application design and avoid such a drastic way to bail out. 
+				If you need to restart the child processes from time to time we recommend to check the 
+				MaxRequests parameter in the 
+				<a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork MPM documentation</a></td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="escape_string.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align=" [...]
diff --git a/rivet/manual2.4/fb.html b/rivet/manual2.4/fb.html
new file mode 100644
index 0000000..d61823f
--- /dev/null
+++ b/rivet/manual2.4/fb.html
@@ -0,0 +1,260 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>FormBroker</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="formbroker.html" title="The Form Broker"><link rel="prev" href="formbroker.html" title="The Form Broker"><link rel="next" href="help.html" title="Resources - How to Get Help"></head><body bg [...]
+               Form broker object creator
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::FormBroker</span>   <span style="font-family:monospace; font-weight: bold;">create</span>  ?<span style="font-family:monospace; font-weight: bold;">-quoting quoting_procedure</span>? ?<span style="font-family:monospace;  [...]
+               The command returns a reference to a form broker object by creating
+               a representation of the form data using the list of variable 
+               descriptors passed to <span style="font-family:monospace"><span class="command"><strong>create</strong></span></span>. Each descriptor
+               is a list of parameter or parameter-value pairs whose order has as only requirement
+               to begin with the <span style="font-family:monospace"><span class="command"><strong>{variable_name variable_type}</strong></span></span> pair.
+               A formbroker object handles natively integer, unsigned, string, boolean and email data types.
+               The programmer can defined new data type and provide in the descriptor a
+               reference to a validating procedure for that type.
+            </p><p style="width:90%">
+               The optional  ?<span style="font-family:monospace; font-weight: bold;">-quoting quoting_procedure</span>? switch assigns a procedure to
+               be called to quote the form response values. The quoting procedure is any
+               procedure accepting a single string argument and returning its quoted value. A most
+               basic example is the FormBroker default quoting procedure
+            </p><pre class="programlisting">proc force_quote {str} {
+    return "'$str'"
+}</pre><p style="width:90%">
+               Other parameters of a descriptors are
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>type</strong></span></span>: the data type of the variable</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>bounds</strong></span></span>: limits of a variable value. The
+                  meanining of bounds depends on the variable type. For an integer is the
+                  maximum absolute value for that variable (for an unsigned the lower 
+                  limit is invariably 0), for a string is the maximum length of the string. The
+                  parameter bounds has no effect on an email data type
+               </li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>constrain</strong></span></span>: boolean value telling the variable has to be
+               forced to fulfill the constrain imposed by <span style="font-family:monospace"><span class="command"><strong>bounds</strong></span></span>. This field
+               is bidirectional in that it can be used by the validator to force the
+               variable value rewriting</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>validator</strong></span></span>: name of the specialized validator for this variable</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>default</strong></span></span>: default value of the variable if not set in a response array. 
+               When a variable is given a default value the form validation will not fail on the fact that
+               this variable may be missing from the form response array</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>quote</strong></span></span>: the variable value has to be quoted when written back in
+               the response array</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>validator</strong></span></span>: name of the validator procedure. The procedure
+                  can be any Tcl procedure accepting as argument the name of a dictionary
+                  holding the variable	internal representation. 
+               </li></ul></div><p style="width:90%">
+               An example of a form accepting four variable, one for each native type of a form broker object
+            </p><pre class="programlisting"> % set fbroker [::FormBroker create {var1 integer} {var2 unsigned} {var3 string} {var4 integer bounds {-10 100}}]
+::FormBroker::form0</pre></div><div class="refsect1"><a name="idm4030"></a><h2>Form broker object methods</h2><p style="width:90%">
+               The central method of a form broker object is <span style="font-family:monospace"><span class="command"><strong>validate</strong></span></span> 
+            </p><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">validate</span [...]
+                        The method <span style="font-family:monospace"><span class="command"><strong>validate</strong></span></span> takes as argument the name of an array of variables
+                        in the way this is produced by command <a class="xref" href="load_response.html" title="load_response">load_response</a>
+                        returning a form response. The optional argument <em class="replaceable"><code>-forcequote</code></em> causes the
+                        variable values to be rewritten and quoted. If the optional argument <em class="replaceable"><code>response copy</code></em>
+                        is present the validated response is copied in this array instead of the input   <span style="font-family:monospace; font-weight: bold;">response</span> 
+                        array.
+                     </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        If the form data have been validated the method <span style="font-family:monospace"><span class="command"><strong>validate</strong></span></span> returns <span class="emphasis"><em>true</em></span>
+                     </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        Example of form data validation (assuming ::rivet::load_response is loading the array <span class="emphasis"><em>response</em></span>
+                        with data taken from a form non displayed here)
+                     </div><pre class="programlisting">% set fbroker [::FormBroker create {var1 integer} {var2 unsigned} {var3 string} {var4 integer bounds {-10 100}}]
+::FormBroker::form0
+
+% ::rivet::load_response
+% parray response
+response(var1) = -10
+response(var2) = 20
+response(var3) = a string
+response(var4) = 50
+
+# let's keep a copy of the response
+
+% array set response_copy [array get response]
+
+# form data validation
+
+% $fbroker validate response
+true
+% $fbroker validate -forcequote response
+% parray response
+response(var1) = '-10'
+response(var2) = '20'
+response(var3) = 'a string'
+response(var4) = '50'
+
+# restore response original value
+
+% array set response [array get response_copy]
+% $fbroker validate -forcequote response response_copy
+true
+% parray response
+response(var1) = -10
+response(var2) = 20
+response(var3) = a string
+response(var4) = 50
+% parray response_copy 
+response_copy(var1) = '-10'
+response_copy(var2) = '20'
+response_copy(var3) = 'a string'
+response_copy(var4) = '50'
+
+# a form object has to be destroyed if it's not needed anymore
+
+% $fbroker destroy</pre></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">failing</span> </div></div><div style="margin- [...]
+                        In case the validation fails method <span style="font-family:monospace"><span class="command"><strong>failing</strong></span></span> returns a list
+                        of <span class="emphasis"><em>variable_name - error_condition</em></span> pairs for each 
+                        variable whose value failed to validate and was impossible to fix. This list
+                        is suitable to populate an array or used directly as a dictionary
+                     </div><pre class="programlisting">% package require formbroker
+1.0
+% set fbroker [::FormBroker create {var1 integer} \
+         {var2 unsigned} \
+         {var3 string} \
+         {var4 integer}]
+::FormBroker::form0
+% ::rivet::load_response
+
+# let's suppose we have an incomplete response
+% parray response
+response(var1) = '100'
+response(var2) = '20'
+response(var3) = 'a string'
+% $fbroker validate response
+false
+$fbroker failing
+var4 MISSING_VAR
+
+# this can be prevented by assigning a variable a default value
+
+% set fbroker [::FormBroker create {var1 integer} \
+                                   {var2 unsigned} \
+                                   {var3 string} \
+                                   {var4 integer default 0}]						
+::FormBroker::form1
+% $fbroker validate response
+true
+% parray response
+response(var1) = 100
+response(var2) = 20
+response(var3) = a string
+response(var4) = 0
+
+% set fbroker [::FormBroker create {var1 integer} \
+                                   {var2 unsigned} \
+                                   {var3 string length 10 constrain} \
+                                   {var4 integer bounds {-10 100}}]
+::FormBroker::form2
+% ::rivet::load_response
+
+# this time the response has invalid data
+
+% parray response
+response(var1) = 'aaaaa'
+response(var2) = '-20'
+response(var3) = 'a longer string that breaks the 10 chars max limit imposed'
+response(var4) = '150'
+% $fbroker validate response
+false
+% $fbroker failing
+var1 NOT_INTEGER var2 FB_OUT_OF_BOUNDS var4 FB_OUT_OF_BOUNDS</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+                        Notice that even though $response(var3) exceeds the 10 characters max length imposed to variable <span class="emphasis"><em>var3</em></span>
+                        this variable is not in the list returned by <span style="font-family:monospace"><span class="command"><strong>failing</strong></span></span> because
+                        the 'constrain' attribute forced the truncation of the string. 
+                        In fact this applies also to the integer and unsigned values 
+                     </div><pre class="programlisting">% set fbroker [::FormBroker create {var1 integer bounds 10 constrain} \
+			            {var2 unsigned constrain} \
+			            {var3 string length 10 constrain} \
+			            {var4 integer bounds {-10 100} constrain}]
+::FormBroker::form0
+% ::rivet::load_response
+% parray response
+response(var1) = abcdef
+response(var2) = -20
+response(var3) = a longer string that breaks the 10 chars max limit imposed
+response(var4) = 150
+% $fbroker validate response response_copy
+false
+% $fbroker failing
+var1 NOT_INTEGER
+% parray response_copy 
+response_copy(var2) = 0
+response_copy(var3) = a longer s
+response_copy(var4) = 100</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+                     The variable <span class="emphasis"><em>var1</em></span> could not be constrained because the input
+                     value "abcdef" is fundamentally incompatible
+                  </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">response</span>  ?<span style="font-family:mon [...]
+                        The <span style="font-family:monospace"><span class="command"><strong>response</strong></span></span> method fills 
+                        the array whose name is passed as optional argument
+                        with the last response processing. If this argument is omitted
+                        the method creates an array named <span class="emphasis"><em>response</em></span>.
+                     </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        This method can be called also if no form response validation has taken place: it
+                        simply populates the array with the default values assigned to the form variables. As
+                        such is a way to create form default arrays to initialize forms created with
+                        the <a class="xref" href="form_package.html" title="form">form</a> package.
+                     </div><pre class="programlisting">set fbroker [::FormBroker create {var1 integer default 0} \
+            {var2 unsigned default 1} \
+            {var3 string} \
+            {var4 integer default 0}]
+% $fbroker response a
+% parray a
+a(var1) = 0
+a(var2) = 1
+a(var4) = 0</pre></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">reset</span> </div></div><div style="margin-bottom:1. [...]
+                     	The method resets the object to its initial defaults
+                     </div></div></dd></dl></div></div><div class="refsect1"><a name="idm4095"></a><h2>Writing a variable form validator</h2><p style="width:90%">
+            	The form broker is by no means restricted to work only with its native
+            	data types: you may define your own form variable types and have
+            	them validated with their own variable validator. 
+            </p><p style="width:90%">
+            	A validator is a function accepting a dictionary as single argument and
+            	must return either FB_OK, if the variable value is valid, 
+            	or any other used defined error code. The dictionary argument stores
+            	the variable descriptor used internally by the form broker. The dictionary
+            	keys are listed 
+				</p><p style="width:90%">
+            	Suppose you're writing a form text entry that demands as input a network 
+            	interface MAC address. 
+            	A mac address is represented by 6 hexadecimal octets separated by 
+            	either a <span class="quote">“<span class="quote">-</span>”</span> (Windows convention) or <span class="quote">“<span class="quote">:</span>”</span> 
+            	(Unix, Mac convention). The procedure <span style="font-family:monospace"><span class="command"><strong>validate_mac</strong></span></span>
+            	checks the validity of the mac address and if validation is successful it
+            	transforms its representation into the Unix form. 
+            	By setting the key <span class="quote">“<span class="quote">constrain</span>”</span>
+            	in the dictionary <span class="emphasis"><em>mac_address_d</em></span> the procedure
+            	is telling the form broker to copy the transformed value back
+            	in the input response array
+            </p><pre class="programlisting">proc validate_mac {_mac_address_d} {
+    upvar $_mac_address_d mac_address_d
+
+    dict with mac_address_d {
+		  
+        set var [string trim $var]
+        if {[regexp {^[[:xdigit:]]{2}([:-][[:xdigit:]]{2}){5}$} $var]} {
+
+            set var [string tolower $var]
+
+            # we normalize the mac address to the Unix form.
+            # The dash '-' characters in the windows representation 
+            # are replaced by columns ':'
+
+            set var [regsub -all -- {-} $var :]
+
+            # the 'constrain' field is bidirectional:
+            # it tells the validator to curb/change the value
+            # within bonds/forms/representation. By setting it the
+            # validator tells the FormBroker to copy the value
+            # back in the response array
+
+            set constrain 1
+            return FB_OK
+
+         } else {
+
+            return FB_WRONG_MAC
+
+         }
+
+    }
+
+}
+% set fbroker [::FormBroker create {mac mac_address validator validate_mac}]
+% ::rivet::load_response r
+% parray r
+r(mac) = 00-A1-B2-C3-D4-C5
+% $fbroker validate r
+true
+% parray r
+r(mac) = 00:a1:b2:c3:d4:c5</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="formbroker.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="formbroker.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="help.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" a [...]
diff --git a/rivet/manual2.4/form.html b/rivet/manual2.4/form.html
new file mode 100644
index 0000000..5f19577
--- /dev/null
+++ b/rivet/manual2.4/form.html
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Form: An HTML Form Fields Generation Utility</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="session_package.html" title="Session Package"><link rel="next" href="form_package.html" title="form" [...]
+			The <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> package is a utility for generating html forms. A <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span>
+			object command saves the programmer from typing the cumbersome html code of input elements, 
+			working out a solution for better standardization and readability of the code. 
+			<span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> requires that only the minimum necessary to distinguish the element is
+			typed, greatly simplyfing the development of forms.
+			Options to the command are treated as a list of parameter-value pairs that become the defaults
+			for the corresponding attributes of the form.
+		</p><p style="width:90%">
+			A <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> object has specialized menthods to generate all of the standard 
+			input fields, i.e. text, password, hidden, generic button, submit or reset buttons and
+			image. <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> creates select input fields, radiobutton and checkbox
+			boolean options groups. Also new inputs introduced with HTML5 are supported: color, date, 
+			datetime, datetime-local, email, file, month, number, range, search, tel, time, url, week.
+		</p><p style="width:90%">
+			Other input elements can be generated using the general purpose 'field' method.			
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="session_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="form_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Session Package </td><td width="20%" align="center"><a accesskey= [...]
diff --git a/rivet/manual2.4/form_package.html b/rivet/manual2.4/form_package.html
new file mode 100644
index 0000000..0c42fcb
--- /dev/null
+++ b/rivet/manual2.4/form_package.html
@@ -0,0 +1,213 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>form</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="form.html" title="Form: An HTML Form Fields Generation Utility"><link rel="prev" href="form.html" title="Form: An HTML Form Fields Generation Utility"><link rel="next" href="calendar_package.html" [...]
+	                        creates and returns a new Tcl command named <em class="replaceable"><code>form_name</code></em>.
+			</p><div class="refsect2"><a name="idm3277"></a><h3>Options</h3><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-method</span>  ?<span style="font-family:monospace; font-weight: bold;">post|get</span> [...]
+			      			The http method for sending the form data back to the server.
+			      			Possible values are get or post
+			      		</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-name</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>form_name</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; pa [...]
+		      				a name for the form being created: this value becomes the value of the 
+		      				attribute 'name' in the &lt;form&gt; tag.
+		      			</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-defaults</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>default_values</code></em></span>?</div></div><div style="margin-bottom:1 [...]
+								an array of default values	to be assigned to the fields of the form. 
+								Every name in the array is matched with an input field, when
+								a given field gets added to the form it is initialized with the 
+								value of the corresponding variable in the array. 
+								This option works well in conjuction with the 
+								<span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> command of Rivet when default 
+								values come from another form.
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-action</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>URL</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								The URL the data are being sent to. If no  ?<span style="font-family:monospace; font-weight: bold;">-action</span>? switch is specified
+								the data are sent to the form's URL.
+							</div></div></dd></dl></div></div></div><div class="refsect1"><a name="idm3309"></a><h2>Form Object Commands</h2><p style="width:90%">
+	Form object commands follow the usual syntax of Tcl commands with a  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>subcommand</code></em></span>? argument playing the
+	role of a switch among various functionalities of the command. Form objects also need the  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>name</code></em></span>? parameter 
+				which is to become the value of the 'name' attribute in an input field. This argument is the key that has to be 
+				used by the server-side script to retrieve the input field value. 
+			</p><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+								form_object   <span style="font-family:monospace; font-weight: bold;">subcommand</span>  ?<span style="font-family:monospace; font-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">-option1 <em class="replaceable"><code>value1</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-option2 <em class="replaceable"><code>value2</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div [...]
+				Options passed to a subcommand are copied into the tag as attribute="value" pairs. 
+				Some subcommands (e.g. form, radiobuttons and checkboxes) treat specific options in a way 
+				that fits the specific organization and function of these fields. 
+			</p><p style="width:90%">
+				Exceptions to this general syntax are the <span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> and <span style="font-family:monospace"><span class="command"><strong>end</strong></span></span> subcommands.
+				<span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> is an abstract input field creation method and requires an additional
+				parameter specifiyng the type of field to create. Every concrete input field generation command
+				uses this subcommand internally to print the final html.
+			</p></div><div class="refsect1"><a name="idm3332"></a><h2>Subcommands</h2><div class="refsect2"><a name="idm3334"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">start</span>  ?<span style="font-fam [...]
+								Print the &lt;form&gt; tag with all its attributes. 
+								This command must be called as first in the form generation
+								process. The following is a sample of code creating a form named 'formname' whose data will
+								be sent via the GET method. Initial form fields values will be obtained from array 
+		<code class="varname">response</code>
+							</div><pre class="programlisting">
+form myform -defaults response -method get -name formname
+myform start
+myform text	  text_entry -size 20
+myform select option_selected -values {opt1 opt2 opt3 opt4}
+myform submit submit -value Search
+myform end</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								The code prints a form that sends a text entry content and the option value 
+								associated with a radiobutton. The URL of the server script is the same that
+								created the form. Use the  ?<span style="font-family:monospace; font-weight: bold;">-url</span>? option to specify a different url.
+							</div></div></dd></dl></div><div class="refsect3"><a name="idm3355"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-we [...]
+    				      			The method to be used to encode the form data. 
+    				      			Possible values are get or post
+    				      		</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-name</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>form_name</code></em></span>?</div></div><div style=" [...]
+    			      				a name for the form being generated: this value becomes the value of the 
+    			      				attribute 'name' in the &lt;form&gt; tag.
+    			      			</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-defaults</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>default_values</code></em></span>?</div></div><di [...]
+									an array of default values	to be assigned to the fields of the form. 
+									Every name in the array is matched with an input field, when
+									a given field gets added to the form it is initialized with the 
+									value of the corresponding variable in the array. 
+									This option works well in conjuction with the 
+									<span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> command of Rivet when default values
+									come from another form.
+								</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-action</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>URL</code></em></span>?</div></div><div style="margin-botto [...]
+									The URL the data will be sent to. If no  ?<span style="font-family:monospace; font-weight: bold;">-action</span>? switch is specified
+									the data are sent to the form's URL.
+								</div></div></dd></dl></div></div></div><div class="refsect2"><a name="idm3387"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">end</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">	
+			      			Print the &lt;/form&gt; closing tag. This command must
+								be called last in the form generation process
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3394"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">field</span>  ?<span style="font-family:monospace; font-weight: bold;">n [...]
+		Print a field of the given  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>type</code></em></span>? and  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>name</code></em></span>?,
+								including any default key-value pairs defined for this field 
+								type and optional key-value pairs included with the statement
+							</div></div></dd></dl></div><div class="refsect3"><a name="idm3408"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-we [...]
+				      			Option description
+				      		</div></div></dd></dl></div></div></div><div class="refsect2"><a name="idm3417"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">radiobuttons</span>  ?<span style="font-family:monospace; f [...]
+								the <span style="font-family:monospace"><span class="command"><strong>radiobutton</strong></span></span> creates a whole radiobutton group
+								with the values and labels specified in the argument list. 
+								If no  ?<span style="font-family:monospace; font-weight: bold;">-labels</span>? switch is
+								passed to the subcommand the values are printed as labels of 
+								the radiobutton.
+							</div><div class="refsect3"><a name="idm3432"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-values</ [...]
+												List of values associated with the radiobuttons to be displayed
+											</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-labels</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>labels_list</code></em></span>?</div></div><div style="m [...]
+												List of labels to be printed with every radiobutton. There must
+												be a label for every radiobutton
+	 										</div></div></dd></dl></div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Example:
+							</div><pre class="programlisting">
+form myform -defaults response -method get -name formname
+myform start
+myform text text_entry -size 20
+myform radiobuttons fruit -values {big medium small} \
+              -labels {Watermelon Orange Strawberry} \
+              -class myradiobclass
+myform submit submit -value Search
+myform end</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								will print the following HTML code.
+							</div><pre class="programlisting">
+&lt;input type="radio" name="fruit" class="myradiobclass" value="big" /&gt;Watermelon
+&lt;input type="radio" name="fruit" class="myradiobclass" value="medium" /&gt;Orange
+&lt;input type="radio" name="fruit" class="myradiobclass" value="small" /&gt;Strawberry
+</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+		if the <code class="varname">response</code> array has a variable for the name 'fruit' the corresponding 
+								radiobutton field is automatically checked. The options  ?<span style="font-family:monospace; font-weight: bold;">values</span>? and  ?<span style="font-family:monospace; font-weight: bold;">labels</span>?
+								are used internally and don't get into the tag attributes. If a  ?<span style="font-family:monospace; font-weight: bold;">labels</span>? 
+								option is not given, labels are assigned using the  ?<span style="font-family:monospace; font-weight: bold;">values</span>? list.
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3459"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">checkbox</span>  ?<span style="font-family:monospace; font-weight: bol [...]
+								The   <span style="font-family:monospace; font-weight: bold;">checkbox</span>  subcommand emits a checkbox 
+								type input field with the name, label and value attributes set 
+								according to the parameters passed to the subcommand.
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Example:
+							</div><pre class="programlisting">form myform -defaults response -method get -name formname -action &lt;form_url&gt;
+myform start
+myform checkbox options -value opt1 -label "Option 1"
+myform checkbox options -value opt2 -label "Option 2"
+myform checkbox options -value opt3 -label "Option 3"
+myform checkbox options -value opt4 -label "Option 4"
+myform submit save_tps -value "Send Options"
+myform end
+myform destroy</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								Provided opt2 was in response array (in the list valued 'options' variable) that 
+								initialized the form, the output would look like this
+							</div><pre class="programlisting">&lt;form  action="&lt;form_url&gt;" method="get" name="formname"&gt;
+&lt;input type="checkbox" name="options"  id="autogen_1" label="Option 1" value="sopt1" /&gt;&lt;label for="autogen_1"&gt;Option 1&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_2" label="Option 2" value="sopt2" /&gt;&lt;label for="autogen_2"&gt;Option 2&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_3" label="Option 3" value="sopt3" /&gt;&lt;label for="autogen_3"&gt;Option 3&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_4" label="Option 4" value="sopt4" /&gt;&lt;label for="autogen_4"&gt;Option 4&lt;/label&gt;
+&lt;input type="submit" name="submit"  value="Send" /&gt;
+&lt;/form&gt;</pre></div></dd></dl></div></div><div class="refsect2"><a name="idm3477"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">checkboxes</span>  ?<span style="font-family:monospace; font-wei [...]
+								The   <span style="font-family:monospace; font-weight: bold;">checkboxes</span>  is an extended form
+								of the   <span style="font-family:monospace; font-weight: bold;">checkbox</span>  subcommand. 
+								  <span style="font-family:monospace; font-weight: bold;">checkboxes</span> 
+								prints as many checkboxes as the number of elements in the 
+								 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>labels_list</code></em></span>? argument								 
+							</div><div class="refsect3"><a name="idm3495"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-values</ [...]
+												List of values associated with the checkboxes to be displayed
+											</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-labels</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>labels_list</code></em></span>?</div></div><div style="m [...]
+												List of labels to be printed with every checkbox. There must
+												be a label for every checkbox
+	 										</div></div></dd></dl></div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Example:
+							</div><pre class="programlisting">form myform -defaults response -method post -action &lt;form_url&gt;
+myform start
+myform checkboxes options -values {opt1 opt2 opt3 opt4} -labels {"Option 1" "Option 2" "Option 3" "Option 4"}
+myform submit save_tps -value "Send Options"
+myform end
+myform destroy</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								will print the following HTML code
+							</div><pre class="programlisting">&lt;form  action="&lt;form_url&gt;" method="post"&gt;
+&lt;input type="checkbox" name="options"  id="autogen_1" label="Option 1" value="opt1" /&gt;&lt;label for="autogen_1"&gt;Option 1&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_2" label="Option 2" value="opt2" /&gt;&lt;label for="autogen_2"&gt;Option 2&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_3" label="Option 3" value="opt3" /&gt;&lt;label for="autogen_3"&gt;Option 3&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_4" label="Option 4" value="opt4" /&gt;&lt;label for="autogen_4"&gt;Option 4&lt;/label&gt;
+&lt;input type="submit" name="save_tps"  value="Send Options" /&gt;
+&lt;/form&gt;</pre></div></dd></dl></div></div><div class="refsect2"><a name="idm3516"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">password</span>  ?<span style="font-family:monospace; font-weigh [...]
+								Same as text, but the input is obfuscated so as not to reveal the text being typed
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3525"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">hidden</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								hidden input element: typicall embedded in a form in order to
+								pass status variables.
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3534"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">submit</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								emits the code for a classical HTML submit button. Example: the following
+								code
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								<pre class="programlisting">
+	form myform -defaults response -method get -name feedsearch
+	myform start
+	myform submit submit -value Search</pre>						
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Would emit a form  like this
+							</div><pre class="programlisting">
+	&lt;form...&gt;
+	&lt;input type="submit" name="submit" value="Search" /&gt; 
+	&lt;/form&gt;</pre></div></dd></dl></div></div><div class="refsect2"><a name="idm3547"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">button</span>  ?<span style="font-family:monospace; font-weight [...]
+		emits the code for a button field having  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>name</code></em></span>? as name
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3558"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">reset</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Classical HTML reset button that resets the input fields
+								back to their initial values
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3567"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">image</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an image input field
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3576"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">radio</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits a radiobutton input field
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3585"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">color</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "color" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3594"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">date</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "date" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3603"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">datetime</span>  ?<span style="font-family:monospace; font-weight: bol [...]
+								Emits an HTML 5 "datetime" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3612"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">datetime_local</span>  ?<span style="font-family:monospace; font-weigh [...]
+								Emits an HTML 5 "datetime_local" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3621"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">email</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "email" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3630"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">file</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "file" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3639"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">month</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "month" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3648"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">number</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								Emits an HTML 5 "number" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3657"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">range</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "range" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3666"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">search</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								Emits an HTML 5 "search" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3675"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">tel</span>  ?<span style="font-family:monospace; font-weight: bold;">n [...]
+								Emits an HTML 5 "tel" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3684"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">time</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "time" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3693"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">url</span>  ?<span style="font-family:monospace; font-weight: bold;">n [...]
+								Emits an HTML 5 "url" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3702"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">week</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "week" form field						
+							</div></div></dd></dl></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="form.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="form.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="calendar_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td widt [...]
diff --git a/rivet/manual2.4/formbroker.html b/rivet/manual2.4/formbroker.html
new file mode 100644
index 0000000..6f91256
--- /dev/null
+++ b/rivet/manual2.4/formbroker.html
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The Form Broker</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="decode.html" title="decode"><link rel="next" href="fb.html" title="FormBroker"></head><body bgcolor="white" text="black" link="#0 [...]
+         The <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span> package creates instances of 
+         objects representing a form data description. These objects offer a 
+         simple interface of methods meant to validate and control data 
+         as typically posted through an HTML form, 
+         thus data represented through the association of form variables 
+         with their values as returned, for example, 
+         by the <span style="font-family:monospace"><span class="command"><strong>::rivet::load_response</strong></span></span> command
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+      	The <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span> package is still experimental. 
+      	Basic functionalities and interface are not likely to change but
+      	internal details and implementation could be redesigned
+      	in future releases. More specifically the external validator mechanism
+      	could be improved with the purpose of shielding the <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span>
+      	internals from a data validation procedure.
+      </td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="decode.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="fb.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">decode </td><td width="20%" align="center"><a accesskey="h"  [...]
diff --git a/rivet/manual2.4/headers.html b/rivet/manual2.4/headers.html
new file mode 100644
index 0000000..6f4d494
--- /dev/null
+++ b/rivet/manual2.4/headers.html
@@ -0,0 +1,38 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>headers</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="exit.html" title="exit"><link rel="next" href="html.html" title="html"></head><body bgcolor="white" text="black" l [...]
+		  The <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command is for setting and
+		  parsing HTTP headers.
+		</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+					    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class=" [...]
+					</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+							Read arbitrary header names and values from output HTTP headers
+					    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">set</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+			  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					Set arbitrary header names and values into output HTTP headers
+				</div></div></dd><dt><span class="term">
+				    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">sent</span> </div></div>
+				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Test internal status of the module and returns 1
+						if the HTTP headers have been already sent  
+					</div></div></dd><dt><span class="term">
+			    	<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">redirect</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uri</code></em></span>?</div></div>
+			  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Redirect from the current page to a new
+						URI. <span class="emphasis"><em>Must</em></span> be done in the first block
+						of TCL code.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">add</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Add text to header
+					<code class="varname">headername</code>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">type</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>content-type</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				This command sets the <code class="constant">Content-type</code>
+				header returned by the script, which is useful if you wish
+				to send content other than HTML with Rivet - PNG or jpeg
+				images, for example.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">numeric</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>response code</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Set a numeric response code, such as 200, 404 or 500.
+			    </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="exit.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="html.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align= [...]
diff --git a/rivet/manual2.4/help.html b/rivet/manual2.4/help.html
new file mode 100644
index 0000000..a0b36c1
--- /dev/null
+++ b/rivet/manual2.4/help.html
@@ -0,0 +1,48 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Resources - How to Get Help</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="fb.html" title="FormBroker"><link rel="next" href="internals.html" title="Rivet Internals"></head><body bgcolor="whit [...]
+	The Rivet mailing list is the first place you should turn for
+	help. If you haven't found the solution to your problem in the documentation  
+	or you have a question, idea, or comment about the Rivet code itself send email to
+	<code class="email">&lt;<a class="email" href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>&gt;</code>. To subscribe to the list, post email to
+	<code class="email">&lt;<a class="email" href="mailto:rivet-dev-subscribe@tcl.apache.org">rivet-dev-subscribe@tcl.apache.org</a>&gt;</code>.
+      </p><p style="width:90%">
+	The mailing list archives are available at <a class="ulink" href="http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/" target="_top">http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/</a>
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4115"></a>Newsgroup</h3></div></div></div><p style="width:90%">
+	The <a class="ulink" href="news:comp.lang.tcl" target="_top">news:comp.lang.tcl</a> newsgroup is a good
+	place to ask about Tcl questions in general.  Rivet developers
+	also follow the newsgroup, but it's best to ask Rivet-specific
+	questions on the Rivet list.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="websites"></a>Web Sites</h3></div></div></div><p style="width:90%">
+	There are several web sites that cover Apache and Tcl
+	extensively.
+      </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://tcl.apache.org" target="_top">http://tcl.apache.org</a> is the home for the
+	    Apache Tcl project.  Go there for the latest versions of
+	    our software (if you aren't reading these pages off of the
+	    site!).
+	  </div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://httpd.apache.org/docs/" target="_top">http://httpd.apache.org/docs/</a> is the first
+	    place to go for questions about the Apache web server.
+	  </div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://www.tcl.tk" target="_top">http://www.tcl.tk</a> is the canonical site
+	    for Tcl information.
+	  </div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://wiki.tcl.tk" target="_top">http://wiki.tcl.tk</a> is the Tcl'ers Wiki, a
+	    free-form place to search for answers and ask for help.
+	  </div></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4135"></a>Bug Tracking System</h3></div></div></div><p style="width:90%">
+	Apache Rivet uses the Apache Bug Tracking system at <a class="ulink" href="http://issues.apache.org/bugzilla/" target="_top">http://issues.apache.org/bugzilla/</a>.  Here,
+	you can report problems, or check and see if existing issues
+	are already known and being dealt with.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4139"></a>IRC</h3></div></div></div><p style="width:90%">
+        Occasionally, someone from the Rivet team is on IRC at
+        irc.freenode.net, channel #tcl.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4142"></a>Editing Rivet Template Files</h3></div></div></div><p style="width:90%">
+	Rivet makes available code for two popular editors,
+	<span class="application">emacs</span> and
+	<span class="application">vim</span> to facilitate the editing of
+	Rivet template files.  The key concept is that the editor is
+	aware of the &lt;? and ?&gt; tags and switches back and forth
+	between Tcl and HTML modes as the cursor moves.  These files,
+	<code class="filename">two-mode-mode.el</code> and
+	<code class="filename">rvt.vim</code> are available in the
+	<code class="filename">contrib/</code> directory.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="fb.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="internals.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">FormBroker </td><td width="20%" align="center"><a accesskey="h" href="index.h [...]
diff --git a/rivet/manual2.4/html.html b/rivet/manual2.4/html.html
new file mode 100644
index 0000000..d2297b2
--- /dev/null
+++ b/rivet/manual2.4/html.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>html</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="headers.html" title="headers"><link rel="next" href="http_accept.html" title="http_accept"></head><body bgcolor="whit [...]
+		    Print text with the added ability to pass HTML tags
+		    following the string.  Example:
+		    </p><pre class="programlisting">::rivet::html "Test" b i</pre><p style="width:90%">
+		    produces: <code class="computeroutput">&lt;b&gt;&lt;i&gt;Test&lt;/i&gt;&lt;/b&gt;</code>
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="headers.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="http_accept.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual2.4/html_calendar.html b/rivet/manual2.4/html_calendar.html
new file mode 100644
index 0000000..58dd28c
--- /dev/null
+++ b/rivet/manual2.4/html_calendar.html
@@ -0,0 +1,25 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>HtmlCalendar</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="calendar_package.html" title="Calendar Package"><link rel="prev" href="xml_calendar.html" title="XmlCalendar"><link rel="next" href="asciiglyphs.html" title="AsciiGlyphs"></head><body bgco [...]
+				Concrete XmlCalendar class for printing html calendar tables. The markup of the class
+				is xhtml compliant and prints a code fragment for inclusion in a webpage.
+				The following is the class definition.
+			</p><pre class="programlisting">
+::itcl::class HtmlCalendar {
+    inherit XmlCalendar
+    
+    constructor {args} {XmlCalendar::constructor $args} {
+    $this configure -container    table \
+                    -header       thead \
+                    -body         tbody \
+                    -banner       tr    \
+                    -banner_month {th colspan 3 style "text-align: right;"} \
+                    -banner_year  {th colspan 4 style "text-align: left;"}  \
+                    -weekdays     tr    \
+                    -weekday_cell th    \
+                    -days_row     tr    \
+                    -days_cell    td 
+    }
+}</pre></div><div class="refsect1"><a name="idm3913"></a><p style="width:90%">
+				A sample output from HtmlCalendar (with some styling)			
+			</p><p style="width:90%">
+				</p><div><img src="images/calendar.png"></div><p style="width:90%">			
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xml_calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="calendar_package.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="asciiglyphs.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left [...]
diff --git a/rivet/manual2.4/http_accept.html b/rivet/manual2.4/http_accept.html
new file mode 100644
index 0000000..68832cc
--- /dev/null
+++ b/rivet/manual2.4/http_accept.html
@@ -0,0 +1,33 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>http_accept</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="html.html" title="html"><link rel="next" href="import_keyvalue_pairs.html" title="import_keyvalue_pairs"></hea [...]
+                 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>-zeroweight</code></em></span>?
+                 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>-default</code></em></span>?
+                 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>-list</code></em></span>?
+                http_accept_line</span> </div></div></div><div class="refsect1"><a name="idm1038"></a><h2>Description</h2><p style="width:90%">
+                Command for parsing HTTP Accept header lines that tell the
+                server about preferences and/or capabilities of the browser 
+                (e.g. content language,media type, etc.). The following 
+                script
+            </p><p style="width:90%">
+                <span style="font-family:monospace"><span class="command"><strong>::rivet::http_accept</strong></span></span> returns a dictionary
+                value in which every content preference is matched to its
+                precedence value
+            </p><pre class="programlisting">load_headers
+set language_precedence [::rivet::http_accept $headers(Accept-Language)]
+foreach lan [dict keys $language_precedence] {
+                puts "$lan -&gt; [dict get $language_precedence $lan]"
+}</pre><p style="width:90%">
+                when run from a browser where 5 languages were chosen
+                would output
+            </p><pre class="programlisting">en-us -&gt; 1
+en -&gt; 0.8
+it -&gt; 0.6
+de-de -&gt; 0.4
+fr-fr -&gt; 0.2</pre><p style="width:90%">
+                The <em class="replaceable"><code>-list</code></em> switch would suppress
+                the precedence values and the accepted fields 
+                are returned listed with decreasing precedence order.
+            </p><pre class="programlisting"> puts [::rivet::http_accept -list $headers(Accept-Language)]
+text/html application/xhtml+xml application/xml */*
+            </pre><p style="width:90%">
+
+            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="html.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="import_keyvalue_pairs.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="l [...]
diff --git a/rivet/manual2.4/images/acrobat.png b/rivet/manual2.4/images/acrobat.png
new file mode 100644
index 0000000..6907b4e
Binary files /dev/null and b/rivet/manual2.4/images/acrobat.png differ
diff --git a/rivet/manual2.4/images/blank.png b/rivet/manual2.4/images/blank.png
new file mode 100644
index 0000000..764bf4f
Binary files /dev/null and b/rivet/manual2.4/images/blank.png differ
diff --git a/rivet/manual2.4/images/calendar.png b/rivet/manual2.4/images/calendar.png
new file mode 100644
index 0000000..54f9f33
Binary files /dev/null and b/rivet/manual2.4/images/calendar.png differ
diff --git a/rivet/manual2.4/images/caution.png b/rivet/manual2.4/images/caution.png
new file mode 100644
index 0000000..5b7809c
Binary files /dev/null and b/rivet/manual2.4/images/caution.png differ
diff --git a/rivet/manual2.4/images/color-table.png b/rivet/manual2.4/images/color-table.png
new file mode 100644
index 0000000..c9aaab1
Binary files /dev/null and b/rivet/manual2.4/images/color-table.png differ
diff --git a/rivet/manual2.4/images/disk.png b/rivet/manual2.4/images/disk.png
new file mode 100644
index 0000000..772566e
Binary files /dev/null and b/rivet/manual2.4/images/disk.png differ
diff --git a/rivet/manual2.4/images/draft.png b/rivet/manual2.4/images/draft.png
new file mode 100644
index 0000000..0084708
Binary files /dev/null and b/rivet/manual2.4/images/draft.png differ
diff --git a/rivet/manual2.4/images/home.png b/rivet/manual2.4/images/home.png
new file mode 100644
index 0000000..eb904c8
Binary files /dev/null and b/rivet/manual2.4/images/home.png differ
diff --git a/rivet/manual2.4/images/important.png b/rivet/manual2.4/images/important.png
new file mode 100644
index 0000000..12c90f6
Binary files /dev/null and b/rivet/manual2.4/images/important.png differ
diff --git a/rivet/manual2.4/images/next.png b/rivet/manual2.4/images/next.png
new file mode 100644
index 0000000..0f4d18a
Binary files /dev/null and b/rivet/manual2.4/images/next.png differ
diff --git a/rivet/manual2.4/images/note.png b/rivet/manual2.4/images/note.png
new file mode 100644
index 0000000..d0c3c64
Binary files /dev/null and b/rivet/manual2.4/images/note.png differ
diff --git a/rivet/manual2.4/images/prev.png b/rivet/manual2.4/images/prev.png
new file mode 100644
index 0000000..dd3b6a2
Binary files /dev/null and b/rivet/manual2.4/images/prev.png differ
diff --git a/rivet/manual2.4/images/qbullet-note.png b/rivet/manual2.4/images/qbullet-note.png
new file mode 100644
index 0000000..88c30c0
Binary files /dev/null and b/rivet/manual2.4/images/qbullet-note.png differ
diff --git a/rivet/manual2.4/images/remote.png b/rivet/manual2.4/images/remote.png
new file mode 100644
index 0000000..d76b0f1
Binary files /dev/null and b/rivet/manual2.4/images/remote.png differ
diff --git a/rivet/manual2.4/images/scrollup.png b/rivet/manual2.4/images/scrollup.png
new file mode 100644
index 0000000..336232a
Binary files /dev/null and b/rivet/manual2.4/images/scrollup.png differ
diff --git a/rivet/manual2.4/images/table.png b/rivet/manual2.4/images/table.png
new file mode 100644
index 0000000..6ec425e
Binary files /dev/null and b/rivet/manual2.4/images/table.png differ
diff --git a/rivet/manual2.4/images/tip.png b/rivet/manual2.4/images/tip.png
new file mode 100644
index 0000000..5c4aab3
Binary files /dev/null and b/rivet/manual2.4/images/tip.png differ
diff --git a/rivet/manual2.4/images/toc-blank.png b/rivet/manual2.4/images/toc-blank.png
new file mode 100644
index 0000000..6ffad17
Binary files /dev/null and b/rivet/manual2.4/images/toc-blank.png differ
diff --git a/rivet/manual2.4/images/toc-minus.png b/rivet/manual2.4/images/toc-minus.png
new file mode 100644
index 0000000..abbb020
Binary files /dev/null and b/rivet/manual2.4/images/toc-minus.png differ
diff --git a/rivet/manual2.4/images/toc-plus.png b/rivet/manual2.4/images/toc-plus.png
new file mode 100644
index 0000000..941312c
Binary files /dev/null and b/rivet/manual2.4/images/toc-plus.png differ
diff --git a/rivet/manual2.4/images/up.png b/rivet/manual2.4/images/up.png
new file mode 100644
index 0000000..f9f8312
Binary files /dev/null and b/rivet/manual2.4/images/up.png differ
diff --git a/rivet/manual2.4/images/warning.png b/rivet/manual2.4/images/warning.png
new file mode 100644
index 0000000..1c33db8
Binary files /dev/null and b/rivet/manual2.4/images/warning.png differ
diff --git a/rivet/manual2.4/images/word.png b/rivet/manual2.4/images/word.png
new file mode 100644
index 0000000..4189771
Binary files /dev/null and b/rivet/manual2.4/images/word.png differ
diff --git a/rivet/manual2.4/import_keyvalue_pairs.html b/rivet/manual2.4/import_keyvalue_pairs.html
new file mode 100644
index 0000000..5f1eaa5
--- /dev/null
+++ b/rivet/manual2.4/import_keyvalue_pairs.html
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>import_keyvalue_pairs</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="http_accept.html" title="http_accept"><link rel="next" href="include.html" title="include"></head><b [...]
+		    key-value pairs, like "-foo bar" are stored in the array  ?<span style="font-family:monospace; font-weight: bold;">arrayName</span>?.  
+		    In that case, the value "bar" would be stored in the element "foo"
+		</p><p style="width:90%">
+		    If "--" appears or a key doesn't begin with "-", the rest of the arg 
+		    list is stored in the special args element of the array.
+		</p><p style="width:90%">
+		    Example:
+		    </p><pre class="programlisting">::rivet::import_keyvalue_pairs keyvalue_map [list -a1 v1 -a2 v2 -a3 v3 -- 1 2 3 4 5]
+parray keyvalue_map
+
+keyvalue_map(a1)   = v1
+keyvalue_map(a2)   = v2
+keyvalue_map(a3)   = v3
+keyvalue_map(args) = 1 2 3 4 5</pre><p style="width:90%">
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="http_accept.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="include.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual2.4/include.html b/rivet/manual2.4/include.html
new file mode 100644
index 0000000..1fb46c8
--- /dev/null
+++ b/rivet/manual2.4/include.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>include</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="import_keyvalue_pairs.html" title="import_keyvalue_pairs"><link rel="next" href="incr0.html" title="incr0"></head> [...]
+		    Include a file without parsing it for processing tags &lt;?
+		    and ?&gt;.  This is the best way to include an HTML file or
+		    any other static content.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="import_keyvalue_pairs.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="incr0.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" vali [...]
diff --git a/rivet/manual2.4/incr0.html b/rivet/manual2.4/incr0.html
new file mode 100644
index 0000000..78fafd1
--- /dev/null
+++ b/rivet/manual2.4/incr0.html
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>incr0</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="include.html" title="include"><link rel="next" href="inspect.html" title="inspect"></head><body bgcolor="white" text [...]
+                Increment a variable
+                <em class="replaceable"><code>varname</code></em> by
+                <em class="replaceable"><code>num</code></em>.  If the
+                variable doesn't exist, create it instead of returning an
+                error.
+            </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"> 
+                incr0 functionality is provided by the native <span style="font-family:monospace"><span class="command"><strong>incr</strong></span></span> in 
+                Tcl &gt;= 8.5, therefore this command is deprecated and kept as an
+                interpreter alias only for compatibility. As such <span style="font-family:monospace"><span class="command"><strong>incr0</strong></span></span> 
+                wasn't moved to the ::rivet namespace and
+                it will be removed in future versions of Rivet.
+            </td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="include.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="inspect.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" [...]
diff --git a/rivet/manual2.4/index.html b/rivet/manual2.4/index.html
new file mode 100644
index 0000000..70a69c3
--- /dev/null
+++ b/rivet/manual2.4/index.html
@@ -0,0 +1,85 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="next" href="installation.html" title="Apache Rivet Installation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" s [...]
+	            <code class="email">&lt;<a class="email" href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>&gt;</code><br>
+	        </p></div></div></div></div><div><p class="copyright">Copyright © 2002-2018 Apache Software Foundation</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="index.html#introduction">Introduction to Apache Rivet</a></span></dt><dt><span class="section"><a href="installation.html">Apache Rivet Installation</a></span></dt><dt><span class="section"><a href="request.html">Apache Child Processes Lifecycle and Reques [...]
+				Shorthand construct for single strings output
+			</span></dt><dt><span class="refentrytitle"><a href="abort_code.html">abort_code</a></span><span class="refpurpose"> — 
+				Returns the code passed to <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span>
+				earlier during the request processing
+			</span></dt><dt><span class="refentrytitle"><a href="abort_page.html">abort_page</a></span><span class="refpurpose"> — 
+		    Stops outputting data to web page, similar in
+		    purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.
+		</span></dt><dt><span class="refentrytitle"><a href="apache_log_error.html">apache_log_error</a></span><span class="refpurpose"> — log messages to the Apache error log</span></dt><dt><span class="refentrytitle"><a href="apache_table.html">apache_table</a></span><span class="refpurpose"> — access and manipulate Apache tables in the request structure.</span></dt><dt><span class="refentrytitle"><a href="catch.html">catch</a></span><span class="refpurpose"> — wraps core command <span style [...]
+			a special way fake error conditions resulting from calls to <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span>
+			and <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span></span></dt><dt><span class="refentrytitle"><a href="clock_to_rfc.html">clock_to_rfc850_gmt</a></span><span class="refpurpose"> — create a rfc850 time from [clock seconds].</span></dt><dt><span class="refentrytitle"><a href="cookie.html">cookie</a></span><span class="refpurpose"> — get, set and delete cookies.</span></dt><dt><span class="refentrytitle"><a href="debug.html">debug</a>< [...]
+		    A command to print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</span></dt><dt><span class="refentrytitle"><a href="env.html">env</a></span><span class="refpurpose"> — 
+		    Loads a single "environmental variable" into a Tcl variable.
+		</span></dt><dt><span class="refentrytitle"><a href="escape_sgml_chars.html">escape_sgml_chars</a></span><span class="refpurpose"> — escape special SGML characters in a string.</span></dt><dt><span class="refentrytitle"><a href="escape_shell_command.html">escape_shell_command</a></span><span class="refpurpose"> — escape shell metacharacters in a string.</span></dt><dt><span class="refentrytitle"><a href="escape_string.html">escape_string</a></span><span class="refpurpose"> — convert a  [...]
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</span></dt><dt><span class="refentrytitle"><a href="lmatch.html">lmatch</a></span><span class="refpurpose"> — 
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;
+		</span></dt><dt><span class="refentrytitle"><a href="load_cookies.html">load_cookies</a></span><span class="refpurpose"> — get any cookie variables sent by the client.</span></dt><dt><span class="refentrytitle"><a href="load_env.html">load_env</a></span><span class="refpurpose"> — get the request's environment variables.</span></dt><dt><span class="refentrytitle"><a href="load_headers.html">load_headers</a></span><span class="refpurpose"> — get client request's headers.</span></dt><dt> [...]
+		    Read the entire contents of a file and return it as a string.			
+		</span></dt><dt><span class="refentrytitle"><a href="try.html">try</a></span><span class="refpurpose"> — 
+				Catch error and exception conditions
+			</span></dt><dt><span class="refentrytitle"><a href="unescape_string.html">unescape_string</a></span><span class="refpurpose"> — unescape escaped characters in a string.</span></dt><dt><span class="refentrytitle"><a href="upload.html">upload</a></span><span class="refpurpose"> — handle a file uploaded by a client.</span></dt><dt><span class="refentrytitle"><a href="url_query.html">url_query</a></span><span class="refpurpose"> — builds a URL query from parameter-value pairs</span></dt> [...]
+		    Split a string on newlines. 
+		</span></dt><dt><span class="refentrytitle"><a href="wrapline.html">wrapline</a></span><span class="refpurpose"> — 
+		    Split the line into multiple lines by splitting on space characters 
+		</span></dt><dt><span class="refentrytitle"><a href="xml.html">xml</a></span><span class="refpurpose"> — 
+                XML Fragments creation
+            </span></dt></dl></dd><dt><span class="section"><a href="examples.html">Examples and Usage</a></span></dt><dt><span class="section"><a href="tcl_packages.html">Rivet Tcl Packages</a></span></dt><dt><span class="section"><a href="dio.html">DIO - Database Interface Objects</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="dio_package.html">DIO</a></span><span class="refpurpose"> — Database Interface Objects</span></dt></dl></dd><dt><span class="section"><a href="d [...]
+	            	print large ASCII glyphs
+	            </span></dt><dt><span class="section"><a href="asciiglyphs.html#idm3935">Example</a></span></dt></dl></dd><dt><span class="section"><a href="entities.html">RivetEntities</a></span></dt><dd><dl><dt><span class="section"><a href="entities.html#idm3940">Introduction</a></span></dt><dt><span class="refentrytitle"><a href="encode.html">encode</a></span><span class="refpurpose"> — 
+                encode a string replacing every occurrence of characters for 
+                which an SGML entity exists
+            </span></dt><dt><span class="refentrytitle"><a href="decode.html">decode</a></span><span class="refpurpose"> — 
+                decode an SGML encoded string replacing every entity with the
+                corresponding character
+            </span></dt></dl></dd><dt><span class="section"><a href="formbroker.html">The Form Broker</a></span></dt><dd><dl><dt><span class="section"><a href="formbroker.html#idm3980">Introduction</a></span></dt><dt><span class="refentrytitle"><a href="fb.html">FormBroker</a></span><span class="refpurpose"> — 
+               Form broker object creator
+            </span></dt></dl></dd><dt><span class="section"><a href="help.html">Resources - How to Get Help</a></span></dt><dd><dl><dt><span class="section"><a href="help.html#idm4108">Mailing Lists</a></span></dt><dt><span class="section"><a href="help.html#idm4115">Newsgroup</a></span></dt><dt><span class="section"><a href="help.html#websites">Web Sites</a></span></dt><dt><span class="section"><a href="help.html#idm4135">Bug Tracking System</a></span></dt><dt><span class="section"><a h [...]
+    Document released as part of Rivet 2.4.0 (2018-11-24 11:03:21+01:00).
+  </p><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="introduction"></a>Introduction to Apache Rivet</h2></div></div></div><p style="width:90%">
+      Apache Rivet is a system for creating dynamic web content via a
+      programming language integrated with Apache Web Server.  It is
+      designed to be fast, powerful and extensible, consume few system
+      resources, be easy to learn, and to provide the user with a
+      platform that can also be used for other programming tasks
+      outside the web (GUI's, system administration tasks, text
+      processing, database manipulation, XML, and so on).  In order to
+      meet these goals, we have chosen the Tcl programming language to
+      combine with the Apache Web Server.
+    </p><p style="width:90%">
+      In this manual, we aim to help get you started, and then
+      writing productive code as quickly as possible, as well as
+      giving you ideas on how to best take advantage of Rivet's
+      architecture to create different styles of web site.
+    </p><p style="width:90%">
+     This documentation is focused on the current version of Rivet, but
+     still a work in progress, and, like everything
+     else about Apache Rivet, it is Free Software.  If you see
+     something that needs improving, and have ideas or suggestions,
+     don't hesitate to let us know.  If you want to contribute
+     directly, better yet!
+    </p><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm19"></a>New commands in Rivet 2.4</h3></div></div></div><p style="width:90%">
+        		Rivet 2.4 introduces 2 new commands <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+        		and <span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span>
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> was introduced to help mod_rivet to
+    				give the command <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> a more sensible behavior within
+    				the context of the Apache HTTP Web Server. In fact the core command has
+    				become an alias of <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> which interrupts the 
+    				script execution and hands control to any <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span>, 
+    				completes the request and just before returning to the web server framework terminates 
+    				the child process by calling <span style="font-family:monospace"><span class="command"><strong>Tcl_Exit</strong></span></span></li><li class="listitem">
+         		Since <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span> and <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+         		interrupt a script execution returning a <span class="emphasis"><em>TCL_ERROR</em></span> code
+         		any call to a <span style="font-family:monospace"><span class="command"><strong>catch</strong></span></span> construct would trap this error and AbortScript 
+         		could be executed only by throwing the error condition again. We introduced the
+         		<span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> in order to simplify these operations.
+         		If any real error occurs the procedure returns 
+         		1 and fills the optional arguments with their expected values, otherwise
+         		execution is interrupted control passed on to
+         		<span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span></li></ul></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="installation.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" ali [...]
diff --git a/rivet/manual2.4/inspect.html b/rivet/manual2.4/inspect.html
new file mode 100644
index 0000000..5347088
--- /dev/null
+++ b/rivet/manual2.4/inspect.html
@@ -0,0 +1,47 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>inspect</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="incr0.html" title="incr0"><link rel="next" href="lassign_array.html" title="lassign_array"></head><body bgcolor="w [...]
+             <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span> provides introspection into the running
+             configuration of Rivet. Rivet's debug command uses it in order to gain insight
+             into the configuration, but it can be used in any script. 
+         </p><p style="width:90%">
+             <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span> can be called in 5 different forms
+         </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem" style="list-style-type: square">            
+               With no argument the command returns a dictionary with 3
+               keys: server, dir, user. Each key is associated to a subdictionary 
+               carrying the configuration as set for that request.  In this form the command is 
+               meant to support compatibility with previous versions of mod_rivet 
+               where three global arrays were created to be internally used by command
+               <span style="font-family:monospace"><span class="command"><strong>::rivet::debug</strong></span></span>.
+            </li><li class="listitem" style="list-style-type: square">
+					With the  ?<span style="font-family:monospace; font-weight: bold;">-all</span>? argument a dictionary
+					carrying the whole configuration for that specific request is returned. 
+					If a configuration parameter is not set it's given the
+					string <span class="emphasis"><em>undefined</em></span>. Returned configuration paramenters
+					are<pre class="programlisting">    "ServerInitScript",
+    "GlobalInitScript",
+    "ChildInitScript",
+    "ChildExitScript",
+    "BeforeScript",
+    "AfterScript",
+    "AfterEveryScript",
+    "AbortScript",
+    "ErrorScript",
+    "UploadMaxSize",
+    "UploadDirectory",
+    "UploadFilesToVar",
+    "SeparateVirtualInterps",
+    "HonorHeaderOnlyRequests"</pre></li><li class="listitem" style="list-style-type: square">
+					With one of the Rivet configuration directives listed above as
+					single argument <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span> returns the 
+					current value in the configuration record. 
+				</li><li class="listitem" style="list-style-type: square">
+					Passing the argument "script" <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span>
+					returns a path to the current script in a similar way 
+					core command <span style="font-family:monospace"><span class="command"><strong>[info script]</strong></span></span> does. The basic
+					difference is that the core command returns a relative path with
+					respect to the current working directory, whereas mod_rivet's command
+					returns the full path.
+				</li><li class="listitem" style="list-style-type: square">
+                    Passing the argument "server" <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span>
+                    returns a dictionary with these fields taken from the server record
+                    descriptor
+                    <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">hostname: The server hostname </li><li class="listitem">admin: The admin's contact information</li><li class="listitem">errorlog: The name of the error log</li><li class="listitem">server_path: Pathname for ServerPath</li></ul></div></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left" [...]
diff --git a/rivet/manual2.4/installation.html b/rivet/manual2.4/installation.html
new file mode 100644
index 0000000..06ddafa
--- /dev/null
+++ b/rivet/manual2.4/installation.html
@@ -0,0 +1,127 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet Installation</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="index.html" title="Apache Rivet"><link rel="next" href="request.html" title="Apache Child Processes Lifecycle and Reque [...]
+            Rivet 2.4 runs with the Apache 2.2.x (now deprecated) and 2.4.x HTTP web server. 
+            It is known to build and run on various Linux distributions 
+            (Debian &amp; Ubuntu, Redhat, SuSE and CentOS), FreeBSD and OpenBSD. For some
+            of these Unix-like operative systems 
+            <a class="ulink" href="http://tcl.apache.org/rivet/html/download.html" target="_top">binary packages</a> 
+            are already available for download.
+        </p><p style="width:90%">
+            Currently there is no way to run Apache Rivet 2.4 on Windows© because            
+            Rivet currently requires the 
+            <a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork</a>, which
+            is supported only on Unix/Linux systems. Efforts are under way to extend the support to the 
+            <a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/worker.html" target="_top">worker</a> 
+            and the
+            <a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/mpm_winnt.html" target="_top">winnt</a> MPMs.
+            Check our
+            <a class="ulink" href="http://tcl.apache.org/rivet/html/about.html" target="_top">development mailing list</a>
+            for the latests updates about Rivet development
+        </p><p style="width:90%">
+            If you need to compile Apache Rivet yourself this is the procedure to follow
+        </p><ol class="procedure" type="1"><li class="step"><p class="title"><b>Install Tcl</b></p><p style="width:90%">
+                Installing Rivet is about endowing the Apache HTTP webserver with the ability
+                of running scripts written with the Tcl programming language. 
+                Therefore the 
+                <a class="ulink" href="http://www.tcl.tk/" target="_top">Tcl</a> 
+                shell (<span style="font-family:monospace"><span class="command"><strong>tclsh</strong></span></span>), its runtime and  
+                development libraries (≥8.5.10) have to be installed. Building Rivet you will 
+                have to tell the scripts where the Tcl libraries are located via the
+                --with-tcl option to <span style="font-family:monospace"><span class="command"><strong>configure</strong></span></span> (see below).
+            </p></li><li class="step"><p class="title"><b>Get Rivet</b></p><p style="width:90%">
+                Download the sources at <a class="ulink" href="http://tcl.apache.org/rivet/html/download.html" target="_top">http://tcl.apache.org/rivet/html/download.html</a>.  
+            </p></li><li class="step"><p class="title"><b>Get and Install Apache Sources</b></p><p style="width:90%">
+                Rivet needs some of the include (.h) files shipped with the webserver source code. 
+                The easiest way to get them is to download the Apache source.  
+                You can rebuild the Apache Web Server having mod_rivet linked statically 
+                but the regular course of action is to build mod_rivet separately and then dynamically 
+                loaded (as shared library) into the Web Server.  
+                We recommend that you follow this approach  for maximum flexibility.
+                We will tell Rivet where it is located via the 
+                --with-apxs option to <span style="font-family:monospace"><span class="command"><strong>configure</strong></span></span> (see below).
+            </p><p style="width:90%">
+                The source code for the Apache web server may be found by following the links here: 
+                <a class="ulink" href="http://httpd.apache.org/" target="_top">http://httpd.apache.org/</a>.
+            </p></li><li class="step"><p class="title"><b>Uncompress Sources</b></p><p style="width:90%">
+              We will assume that you have Apache installed at this point.
+              You must uncompress the Rivet sources in the directory where you
+              wish to compile them.
+              </p><pre class="programlisting">gunzip rivet-X.X.X.tar.gz
+tar -xvf rivet-X.X.X.tar.gz</pre><p style="width:90%">
+            </p></li><li class="step"><p class="title"><b>Building Rivet</b></p><ol type="a" class="substeps"><li class="step"><p style="width:90%">
+	       On Linux or Unix systems, Rivet uses the standard <span style="font-family:monospace"><span class="command"><strong>./configure ; make ; make install</strong></span></span>
+	       sequence which installs to their target directories the Apache module, the binary libraries and the
+	       Tcl code
+	    </p><p style="width:90%">
+	      There are several rivet specific options to configure that might be useful (or needed):
+	      </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">--with-tcl</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		              This points to the directory where the
+		              <code class="filename">tclConfig.sh</code> file is located.
+		          </div></div></dd><dt><span class="term">--with-tclsh</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">This points to the location of the
+		      <code class="filename">tclsh</code> executable.</div></div></dd><dt><span class="term">--with-apxs</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The location of the <code class="filename">apxs</code>
+		      program that provides information about the
+		      configuration and compilation options of Apache modules.</div></div></dd><dt><span class="term">--with-apache-include[=DIR]</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			    Locates the Apache include files on your computer, if they're not in standard directory. 
+		    </div></div></dd><dt><span class="term">--enable-version-display=[yes|no]</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			This option enables Rivet to display its version in the logfiles when Apache is started. 
+			The default is to keep Rivet version hidden.
+		    </div></div></dd><dt><span class="term">--with-rivet-target-dir=DIR</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			    This option tells the install script where Rivet's Tcl packages have to be copied. 
+			</div></div></dd><dt><span class="term">--with-upload-dir=DIR</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		          Configures Rivet's default upload directory 
+		      </div></div></dd><dt><span class="term">--enable-head-requests</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		          By default HEAD requests don't go through the usual request processing which leads
+		          to script execution and therefore resource consumption and Rivet returns a
+		          standard hardcoded HTML header to save CPU time. --enable-head-requests
+		          changes this default (see also <a class="link" href="directives.html" title="Rivet Apache Directives">Rivet Directives</a>)
+		      </div></div></dd><dt><span class="term">--disable-rivet-commands-export</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		          By default Rivet's commands are put on the export list of the <code class="code">::rivet</code>
+		          namespace. With this option you may prevent it thus forcing the programmer to
+		          fully qualify <a class="link" href="commands.html" title="Rivet Tcl Commands and Variables">these commands</a>
+		      </div></div></dd><dt><span class="term">--disable-import-rivet-commands</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		          Likewise commands in the Rivet's namespace when exported are then by default imported
+		          into the global namespace for compatibility with previous version of Rivet.
+		          (Enabling the import of Rivet's commands overrides the switch --disable-rivet-commands-export
+		          and forces the export from <code class="code">::rivet</code>). This switch overrides the default and
+		          prevents the import into the global namespace 
+		      </div></div></dd></dl></div><p style="width:90%">
+	    </p><p style="width:90%">
+		  Example: configuring the build system to compile Rivet for an apache 2.x server, using tcl8.5 and
+		  specifying a custom name for the apxs program. 
+	    </p><pre class="programlisting">./configure --with-tcl=/usr/lib/tcl8.5/ --with-tclsh=/usr/bin/tclsh8.5 \
+	    --with-apxs=/usr/bin/apxs2 --with-apache=/usr --with-apache-version=2</pre></li><li class="step"><p class="title"><b>Run make</b></p><p style="width:90%">
+	      At this point, you are ready to run make, which should
+	      run to completion without any errors (a warning or two
+	      is ok, generally).
+	    </p></li><li class="step"><p class="title"><b>Install</b></p><p style="width:90%">
+	      Now, you are ready to run the
+	    </p><pre class="programlisting">make install</pre><p style="width:90%"> 
+	       to install the resulting files. The <code class="code">install</code> target
+	       actually fires the <code class="code">install-binaries</code> and 
+	       <code class="code">install-packages</code> targets which in turn 
+	       copy the binary modules and Tcl packages to their destination
+	       directories. This commands create a functional Rivet environment with its
+		   core language.
+	    </p></li></ol></li><li class="step"><p class="title"><b>Apache Configuration Files</b></p><p style="width:90%">
+	  Rivet is relatively easy to configure - we start off by
+	  adding the module itself:
+	</p><pre class="programlisting">LoadModule rivet_module	<em class="replaceable"><code>/usr/lib/apache2/modules/mod_rivet.so</code></em></pre><p style="width:90%">
+	  This tells Apache to load the Rivet shared object, wherever
+	  it happens to reside on your file system.  Now we have to
+	  tell Apache what kind of files are "Rivet" files and how to
+	  process them:
+	</p><pre class="programlisting">AddType application/x-httpd-rivet .rvt
+AddType application/x-rivet-tcl .tcl</pre><p style="width:90%">
+	  These tell Apache to process files with the
+	  <code class="filename">.rvt</code> and <code class="filename">.tcl</code>
+	  extensions as Rivet files.
+	</p><p style="width:90%">
+	  The characters encoding can be changed using the <span style="font-family:monospace"><span class="command"><strong>header type</strong></span></span> command,
+	  but you can also change the default charset for the whole site:
+	</p><pre class="programlisting">AddType 'application/x-httpd-rivet;charset=utf-8' rvt</pre><p style="width:90%">
+	   All the pages generated by Rivet on this site will be sent with a 
+	    <span style="font-family:monospace"><span class="command"><strong>Content-Type:'text/html;charset=utf-8'</strong></span></span> header.
+	</p><p style="width:90%">You may also wish to use Rivet files as index files for
+	directories.  In that case, you would do the following:</p><pre class="programlisting">DirectoryIndex index.html index.htm index.shtml index.cgi index.tcl index.rvt</pre><p style="width:90%">
+	  For other directives that Rivet provides for Apache
+	  configuration, please see <a class="xref" href="directives.html" title="Rivet Apache Directives">the section called “Rivet Apache Directives”</a>.
+	</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="request.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Rivet </td><td width="20%" align="center"><a accesskey="h" href= [...]
diff --git a/rivet/manual2.4/internals.html b/rivet/manual2.4/internals.html
new file mode 100644
index 0000000..4a6f889
--- /dev/null
+++ b/rivet/manual2.4/internals.html
@@ -0,0 +1,201 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Internals</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="help.html" title="Resources - How to Get Help"><link rel="next" href="upgrading.html" title="Upgrading from mod_dtcl or NeoWebScr [...]
+      This section easily falls out of date, as new code is added, old
+      code is removed, and changes are made.  The best place to look
+      is the source code itself.  If you are interested in the changes
+      themselves, the Subversion revision control system
+      (<span style="font-family:monospace"><span class="command"><strong>svn</strong></span></span>) can provide you with information about
+      what has been happening with the code.
+    </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4154"></a>Initialization</h3></div></div></div><p style="width:90%">
+			When Apache is started, (or when child Apache processes are
+			started if a threaded Tcl is used),
+			<code class="function">Rivet_InitTclStuff</code> is called, which
+			creates a new interpreter, or one interpreter per virtual
+			host, depending on the configuration. It also initializes
+			various things, like the <span class="structname">RivetChan</span>
+			channel system, creates the Rivet-specific Tcl commands, and
+			executes Rivet's <code class="filename">init.tcl</code>.  The caching
+			system is also set up, and if there is a
+			<span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span>, it is run.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4161"></a>RivetChan</h3></div></div></div><p style="width:90%">
+			The <span class="structname">RivetChan</span> system was created in
+			order to have an actual Tcl channel that we could redirect
+			standard output to.  This lets us use, for instance, the
+			regular <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> command in .rvt pages.  It
+			works by creating a channel that buffers output, and, at
+			predetermined times, passes it on to Apache's IO system.
+			Tcl's regular standard output is replaced with an instance of
+			this channel type, so that, by default, output will go to the
+			web page.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4166"></a>The <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> Command</h3></div></div></div><p style="width:90%">
+			Rivet aims to run standard Tcl code with as few surprises as
+			possible.  At times this involves some compromises - in this
+			case regarding the <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> command.  The
+			problem is that the command will create truly global
+			variables.  If the user is just cut'n'pasting some Tcl code
+			into Rivet, they most likely just want to be able to share the
+			variable in question with other procs, and don't really care
+			if the variable is actually persistant between pages.  The
+			solution we have created is to create a proc
+			<span style="font-family:monospace"><span class="command"><strong>::request::global</strong></span></span> that takes the place of
+			the <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> command in Rivet templates.  If
+			you really need a true global variable, use either
+			<span style="font-family:monospace"><span class="command"><strong>::global</strong></span></span> or add the :: namespace qualifier
+			to variables you wish to make global.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4174"></a>Page Parsing, Execution and Caching</h3></div></div></div><p style="width:90%">
+			When a Rivet page is requested, it is transformed into an
+			ordinary Tcl script by parsing the file for the &lt;? ?&gt;
+			processing instruction tags.  Everything outside these tags
+			becomes a large <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> statement, and
+			everything inside them remains Tcl code.
+      </p><p style="width:90%">
+			Each .rvt file is evaluated in its own
+			<code class="constant">::request</code> namespace, so that it is not
+			necessary to create and tear down interpreters after each
+			page.  By running in its own namespace, though, each page will
+			not run afoul of local variables created by other scripts,
+			because they will be deleted automatically when the namespace
+			goes away after Apache finishes handling the request.
+	      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+		    One current problem with this system is that while
+		    variables are garbage collected, file handles are not, so
+		    that it is very important that Rivet script authors make
+		    sure to close all the files they open.
+	      </td></tr></table></div><p style="width:90%">
+      </p><p style="width:90%">
+	    	After a script has been loaded and parsed into it's "pure Tcl"
+	    	form, it is also cached, so that it may be used in the future
+	    	without having to reload it (and re-parse it) from the disk.
+	    	The number of scripts stored in memory is configurable.  This
+	    	feature can significantly improve performance.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4182"></a>Extending Rivet by developing C procedures implementing new commands</h3></div></div></div><p style="width:90%">
+            Rivet endows the Tcl interpreter with new commands
+            serving as interface between the application layer and the
+            Apache web server. Many of these commands
+            are meaningful only when a HTTP request is under way and 
+            therefore a request_rec object allocated by the framework 
+            is existing and was passed to mod_rivet as argument of a callback. 
+            In case commands have to gain access to a valid request_rec
+            object the C procedure must check if such 
+            a pointer exists and it's initialized
+            with valid data. For this purpose the procedure handling requests 
+            (Rivet_SendContent) makes a copy of such pointer and keeps it
+            in an internal structure. The copy is set to NULL just before
+            returning to the framework, right after mod_rivet's has
+            carried out its request processing. When the pointer copy is NULL 
+            the module is outside any request processing and this
+            condition invalidates the execution of
+            many of the Rivet commands. In case they are called  
+            (for example in a ChildInitScript, GlobalInitScript, 
+            ServerInitScript or ChildExitScript) they fail with a Tcl error 
+            you can handle with a <span style="font-family:monospace"><span class="command"><strong>catch</strong></span></span> command.
+        </p><p style="width:90%">            
+            For this purpose in src/rivet.h the macro
+            CHECK_REQUEST_REC was defined accepting two arguments: the copy
+            to the request_rec pointer (stored in the 
+            <span class="structname">rivet_interp_globals</span>
+            structure) and the command name. If the pointer is NULL
+            the macro calls Tcl_NoRequestRec and returns TCL_ERROR
+            causing the command to fail. These are the step to follow
+            to implement a new C language command for mod_rivet 
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+                Define the command and associated C language procedure
+                in src/rivetcmds/rivetCore.c using the macro
+                RIVET_OBJ_CMD<pre class="programlisting">RIVET_OBJ_CMD("mycmd",Rivet_MyCmd)</pre>
+                This macro ensures the command is defined as <span style="font-family:monospace"><span class="command"><strong>::rivet::mycmd</strong></span></span></li><li class="listitem">
+                Add the code of Rivet_MyCmd to src/rivetcmd/rivetCore.c (in case
+                the code resides in a different file also src/Makefile.am should be
+                changed to tell the build system how to compile the code and
+                link it into mod_rivet.so)
+            </li><li class="listitem">
+                If the code must gain access to <span style="font-family:monospace"><span class="command"><strong>globals-&gt;r</strong></span></span>
+                put add the macro testing for the pointer
+                <pre class="programlisting">TCL_CMD_HEADER( Rivet_MyCmd )
+{
+    rivet_interp_globals *globals = Tcl_GetAssocData( interp, "rivet", NULL );
+    ....
+    CHECK_REQUEST_REC(globals-&gt;r,"::rivet::mycmd");
+    ...   
+}</pre></li><li class="listitem">
+                Add a test for this command in tests/checkfails.tcl. For 
+                instance
+                <pre class="programlisting">...
+check_fail no_body
+check_fail virtual_filename unkn
+check_fail my_cmd &lt;arg1&gt; &lt;arg2&gt;
+....</pre>
+                Where &lt;arg1&gt; &lt;arg2&gt; are optional 
+                arguments in case the command needs to check for <span style="font-family:monospace"><span class="command"><strong>globals-&gt;r</strong></span></span>
+                in special cases. Then, if <span style="font-family:monospace"><span class="command"><strong>::rivet::mycmd</strong></span></span> must fail also
+                tests/failtest.tcl should modified as
+                <pre class="programlisting">virtual_filename-&gt;1
+mycmd-&gt;1</pre>
+                The value associated to the test must be 0 in case the
+                command doesn't need to test the <span style="font-family:monospace"><span class="command"><strong>globals-&gt;r</strong></span></span> pointer.
+            </li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4208"></a>Debugging Rivet and Apache</h3></div></div></div><p style="width:90%">
+	If you are interested in hacking on Rivet, you're welcome to
+	contribute!  Invariably, when working with code, things go
+	wrong, and it's necessary to do some debugging.  In a server
+	environment like Apache, it can be a bit more difficult to
+	find the right way to do this.  Here are some techniques to
+	try.
+      </p><p style="width:90%">
+	The first thing you should know is that Apache can be launched
+	as a <span class="emphasis"><em>single process</em></span> with the
+	-X argument:</p><pre class="programlisting">httpd -X</pre>.
+      <p style="width:90%">
+	On Linux, one of the first things to try is the system call
+	tracer, <span style="font-family:monospace"><span class="command"><strong>strace</strong></span></span>.  You don't even have to
+	recompile Rivet or Apache for this to work.
+      </p><pre class="programlisting">strace -o /tmp/outputfile -S 1000 httpd -X</pre><p style="width:90%">
+      	This command will run httpd in the system call tracer,
+			which leaves its output (there is potentially a lot of it) in
+			<code class="filename">/tmp/outputfile</code>.  The -S
+			option tells <span style="font-family:monospace"><span class="command"><strong></strong></span></span>strace to only record the
+			first 1000 bytes of a syscall.  Some calls such as
+			<code class="function">write</code> can potentially be much longer than
+			this, so you may want to increase this number.  The results
+			are a list of all the system calls made by the program.  You
+			want to look at the end, where the failure presumably occured,
+			to see if you can find anything that looks like an error.  If
+			you're not sure what to make of the results, you can always
+			ask on the Rivet development mailing list.
+      </p><p style="width:90%">
+			If <span style="font-family:monospace"><span class="command"><strong>strace</strong></span></span> (or its equivalent on your
+			operating system) doesn't answer your question, it may be time
+			to debug Apache and Rivet.  To do this, you will need to rebuild mod_rivet.
+			First of all you have to configure the build by running the
+			<span style="font-family:monospace"><span class="command"><strong>./configure</strong></span></span> script with the
+			-enable-symbols option and after you have
+			set the CFLAGS and LDFLAGS environment variables
+      </p><pre class="programlisting">export CFLAGS="-g -O0"
+export LDFLAGS="-g"
+./configure --enable-symbols ......
+make
+make install</pre><p style="width:90%">
+			Arguments to <span style="font-family:monospace"><span class="command"><strong>./configure</strong></span></span> must fit your Apache HTTP
+			web server installation. See the output produced by
+		</p><pre class="programlisting">./configure --help</pre><p style="width:90%">
+			And check the <a class="xref" href="installation.html" title="Apache Rivet Installation">the section called “Apache Rivet Installation”</a> page to
+			have further information.
+			Since it's easier to debug a single process, we'll still run
+			Apache in single process mode with -X:
+      </p><pre class="programlisting">
+@ashland [~] $ gdb /usr/sbin/apache.dbg
+GNU gdb 5.3-debian
+Copyright 2002 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB.  Type "show warranty" for details.
+This GDB was configured as "powerpc-linux"...
+(gdb) run -X
+Starting program: /usr/sbin/apache.dbg -X
+[New Thread 16384 (LWP 13598)]
+.
+.
+.
+      </pre><p style="width:90%">
+	When your apache session is up and running, you can request a
+	web page with the browser, and see where things go wrong (if
+	you are dealing with a crash, for instance).
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="help.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="upgrading.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Resources - How to Get Help </td><td width="20%" align="center"><a accesske [...]
diff --git a/rivet/manual2.4/lassign_array.html b/rivet/manual2.4/lassign_array.html
new file mode 100644
index 0000000..2868aba
--- /dev/null
+++ b/rivet/manual2.4/lassign_array.html
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lassign_array</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="inspect.html" title="inspect"><link rel="next" href="lempty.html" title="lempty"></head><body bgcolor="white [...]
+                <span style="font-family:monospace"><span class="command"><strong>lassign_array</strong></span></span> is an utility command inspired by the same Tclx command and 
+                with a close resemblance with Tcl's <span style="font-family:monospace"><span class="command"><strong>lassign</strong></span></span> for assigning list elements to variables.
+                <span style="font-family:monospace"><span class="command"><strong>lassign_array</strong></span></span> first argument is a list of values to be assigned to an array that must be 
+                given as second argument. The remaining arguments are the array's variable names which will store
+                as values the elements of the list. Variables names don't matching values in the list are given an empty string. 
+                Unassigned list elements are returned as a list.
+	       </p><pre class="programlisting">::rivet::lassign_array {1 2 3 4} assigned_array a b c d
+parray assigned_array
+<span class="strong"><strong>assigned_array</strong></span>
+assigned_array(a) = 1
+assigned_array(b) = 2
+assigned_array(c) = 3
+assigned_array(d) = 4
+
+set rem [::rivet::lassign_array {1 2 3 4 5 6 7} assigned_array a b c d]
+puts $rem
+5 6 7</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="inspect.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lempty.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual2.4/lempty.html b/rivet/manual2.4/lempty.html
new file mode 100644
index 0000000..5a1d3ab
--- /dev/null
+++ b/rivet/manual2.4/lempty.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lempty</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lassign_array.html" title="lassign_array"><link rel="next" href="lmatch.html" title="lmatch"></head><body bgcolor=" [...]
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::lempty</span>   <span style="font-family:monospace; font-weight: bold;">list</span> </div></div></div><div class="refsect1"><a name="idm1161"></a><h2>Description</h2><p style="width:90%">
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lassign_array.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lmatch.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual2.4/lmatch.html b/rivet/manual2.4/lmatch.html
new file mode 100644
index 0000000..855ea52
--- /dev/null
+++ b/rivet/manual2.4/lmatch.html
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lmatch</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lempty.html" title="lempty"><link rel="next" href="load_cookies.html" title="load_cookies"></head><body bgcolor="wh [...]
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::lmatch</span>  (<span style="font-family:monospace; font-weight: bold;">-exact</span> | <span style="font-family:monospace; font-weight: bold;">-glob</span> | <span style="font-family:monospace; font-weight: bold;">-regexp< [...]
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;.  
+		    This command is a decent replacement for TclX lmatch command when TclX is
+            not available 
+		</p><p style="width:90%">
+		    In the following example a regular expression is matched against
+		    each element in the input list and a list containing the matching
+		    elements is returned
+		</p><p style="width:90%">
+		    </p><pre class="programlisting">::rivet::lmatch -regexp { aaxa bxxb ccxxxxcc } {.+[x]{2}.+}
+bxxb ccxxxxcc</pre><p style="width:90%">
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lempty.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_cookies.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual2.4/load_cookies.html b/rivet/manual2.4/load_cookies.html
new file mode 100644
index 0000000..823d83d
--- /dev/null
+++ b/rivet/manual2.4/load_cookies.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_cookies</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lmatch.html" title="lmatch"><link rel="next" href="load_env.html" title="load_env"></head><body bgcolor="whit [...]
+		Load the array of cookie variables into the specified
+		array name.  Uses array cookies by
+		default.
+	    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lmatch.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_env.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">lmatch [...]
diff --git a/rivet/manual2.4/load_env.html b/rivet/manual2.4/load_env.html
new file mode 100644
index 0000000..6e4044a
--- /dev/null
+++ b/rivet/manual2.4/load_env.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_env</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_cookies.html" title="load_cookies"><link rel="next" href="load_headers.html" title="load_headers"></head><bo [...]
+		    Load the array of environment variables into the specified
+		    array name.  Uses array ::request::env by
+		    default.
+		</p><p style="width:90%">
+		    As Rivet pages are run in the ::request
+		    namespace, it isn't necessary to qualify the array name
+		    for most uses - it's ok to access it as
+		    env.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_cookies.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_headers.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign [...]
diff --git a/rivet/manual2.4/load_headers.html b/rivet/manual2.4/load_headers.html
new file mode 100644
index 0000000..3005dab
--- /dev/null
+++ b/rivet/manual2.4/load_headers.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_headers</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_env.html" title="load_env"><link rel="next" href="load_response.html" title="load_response"></head><body [...]
+		    Load the headers that come from a client request into the
+		    provided array name, or use headers if no
+		    name is provided.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_env.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_response.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="t [...]
diff --git a/rivet/manual2.4/load_response.html b/rivet/manual2.4/load_response.html
new file mode 100644
index 0000000..c446e1f
--- /dev/null
+++ b/rivet/manual2.4/load_response.html
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_response</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_headers.html" title="load_headers"><link rel="next" href="lremove.html" title="lremove"></head><body bg [...]
+		    Load any form variables passed to this page into an
+		    array. If <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> is called without 
+		    arguments the array response is created in 
+		    the scope of the caller. If the variables var1,var2,var3...
+		    having values val1,val2,val3... are passed to the page, the
+		    resulting array will be a collection mapping var1,var2,var3...
+		    to their corresponding values. <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span>
+		    was inspired by the same NeoWebScript procedure in the way
+		    it deals with multiple assignments: if a variable 
+		    is assigned more than once the corresponding array element will be a 
+		    list of the values for the variable. This can be useful in the case 
+		    of forms with checkbox options that are given the same name.
+            This condition is signalled by the presence of an auxiliary array 
+            variable. 
+        </p><p style="width:90%">
+            Example: if a group of checkboxes are associated to the var1
+            variable then <span style="font-family:monospace"><span class="command"><strong>response(var1)</strong></span></span> will store 
+            the list of their values and the array will also have the extra variable 
+            response(__var1) which can be tested with
+            the usual <span style="font-family:monospace"><span class="command"><strong>[info exists response(__var1)]</strong></span></span>
+        </p><p style="width:90%">
+		    Calling <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> several times for the same
+		    array results in adding more values to the array at every call. 
+		    When needed it is left to the caller to empty the array between 
+		    two subsequent calls.  
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_headers.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lremove.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual2.4/lremove.html b/rivet/manual2.4/lremove.html
new file mode 100644
index 0000000..d15d54c
--- /dev/null
+++ b/rivet/manual2.4/lremove.html
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lremove</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_response.html" title="load_response"><link rel="next" href="makeurl.html" title="makeurl"></head><body bgcolo [...]
+		  <span style="font-family:monospace"><span class="command"><strong>lremove</strong></span></span> removes from list  ?<span style="font-family:monospace; font-weight: bold;">list</span>? the first occurrence
+		  of an element matching one of the patterns listed in the command line. By specifying the
+		  -all option every occurrence of one the patterns is removed
+	    </p><p style="width:90%">
+	       Pattern matching can be -exact,-glob style or following 
+	       regular expressions (-regexp). These options are globally valid across the 
+	       whole pattern list (default is glob style matching)  
+	    </p><pre class="programlisting">::rivet::lremove -all -regexp {aa e111 bab aa} aa e111 bab
+e111 bab
+::rivet::lremove -all -regexp {aa e111 bab aa} aa "e\\d+"
+bab</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_response.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="makeurl.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign= [...]
diff --git a/rivet/manual2.4/makeurl.html b/rivet/manual2.4/makeurl.html
new file mode 100644
index 0000000..4249ff7
--- /dev/null
+++ b/rivet/manual2.4/makeurl.html
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>makeurl</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lremove.html" title="lremove"><link rel="next" href="no_body.html" title="no_body"></head><body bgcolor="white" te [...]
+		  Create a self referencing URL from a filename. <span style="font-family:monospace"><span class="command"><strong>makeurl</strong></span></span>
+		  can be used in three ways
+		  </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> No argument is passed to the command (returns the current script URL)</li><li class="listitem"> 
+					A relative style path is passed (returns the argument prepended with the
+					current script's URL
+		    </li><li class="listitem"> 
+					An absolute path is passed to the command: (returns the full URL to the
+					resource)
+		    </li></ul></div><p style="width:90%">
+		</p><p style="width:90%">
+		    Example of absolute path: </p><pre class="programlisting">::rivet::makeurl /tclp.gif</pre><p style="width:90%"> returns
+		    <code class="computeroutput">http://[hostname]:[port]/tclp.gif</code>.
+		    where hostname and port are the hostname and port of the
+		    server in question. The protocol prefix is inferred from the protocol in the URL referencing the
+		    script.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lremove.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="no_body.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">lre [...]
diff --git a/rivet/manual2.4/no_body.html b/rivet/manual2.4/no_body.html
new file mode 100644
index 0000000..554ec0b
--- /dev/null
+++ b/rivet/manual2.4/no_body.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>no_body</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="makeurl.html" title="makeurl"><link rel="next" href="parray.html" title="parray"></head><body bgcolor="white" text [...]
+          This command is useful for situations where it is necessary
+          to only return HTTP headers and no actual content.  For
+          instance, when returning a 304 redirect.
+        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="makeurl.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="parray.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual2.4/parray.html b/rivet/manual2.4/parray.html
new file mode 100644
index 0000000..362f9b2
--- /dev/null
+++ b/rivet/manual2.4/parray.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>parray</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="no_body.html" title="no_body"><link rel="next" href="parse.html" title="parse"></head><body bgcolor="white" text="b [...]
+		    An html version of the standard Tcl
+		    <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> command.  Displays the entire
+		    contents of an array in a sorted, nicely-formatted way.
+		    Mostly used for debugging purposes.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="no_body.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="parse.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">no_bo [...]
diff --git a/rivet/manual2.4/parse.html b/rivet/manual2.4/parse.html
new file mode 100644
index 0000000..1b80b61
--- /dev/null
+++ b/rivet/manual2.4/parse.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>parse</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="parray.html" title="parray"><link rel="next" href="raw_post.html" title="raw_post"></head><body bgcolor="white" text [...]
+		    Like the Tcl <span style="font-family:monospace"><span class="command"><strong>source</strong></span></span> command, but also
+		    parses for Rivet &lt;?  and ?&gt; processing tags.  Using
+		    this command, you can use one .rvt file from another.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parray.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="raw_post.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">par [...]
diff --git a/rivet/manual2.4/raw_post.html b/rivet/manual2.4/raw_post.html
new file mode 100644
index 0000000..4e3b636
--- /dev/null
+++ b/rivet/manual2.4/raw_post.html
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>raw_post</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="parse.html" title="parse"><link rel="next" href="redirect.html" title="redirect"></head><body bgcolor="white" tex [...]
+		Returns the raw POST data from the request.  If the request was 
+		not a POST or there is no data, then "" - an empty string - is returned.
+	    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parse.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="redirect.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">parse < [...]
diff --git a/rivet/manual2.4/read_file.html b/rivet/manual2.4/read_file.html
new file mode 100644
index 0000000..a5b81f1
--- /dev/null
+++ b/rivet/manual2.4/read_file.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>read_file</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="redirect.html" title="redirect"><link rel="next" href="try.html" title="try"></head><body bgcolor="white" text=" [...]
+		    Read the entire contents of a file and return it as a string.			
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::read_file</span>  ?<span style="font-family:monospace; font-weight: bold;">file name</span>?</div></div></div><div class="refsect1"><a name="idm1380"></a><h2>Description</h2><p style="width:90%">
+		    This is a utility command which loads the entire content of
+		    a file and returns it as a result.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="redirect.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="try.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">redire [...]
diff --git a/rivet/manual2.4/redirect.html b/rivet/manual2.4/redirect.html
new file mode 100644
index 0000000..2d40ba2
--- /dev/null
+++ b/rivet/manual2.4/redirect.html
@@ -0,0 +1,21 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>redirect</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="raw_post.html" title="raw_post"><link rel="next" href="read_file.html" title="read_file"></head><body bgcolor="wh [...]
+       		<span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> diverts the browser to a new URL and marks
+       		the redirection as either permanent in the browser local cache or
+       		non permanent (default).
+       		Calling <span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> causes the script execution to interrupt
+       		and control passes to <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span>, if such script is 
+       		set, by calling <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span> and passing as abort
+       		code a dictionary with 2 keys: 
+       		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>error_code</strong></span></span>: string literal 'redirect'</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>location</strong></span></span>: the URL the browser will be redirected to</li></ul></div><p style="width:90%">
+       	</p><p style="width:90%">
+       		<span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> drives the redirection by setting the
+       		301 (permanent redirect) or 302 (non permanent redirect) HTTP status codes and 
+       		attempts to discard the output the script might have already placed in the
+       		stdout channel buffer. Therefore the command can fail if
+       		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">A <span style="font-family:monospace"><span class="command"><strong>flush stdout</strong></span></span> was called before <span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span>
+       			thus causing the HTTP headers to be sent and preventing any possibility to 
+       			manipulate them</li><li class="listitem">The channel buffer was filled causing Tcl to
+       			flush the channel</li></ul></div><p style="width:90%">
+				The <span style="font-family:monospace"><span class="command"><strong>stdout</strong></span></span> channel, like any Tcl channels, can be manipulated
+				and if needed its internal buffer streched.    
+       	</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="raw_post.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="read_file.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign= [...]
diff --git a/rivet/manual2.4/request.html b/rivet/manual2.4/request.html
new file mode 100644
index 0000000..cd1d827
--- /dev/null
+++ b/rivet/manual2.4/request.html
@@ -0,0 +1,162 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Child Processes Lifecycle and Request Processing</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="installation.html" title="Apache Rivet Installation"><link rel="next" href="directives.ht [...]
+            Apache Rivet delegates to the <a class="ulink" href="" target="_top">Multi-Processing Module (MPM)</a>
+            the task of managing the agents responding to network requests. 
+            An MPM is responsible for creating such agents during the start-up, 
+            and is in charge for terminating existing ones and recreating new 
+            agents when the workload is requiring it. 
+       </p><p style="width:90%">
+            Apache Rivet is currently supporting only the
+            <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/prefork.html" target="_top">prefork</a>
+            MPM which creates full fledged child processes as independent agents 
+            responding to network requests. 
+            Efforts are under way to extend the support to
+            the <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/worker.html" target="_top">worker</a> MPM,
+            a hybrid model where forked child processes in turn create threads as real
+            network agents. If we can achieve this the goal would open the possibility of
+            supporting also the Windows© specific 
+            <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/mpm_winnt.html" target="_top">winnt</a> MPM, 
+            where a single process creates and manages a large number of thread agents.
+       </p><p style="width:90%">
+	    		Configuration parameters about this critical point can be read in the
+	    		<a class="ulink" href="http://httpd.apache.org/docs/2.2/misc/perf-tuning.html" target="_top">Apache
+	    		documentation</a>. 
+	    </p><p style="width:90%">
+	    		There are 4 stages in the lifetime of an Apache webserver that are relevant
+	    		to Rivet: 
+	    </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><h4><a name="idm173"></a>Single Process Initialization</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+               Apaches starts up as a single process. During this stage Apache performs 
+               various preliminary tasks including reading and parsing the configuration. 
+					After the configuration has been read Rivet sets up some internal resources
+					and if a Tcl script is set as argument of a <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> directive
+					the script is executed. 
+					Variables, arrays or dictionaries created during the execution of this script 
+					will be preserved and later replicated in the child process intepreters,
+					since the prefork MPM creates new child processes with a fork() system call (which
+               involves only in memory copy of sections of a process address space). Thus
+               <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span>
+		    		is a good place to do global initialization that doesn't involve
+		    		creation of private data. Example of tasks that can be done
+		    		in this context are importing namespace commands and loading packages
+		    		providing code of general interest for every application to
+		    		be served. Also IPC methods can be initialized in this stage.
+	    		</div></li><li class="listitem"><h4><a name="idm178"></a>Child Process Initialization</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+		    		Right after the webserver has forked its child processes 
+		    		there is a chance to perform specific initialization of their Tcl interpreters.
+               This is the stage where most likely you want to open I/O channels, 
+               database connections or any other resource that has to be private to an 
+               interpreter. When the option <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is 
+               turned off child processes will have a single interpreter regardless
+		    		the number of virtual hosts configured. The
+               <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> is the configuration script 
+               the child process will run once before getting ready to 
+               serve requests
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+	    			When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is turned on 
+	    			each configured virtual host will have its own slave interpreter which
+	    			can will run the <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> directive as
+	    			initialization script. The	    			
+	    			<span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> has to be
+	    			placed within a &lt;VirtualHost...&gt;...&lt;/VirtualHost ...&gt;
+	    			stanza to associate a script to a specific virtual host initialization.
+	    			This scenario of interpreter separation is extremely useful to
+	    			prevent resource conflicts when different virtual hosts are 
+	    			serving different web applications. 
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+	    			<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> has no effect to working interpreters
+	    				when <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is set.
+	    			</td></tr></table></div>
+	    		</div></li><li class="listitem"><h4><a name="idm191"></a>Request Processing and Content Generation</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+                 After a child has been initialized it's ready to serve requests. 
+                 A child process' lifetime is almost entirely spent in this phase, waiting
+                 for connections and responding to requests. At every request the URL 
+                 goes through filter processing and, in case, rewritten
+                 (mod_rewrite, Alias directives, etc). 
+                 Parameter values encoded in the request are made available to the 
+                 environment and finally the script encoded in the URL is run. 
+                 The developer can tell Rivet if optionally the execution has to
+                 be  preceded by a <span style="font-family:monospace"><span class="command"><strong>BeforeScript</strong></span></span> and followed by an
+                 <span style="font-family:monospace"><span class="command"><strong>AfterScript</strong></span></span>. The real script mod_rivet will
+                 execute is the result of the concatenation of the 
+                 <span style="font-family:monospace"><span class="command"><strong>BeforeScript</strong></span></span>,
+                 the script encoded in the URL and the <span style="font-family:monospace"><span class="command"><strong>AfterScript</strong></span></span>.
+                 Thus the whole ensemble of code that makes up a web application might
+                 be running within the same "before" and "after" scripts to which 
+                 the programmer can devolve tasks common to every 
+                 page of an application.
+            </div></li><li class="listitem"><h4><a name="idm198"></a>Child Process Exit</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+                 If no error condition forces the child process to a premature exit, his
+                 life is determined by the Apache configuration parameters. To reduce
+                 the effects of memory leaks in buggy applications the Apache webserver 
+                 forces a child process to exit after a
+                 certain number of requests served. A child process gets replaced 
+                 with a brand new one if the workload of webserver requires so. 
+                 Before the process quits an exit handler can be run
+                 to do some housekeeping, just in case something the could have been 
+                 left behind has to be cleaned up. Like the initialization scripts
+                 <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> too is a "one shot" script.
+             </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                 The Tcl <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command forces an interpreter to
+                 quit, thus removing the ability of the process embedding it 
+                 to run more Tcl scripts. The child process then is forced
+                 to exit and be replaced by a new one when the workload demands it.
+                 This operation implies the <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> be
+                 run before the interpreter is actually deleted.
+             </div></li></ol></div></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm204"></a>Apache Rivet Error and Exception Scripts Directives</h3></div></div></div><p style="width:90%">
+            Rivet is highly configurable and each of the webserver lifecycle stages 
+            can be exploited to control a web application. 
+            Not only the orderly sequence of stages
+            in a child lifecycle can be controlled with Tcl scripts, but also
+            Tcl error or abnormal conditions taking place during
+            the execution can be caught and handled with specific scripts.
+        </p><p style="width:90%">
+	    	Tcl errors (conditions generated when a command exits with code TCL_ERROR) 
+	    	usually result in the printing of a backtrace of the code fragment
+	    	relevant to the error.
+	    	Rivet can set up scripts to trap these errors and run instead
+	    	an <span style="font-family:monospace"><span class="command"><strong>ErrorScript</strong></span></span> to handle it and conceal details
+	    	that usually have no interest for the end user and it
+	    	may show lines of code that ought to remain private. The ErrorScript
+	    	handler might create a polite error page where things
+	    	can be explained in human readable form, thus enabling the end user
+	    	to provide meaningful feedback information. 
+	    </p><p style="width:90%">
+	    	In other cases an unmanageable conditions might take place in the data and
+	    	this could demand an immediate interruption of the content generation. These abort 
+	    	conditions can be fired by the <a class="xref" href="abort_page.html" title="abort_page">abort_page</a> command, which
+	    	in turn fires the execution of an <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> to handle
+	    	the abnormal condition. Starting with Rivet 2.1.0 <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>
+	    	accepts a free form parameter that can be retrieved later with the command 
+	    	<a class="xref" href="abort_code.html" title="abort_code">abort_code</a>
+	    </p></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm214"></a>Tcl Namespaces in Rivet and the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> Namespace</h3></div></div></div><p style="width:90%">
+			With the sole exception of .rvt templates, Rivet runs pure Tcl scripts 
+			at the global namespace. That means that every variable or procedure 
+			created in Tcl scripts resides by default in the 
+			"::" namespace (just like in traditional Tcl scripting) and they
+			are persistent across different requests until explicitly unset or
+			until the interpreter is deleted.
+			You can create your own application namespaces to store data but
+			it is important to remember that subsequent requests will in general be served 
+			by different child processes. Your application can rely on the fact that 
+			certain application data will be in the interpreter, but you shouldn't 
+			assume the state of a transaction spanning several pages 
+			can be stored in this way and be safely kept available to a 
+			specific client. Sessions exist for this purpose and Rivet ships its own 
+			session package with support for most of popular DBMS. Nonetheless 
+			storing data in the global namespace can be useful, even though scoping 
+			data in a namespace is recommended. I/O channels and
+			database connections are examples of information usually specific 
+			to a process for which you don't want to pay the overhead of creating them
+			at every request, probably causing a dramatic loss in the application
+			performance.
+		</p><p style="width:90%">
+			A special role in the interpreter is played by the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> 
+			namespace.	The <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> namespace is deleted and recreated
+			at every request and Rivet templates (.rvt files) are executed within it.
+		</p><p style="width:90%"> 
+			Unless you're fully qualifying variable names outside the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> 
+			namespace, every variable and procedure created in .rvt files is by default placed in
+			it and deleted before any other requests gets processed. It is therefore safe to
+			create variables or object instances in template files and foresake about them: Rivet
+			will take care of cleaning the namespace up and everything created inside the namespace
+			will be destroyed.
+		</p><div class="table"><table align="center" title="Apache Rivet Scripts" class="namespaces"><thead><td>Stage</td><td>Script</td><td>Namespace</td></thead><tbody><tr class="init"><td>Apache Initialization</td><td>ServerInitScript</td><td>::</td></tr><tr class="childinit"><td rowspan="2">Child Initialization</td><td>GlobalInitScript</td><td>::</td></tr><tr class="childinit"><td>ChildInitScript</td><td>::</td></tr><tr class="processing"><td rowspan="6">Request Processing</td><td>BeforeSc [...]
diff --git a/rivet/manual2.4/rivet.css b/rivet/manual2.4/rivet.css
new file mode 100644
index 0000000..b504a41
--- /dev/null
+++ b/rivet/manual2.4/rivet.css
@@ -0,0 +1,351 @@
+BODY
+{
+        font-family: verdana;
+}
+
+DIV.ABSTRACT
+{
+        border: solid 2px;
+        padding-left: 10pt;
+        padding-right: 10pt;
+}
+PRE.SCREEN
+{
+        font-family:monospace;
+        white-space: pre;
+        width: 100%;
+        background-color: #ffffcc;
+        border:solid;
+        color: #000000;
+        border-color: #009999;
+        border-left: solid #009999 2px;
+        border-right: solid #009999 2px;
+        border-top: solid #009999 2px;
+        border-bottom: solid #009999 2px;
+        padding-left: 15pt;
+}
+
+PRE.PROGRAMLISTING
+{
+        font-family: monospace;
+        white-space: pre;
+        width:  95%;
+        background-color: #ffeeee;
+        border: solid;
+        color:  #000000;
+        border-color: #990099;
+        border-left: solid #990099 1px;
+        border-right: solid #990099 1px;
+        border-top: solid #990099 1px;
+        border-bottom: solid #990099 1px;
+        font-size:  normal;
+        padding-top:    1em;
+        padding-left:   1em;
+        padding-bottom: 1em;
+}
+
+H1
+{
+        color: #ffffff;
+        border: solid 3px #a0a0d0;
+        background-color: #606090;
+        font-variant: small-caps;
+        width: 100%;
+}
+
+H1.TITLE
+{
+        color: #ffffff;
+        border: solid 3px #a0a0d0;
+        background-color: #606090;
+        font-variant: small-caps;
+        width: 100%;
+}
+
+.TITLE a {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+.TITLE a:active {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+.TITLE a:visited {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+H2
+{       
+        COLOR: #ffffff ;
+        font-style: italic;
+        BACKGROUND-color: #d0a0a0;
+        BORDER: solid 3px #906060;
+        PADDING: 0.5em;
+}
+
+TABLE.IMPORTANT
+{
+        font-style:italic;
+        border: solid 2px #ff0000;
+        width: 70%;
+        margin-left: 15%;       
+}
+TABLE.CAUTION
+{
+        font-style:italic;
+        border: ridge 2px #ffff00;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+TABLE.NOTE
+{
+        font-style:italic;
+        border: solid 1px #000000;
+        width: 70%;
+        margin-left: 15%;       
+}
+TABLE.TIP
+{
+        font-style:italic;
+        border: solid 1px #000000;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+TABLE.WARNING
+{
+        font-style:italic;
+        font-weight: bold;
+        border: ridge 4px #ff0000;
+        
+        width: 70%;
+        margin-left: 15%;       
+}
+
+DIV.VARIABLELIST {
+        font-family: sans-serif;
+        font-style: normal;
+        font-weight: normal;
+        padding-left: 20px;
+        font-size: small;
+}
+
+.VARLISTENTRY {
+        font-weight: bold;
+        margin-top: 10px;
+        COLOR: #ffffff ;
+        BACKGROUND-color: #a0a0d0;
+        BORDER: solid 1px #606090;
+        PADDING: 1px
+}
+
+/*
+ * See http://diveintoaccessibility.org/day_26_using_relative_font_sizes.html
+ * for an explanation of the following few commands.
+ * They are really too complicated to explain here in all depth. ;-)
+*/
+
+P {
+        font-size: 12px;
+}
+
+/*/*/A{}
+BODY P {
+
+/*      font-size: x-small; */
+        voice-family: "\"}\"";
+        voice-family: inherit;
+        font-size: normal;
+}
+
+HTML>BODY P {
+        font-size: normal;
+}
+/* */
+
+/* Add an external-link icon to absolute links */
+a[href^="http:"] {
+        background: url(images/remote.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href^="http:"]:hover {
+        background: url(images/remote.png) right center no-repeat;
+}
+
+/* Add a note icon to footnote links */
+a[href^="#FTN"] {
+        background: url(images/qbullet-note.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href^="#FTN"]:hover {
+        background: url(images/qbullet-note.png) right center no-repeat;
+}
+
+/* ...and a back icon to the backlinks in the footnotes themselves */
+a[name^="FTN"] {
+        background: url(images/scrollup.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[name^="FTN"]:hover {
+        background: url(images/scrollup.png) right center no-repeat;
+}
+
+/* Add a download icon to .gz links */
+a[href$=".gz"],a[href$=".tar"],a[href$=".zip"] {
+        background: url(images/disk.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+
+/* Add an Acrobat Reader icon to PDF links */
+a[href$=".pdf"] {
+        background: url(images/acrobat.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href$=".pdf"]:hover {
+        background: url(images/acrobat.png) right center no-repeat;
+}
+
+/* Add a Word icon to RTF links */
+a[href$=".rtf"] {
+        background: url(images/word.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+
+/* ...but not to absolute links in this domain... */
+a[href^="http://www.karakas-online.de"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+a[href^="http://www.karakas-online.de"]:hover {
+        background: transparent;
+}
+
+/* ...or to the translation links on each page */
+DIV.translatelink > a[href^="http:"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+DIV.translatelink > a[href^="http:"]:hover {
+        background: transparent;
+}
+
+/* ...or to any images  */
+DIV.imagelink  a[href^="http:"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+DIV.imagelink  a[href^="http:"]:hover {
+        background: transparent;
+}
+
+
+P.C2 {
+        COLOR: #ffffff ;
+        BACKGROUND-color: #a0a0d0;
+        BORDER: solid 1px #606090;
+        PADDING: 1px
+}
+
+
+DIV.NAVFOOTER {
+        color: #000000;
+        background-color: #FFDFDF;
+        padding: 5px;
+        margin-top: 10px;
+        width: 100%;
+        border: 2px solid #d0a0a0;
+}
+
+DIV.NUKEFOOTER {
+        color: #000000;
+        background-color: #B0E0E6;
+        padding: 5px;
+        margin-top: 10px;
+        width: 100%;
+        border: thin solid #a0a0d0;
+}
+
+DIV.NAVHEADER {
+        color: #000000;
+        background-color: #FFDFDF;
+        padding: 5px;
+        margin-bottom: 10px;
+        width: 100%;
+        border: 2px solid #d0a0a0;
+}
+
+DIV.SECT1,DIV.SECT2,DIV.SECT3 {
+        margin-left: 20px;
+}
+
+DIV.EXAMPLE,DIV.TOC {
+        border: thin dotted #70AAE5;
+        padding-left: 10px;
+        padding-right: 10px;
+        color: #000000;
+        background-color: #FFE8E8;
+}
+DIV.EXAMPLE {
+        border: thin dotted #22AA22;
+        background-color: #EEE;
+}
+
+DIV.TOC {
+        margin-left: 20px;
+        margin-right: 20px;
+        width: 95%;
+}
+
+UL  {
+     /*    list-style: url("images/tux-bullet.png") disc; */
+    }
+
+.namespaces {
+	border: 1px solid black;
+}
+
+.namespaces td {
+	padding:	0.2em 1em;
+	/* font-weight: bold; */
+}
+
+.namespaces thead {
+	background-color: #aaf;
+}
+
+.namespaces tr.init {
+	background-color: #e88;	
+}
+
+.namespaces tr.childinit {
+	background-color: #eee;		
+}
+
+.namespaces tr.processing {
+	background-color: #e88;	
+}
+	
+.namespaces tr.childexit {
+	background-color: #eee;		
+}
+
+.note td {
+    font-size: small;
+}
+
+li.listitem {
+    font-size: small;
+}
diff --git a/rivet/manual2.4/session_package.html b/rivet/manual2.4/session_package.html
new file mode 100644
index 0000000..072c14d
--- /dev/null
+++ b/rivet/manual2.4/session_package.html
@@ -0,0 +1,182 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Session Package</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="diodisplay_package.html" title="DIODisplay"><link rel="next" href="form.html" title="Form: An HTML Form Fields Generation Utility [...]
+	This is session management code.  It provides an interface
+	to allow you to generate and track a browser's visit as a
+	"session", giving you a unique session ID and an interface
+	for storing and retrieving data for that session on the
+	server.
+      </p><p style="width:90%">
+	This is an alpha/beta release -- documentation is not in
+	final form, but everything you need should be in this file.
+      </p><p style="width:90%">
+	Using sessions and their included ability to store and
+	retrieve session-related data on the server, programmers can
+	generate more secure and higher-performance websites.  For
+	example, hidden fields do not have to be included in forms
+	(and the risk of them being manipulated by the user
+	mitigated) since data that would be stored in hidden fields
+	can now be stored in the session cache on the server.  Forms
+	are then faster since no hidden data is transmitted --
+	hidden fields must be sent twice, once in the form to the
+	broswer and once in the response from it.
+      </p><p style="width:90%">
+	Robust login systems, etc, can be built on top of this code.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="requirements"></a>Requirements</h3></div></div></div><p style="width:90%">
+	  Currently has only been tested with Postgresql, MySql and Oracle.
+	  All DB interfacing is done through DIO, though, so it
+	  should be relatively easy to add support for other
+	  databases.
+	</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3041"></a>Preparing To Use It</h3></div></div></div><p style="width:90%">Create the tables in your SQL server.  With Postgres,
+	  do a <span style="font-family:monospace"><span class="command"><strong>psql www</strong></span></span> or whatever DB you
+	  connect as, then a backslash-i on
+	  <code class="filename">session-create.sql</code></p><p style="width:90%">(If you need to delete the tables, use <code class="filename">session-drop.sql</code>)</p><p style="width:90%">The session code by default requires a DIO handle
+	  called <code class="varname">DIO</code> (the name of which can be
+	  overridden).  We get it by doing a</p><pre class="programlisting">RivetServerConf ChildInitScript "package require DIO"
+RivetServerConf ChildInitScript "::DIO::handle Postgresql DIO -user www"</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3051"></a>Example Usage</h3></div></div></div><p style="width:90%">In your httpd.conf, add:</p><pre class="programlisting">RivetServerConf ChildInitScript "package require Session; Session SESSION"</pre><p style="width:90%">
+	  This tells Rivet you want to create a session object named
+	  SESSION in every child process Apache creates.</p><p style="width:90%">
+	  You can configure the session at this point using numerous
+	  key-value pairs (which are defined later in this doc).
+	  Here's a quick example:</p><pre class="programlisting">RivetServerConf ChildInitScript "package require Session; Session SESSION \
+  -cookieLifetime 120 -debugMode 1"</pre><p style="width:90%">
+	  Turn debugging on -debugMode 1 to figure
+	  out what's going on -- it's really useful, if
+	  verbose.</p><p style="width:90%">
+	  In your .rvt file, when you're generating the &lt;HEAD&gt;
+	  section:
+	</p><pre class="programlisting">SESSION activate</pre><p style="width:90%">
+	  Activate handles everything for you with respect to
+	  creating new sessions, and for locating, validating, and
+	  updating existing sessions.  Activate will either locate
+	  an existing session, or create a new one.  Sessions will
+	  automatically be refreshed (their lifetimes extended) as
+	  additional requests are received during the session, all
+	  under the control of the key-value pairs controlling the
+	  session object.
+	</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3063"></a>Using Sessions From Your Code</h3></div></div></div><p style="width:90%">The main methods your code will use are:</p><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spac [...]
+		After doing a <span style="font-family:monospace"><span class="command"><strong>SESSION activate</strong></span></span>,
+		this will return a 32-byte ASCII-encoded random
+		hexadecimal string.  Every time this browser comes
+		to us with a request within the timeout period, this
+		same string will be returned (assuming they have
+		cookies enabled).
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION</span> <span style="font-weight:bold ; font-family:monospace">is_new_session</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">return [...]
+		previously existed (i.e. it's a zero if this request
+		represents a "return" or subsequent visit to a
+		current session.)</div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION new_session_reason</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		This will return why this request is the first
+		request of a new session, either "no_cookie" saying
+		the browser didn't give us a session cookie,
+		"no_session" indicating we got a cookie but couldn't
+		find it in our session table, or "timeout" where
+		they had a cookie and we found the matching session
+		but the session has timed out.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION store</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>packageName</code></em></span>? ?<span style="fon [...]
+		Given the name of a package, a key, and some data.
+		Stores the data in the rivet session cache table.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION fetch</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>packageName</code></em></span>? ?<span style="fon [...]
+		Given a package name and a key, return the data
+		stored by the store method, or an empty string if
+		none was set.  (Status is set to the DIO error that
+		occurred, it can be fetched using the status
+		method.)
+	      </div></div></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3109"></a>Session Configuration Options</h3></div></div></div><p style="width:90%">The following key-value pairs can be specified when a
+	  session object (like SESSION above) is created:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">sessionLifetime</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">how many seconds the session will live for.
+		7200 == 2 hours
+	      </div></div></dd><dt><span class="term">sessionRefreshInterval</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		If a request is processed for a browser that
+		currently has a session and this long has elapsed
+		since the session update time was last updated,
+		update it.  900 == 15 minutes.  so if at least 15
+		minutes has elapsed and we've gotten a new request
+		for a page, update the session update time,
+		extending the session lifetime (sessions that are in
+		use keep getting extended).
+	      </div></div></dd><dt><span class="term">cookieName</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex"></div>
+	      name of the cookie stored on the user's web browser
+	      default rivetSession
+	    </div></dd><dt><span class="term">dioObject</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The name of the DIO object we'll use to access the
+		database (default DIO)
+	      </div></div></dd><dt><span class="term">gcProbability</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The probability that garbage collection will occur
+		in percent.  (default 1%, i.e. 1)</div></div></dd><dt><span class="term">gcMaxLifetime</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">the number of seconds after which
+		data will be seen as "garbage" and cleaned up --
+		defaults to 1 day (86400)</div></div></dd><dt><span class="term">refererCheck</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The substring you want to check each
+		HTTP referer for.  If the referer was sent by the
+		browser and the substring is not found, the session
+		will be deleted. (not coded yet)</div></div></dd><dt><span class="term">entropyFile</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The
+		name of a file that random binary data can be read
+		from.  (<code class="filename">/dev/urandom</code>) Data will
+		be used from this file to help generate a
+		super-hard-to-guess session ID.</div></div></dd><dt><span class="term">entropyLength</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The number of bytes which will be
+		read from the entropy file.  If 0, the entropy file
+		will not be read (default 0)</div></div></dd><dt><span class="term">scrambleCode</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Set the scramble code to something unique for the
+		site or your app or whatever, to slightly increase
+		the unguessability of session ids (default "some
+		random string")</div></div></dd><dt><span class="term">cookieLifetime</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The lifetime of the cookie in
+		minutes.  0 means until the browser is closed (I
+		think). (default 0)</div></div></dd><dt><span class="term">cookiePath</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The
+		webserver subpath that the session cookie applies to
+		(defaults to
+		<code class="filename">/</code>)</div></div></dd><dt><span class="term">cookieSecure</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Specifies whether the cookie should
+		only be sent over secure connections, 0 = any, 1 =
+		secure connections only (default
+		0)</div></div></dd><dt><span class="term">sessionTable</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The name of the table that session
+		info will be stored in (default
+		<code class="varname">rivet_session</code>)</div></div></dd><dt><span class="term">sessionCacheTable</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The name of the table that contains
+		cached session data (default
+		<code class="varname">rivet_session_cache</code>)</div></div></dd><dt><span class="term">debugMode</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Set
+		debug mode to 1 to trace through and see the session
+		object do its thing (default 0)</div></div></dd><dt><span class="term">debugFile</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">The
+		file handle that debugging messages will be written
+		to (default
+		<code class="varname">stdout</code>)
+	      </div></div></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3187"></a>Session Methods</h3></div></div></div><p style="width:90%">
+	  The following methods can be invoked to find out
+	  information about the current session, store and fetch
+	  server data identified with this session, etc:
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION status</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Return the status of the last operation
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION id</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Get the session ID of the current browser.  Returns
+		an empty string if there's no session (will not
+		happen is SESSION activate has been issued.)
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION new_session_reason</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Returns the reason why there wasn't a previous
+		session, either "no_cookie" saying the browser
+		didn't give us a session cookie, "no_session"
+		indicating we got a cookie but couldn't find it in
+		the session table, or "timeout" when we had a cookie
+		and a session but the session had timed out.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION store</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>packageName</code></em></span>? ?<span style="fon [...]
+		Given a package name, a key string, and a data
+		string, store the data in the rivet session
+		cache.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION fetch</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>packageName</code></em></span>? ?<span style="fon [...]
+		Given a package name and a key, return the data
+		stored by the store method, or an empty string if
+		none was set.  Status is set to the DIO error that
+		occurred, it can be fetched using the status
+		method.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION delete</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Given a user ID and looking at their IP address we
+		inherited from the environment (thanks, Apache),
+		remove them from the session table.  (the session
+		table is how the server remembers stuff about
+		sessions). If the session ID was not specified the
+		current session is deleted.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION activate</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Find and validate the session ID if they have one.
+		If they don't have one or it isn't valid (timed out,
+		etc), create a session and drop a cookie on
+		them.
+	      </div></div></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3243"></a>Getting Additional Randomness From The Entropy File</h3></div></div></div><pre class="programlisting">RivetServerConf ChildInitScript "Session SESSION -entropyFile /dev/urandom \
+  -entropyLength 10 -debugMode 1"</pre><p style="width:90%">
+	  This options say we want to get randomness from an entropy
+	  file (random data pseudo-device) of /dev/urandom, to get ten
+	  bytes of random data from that entropy device, and to turn
+	  on debug mode, which will cause the SESSION object to output
+	  all manner of debugging information as it does stuff.  This
+	  has been tested on FreeBSD and appears to work.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="diodisplay_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="form.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">DIODisplay </td><td width="20%" align="center"><a accesskey="h" hr [...]
diff --git a/rivet/manual2.4/shorthand.html b/rivet/manual2.4/shorthand.html
new file mode 100644
index 0000000..414bb90
--- /dev/null
+++ b/rivet/manual2.4/shorthand.html
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>&lt;?= ... ?&gt;</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="next" href="abort_code.html" title="ab [...]
+				Shorthand construct for single strings output
+			</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">&lt;?=   <span style="font-family:monospace; font-weight: bold;">$string</span>  ?&gt;</span> </div></div></div><div class="refsect1"><a name="idm529"></a><h2>Description</h2><p style="width:90%">
+				This construct is a simplified form to print a single string wherever
+				needed in a  ?<span style="font-family:monospace; font-weight: bold;">.rvt</span>? template. The contruct is equivalent to
+				writing the following line of Tcl code
+			</p><pre class="programlisting">puts -nonewline $string</pre><p style="width:90%">			
+				The  ?<span style="font-family:monospace; font-weight: bold;">string</span>? argument to the shorthand construct can 
+				be any Tcl command returning a value
+			</p><p style="width:90%">
+				See <a class="xref" href="examples.html#hello_world" title="Example 1. Hello World">Example 1, “Hello World”</a> or
+				<a class="xref" href="examples.html#variable_access" title="Example 3. Variable Access">Example 3, “Variable Access”</a>
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="commands.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="abort_code.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual2.4/tcl_packages.html b/rivet/manual2.4/tcl_packages.html
new file mode 100644
index 0000000..1c116d3
--- /dev/null
+++ b/rivet/manual2.4/tcl_packages.html
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Tcl Packages</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="examples.html" title="Examples and Usage"><link rel="next" href="dio.html" title="DIO - Database Interface Objects"></head><bo [...]
+      In addition to the core Apache module, Rivet provides a number
+      of Tcl packages that include potentially useful code.
+    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+				commserver is a package providing a server that can be
+				used for IPC.  Still experimental.  Requires the comm package
+				from tcllib.
+			</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">dio is a database abstraction layer.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+				dtcl is a compatibility package for mod_dtcl
+				applications.
+			</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">form - for creating forms.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">rivet - some additional, useful routines.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">tclrivet</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">calendar - a package providing a simple configurable calendar generator</div></li><li class="l [...]
diff --git a/rivet/manual2.4/toglyphs.html b/rivet/manual2.4/toglyphs.html
new file mode 100644
index 0000000..d276b80
--- /dev/null
+++ b/rivet/manual2.4/toglyphs.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>toGlyphs</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="asciiglyphs.html" title="AsciiGlyphs"><link rel="prev" href="asciiglyphs.html" title="AsciiGlyphs"><link rel="next" href="entities.html" title="RivetEntities"></head><body bgcolor="white" text [...]
+	            	print large ASCII glyphs
+	            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::AsciiGlyphs toGlyphs</span>   <span style="font-family:monospace; font-weight: bold;">string</span> </div></div></div><div class="refsect1"><a name="idm3931"></a><h2>Description</h2><p style="width:90%">
+            	prints the ASCII glyphs corresponding to the characters forming
+    		        	the argument   <span style="font-family:monospace; font-weight: bold;">string</span> 
+            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="asciiglyphs.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="asciiglyphs.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="entities.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left [...]
diff --git a/rivet/manual2.4/try.html b/rivet/manual2.4/try.html
new file mode 100644
index 0000000..4b24ca4
--- /dev/null
+++ b/rivet/manual2.4/try.html
@@ -0,0 +1,54 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>try</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="read_file.html" title="read_file"><link rel="next" href="unescape_string.html" title="unescape_string"></head><body bg [...]
+				Catch error and exception conditions
+			</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::try</span>  ?<span style="font-family:monospace; font-weight: bold;">script</span>? ?<span style="font-family:monospace; font-weight: bold;">script</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::try</strong></span></span> wraps the core language
+				command and simply traps exceptions that might have raised
+				by <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span> and
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> to throw them again and
+				thus causing <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> to be executed.
+			</p><p style="width:90%">
+				If neither <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span> nor
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> are called from  ?<span style="font-family:monospace; font-weight: bold;">script</span>? 
+				then any handlers specified in the command are tested for execution.
+				Thus <span style="font-family:monospace"><span class="command"><strong>::rivet::try</strong></span></span> can transparently be used
+				as a replacement for Tcl's own <span style="font-family:monospace"><span class="command"><strong>try</strong></span></span> and it's needed
+				if you want  ?<span style="font-family:monospace; font-weight: bold;">script</span>? to safely bail out to <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span>	
+			</p><p style="width:90%">
+				This script shows how <span style="font-family:monospace"><span class="command"><strong>::rivet:try</strong></span></span>
+				handles different exceptions or errors. You can drive this script
+				within mod_rivet adding the arguments fail or abort or exit to its URL.
+				You can handle the <span class="quote">“<span class="quote">exit</span>”</span> and <span class="quote">“<span class="quote">abort</span>”</span> cases with
+				an <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span>.
+				See <a class="xref" href="directives.html" title="Rivet Apache Directives">the section called “Rivet Apache Directives”</a>
+			</p><pre class="programlisting">&lt;html&gt;&lt;?::rivet::try {
+	if {[::rivet::var_qs exists exit]} {
+	    ::rivet::exit 100
+	} elseif {[::rivet::var_qs exists abort]} {
+	    ::rivet::abort_page 
+	} elseif {[::rivet::var_qs exists fail]} {
+	    # this is just a non existent command
+	    wrong_command
+	} else {
+	    puts "&lt;b&gt;OK&lt;/b&gt;"
+	}
+
+} on error {e o} {
+  puts "catching error -&amp;gt; $e&lt;br/&gt;"
+  dict for {fd fv} $o {
+
+   puts "$fd --&amp;gt;&amp;gt; $fv&lt;br/&gt;"
+
+  }
+ }
+?&gt;&lt;/html&gt;</pre><p style="width:90%">
+			Placing this code in a file (try.rvt) on the 
+			web server <span class="emphasis"><em>DocumentRoot</em></span> 
+			directory and setting for example the browser
+			to <span style="font-family:monospace"><span class="command"><strong>http://localhost/try.rvt?fail=1</strong></span></span>.			
+		</p><pre class="programlisting">catching error -&gt; invalid command name "wrong_command"
+-errorcode --&gt;&gt; TCL LOOKUP COMMAND wrong_command
+-code --&gt;&gt; 1
+-level --&gt;&gt; 0
+-errorstack --&gt;&gt; INNER {invokeStk1 wrong_command} UP 1
+-errorinfo --&gt;&gt; invalid command name "wrong_command" while executing "wrong_command" ("::try" body line 9)
+-errorline --&gt;&gt; 9</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="read_file.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="unescape_string.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="4 [...]
diff --git a/rivet/manual2.4/unescape_string.html b/rivet/manual2.4/unescape_string.html
new file mode 100644
index 0000000..cdc0d71
--- /dev/null
+++ b/rivet/manual2.4/unescape_string.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>unescape_string</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="try.html" title="try"><link rel="next" href="upload.html" title="upload"></head><body bgcolor="white" text [...]
+		    Scans through each character in the specified string looking
+		    for escaped character sequences (characters containing a
+		    percent sign and two hexadecimal characters, unescaping them 
+		    back to their original character values, as needed, also mapping
+		    plus signs to spaces, and returning the result.
+		</p><p style="width:90%">
+		    This is useful for unquoting strings that have been quoted to
+		    be part of a URL.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="try.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="upload.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">try </td [...]
diff --git a/rivet/manual2.4/upgrading.html b/rivet/manual2.4/upgrading.html
new file mode 100644
index 0000000..92508af
--- /dev/null
+++ b/rivet/manual2.4/upgrading.html
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Upgrading from mod_dtcl or NeoWebScript</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="internals.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="# [...]
+      Rivet is a break from the past, in that we, the authors, have
+      attempted to take what we like best about our past efforts, and
+      leave out or change things we no longer care for.  Backwards
+      compatibility was not a primary goal when creating Rivet, but we
+      do provide this information which may be of use to those wishing
+      to upgrade from mod_dtcl or NWS installations.
+    </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4238"></a>mod_dtcl</h3></div></div></div><p style="width:90%">
+	Rivet was originally based on the dtcl code, but it has
+	changed (improved!) quite a bit.  The concepts remain the
+	same, but many of the commands have changed.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4241"></a>NeoWebScript</h3></div></div></div><p style="width:90%">
+      	NWS was a server-side scripting environment based on the Apache
+        HTTP server and Safe-Tcl and it's not maintained anymore.      
+      </p><p style="width:90%">
+      	The biggest difference between Rivet and Neowebscript is that 
+      	Neowebscript was designed for shared hosting while Rivet is more oriented 
+      	toward a site that owns all of its content. In the words of Karl Lehenbauer,
+      	NWS author and Rivet Team member:
+      	</p><p style="width:90%">
+      	Rivet, however, is considerably more efficient, powerful, and 
+      	evolved, though it still can support multiple independent sites on a single 
+      	machine through its <span class="quote">“<span class="quote">separate virtual interpreters</span>”</span> mechanism.
+      	</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">By powerful, the difference is that the full power of Tcl is available 
+      		to webpage authors, not the restricted version that NWS provides. 
+      		For instance, you can read or write any file in the system that you 
+      		have permission to, require any package, open sockets and pipes, etc.</li><li class="listitem">By efficient, the difference is that Tcl interpreters survive past 
+      		the generation of a webpage and are reused again and again, reducing the 
+      		overhead of generating a page.
+      		</li><li class="listitem">By evolved, all of our efforts have gone toward Rivet for many 
+				years and so, you know, Rivet does more out of the box than Neowebscript did.</li></ul></div><p style="width:90%">
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="internals.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Rivet Internals </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" a [...]
diff --git a/rivet/manual2.4/upload.html b/rivet/manual2.4/upload.html
new file mode 100644
index 0000000..ececca0
--- /dev/null
+++ b/rivet/manual2.4/upload.html
@@ -0,0 +1,53 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>upload</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="unescape_string.html" title="unescape_string"><link rel="next" href="url_query.html" title="url_query"></head><body [...]
+		    The upload command is for file upload manipulation.
+		    See the relevant Apache Directives to further configure the
+		    behavior of this Rivet feature.
+		</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">channel</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				    When given the name of a file upload
+	    			<em class="replaceable"><code>uploadname</code></em>,
+				    returns a Tcl channel that can be used to access the
+				    uploaded file.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">save</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Saves the <em class="replaceable"><code>uploadname</code></em> in
+				the file <em class="replaceable"><code>filename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">data</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns data uploaded to the server.  This is binary clean
+				- in other words, it will work even with files like
+				images, executables, compressed files, and so on.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">exists</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns true if an upload named  ?<span style="font-family:monospace; font-weight: bold;">uploadname</span>?
+				exists.  This can be used in scripts that are meant to
+				be run by different forms that send over uploads that
+				might need specific processing.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">size</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns the size of the file uploaded.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">type</span> </div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				If the <code class="varname">Content-type</code> is set, it is
+				returned, otherwise, an empty string.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">filename</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns the filename on the remote host that uploaded the file.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">tempname</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uploadname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns the name of the temporary file on the local host that the file was uploaded into.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::upload</span>   <span style="font-family:monospace; font-weight: bold;">names</span> </div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns the variable names, as a list, of all the files uploaded.
+			    </div></div></dd></dl></div><p style="width:90%">
+		    See <a class="xref" href="examples.html#file_upload" title="Example 4. File Upload">Example 4, “File Upload”</a>.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="unescape_string.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="url_query.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign [...]
diff --git a/rivet/manual2.4/url_query.html b/rivet/manual2.4/url_query.html
new file mode 100644
index 0000000..010356c
--- /dev/null
+++ b/rivet/manual2.4/url_query.html
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>url_query</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="upload.html" title="upload"><link rel="next" href="var.html" title="var"></head><body bgcolor="white" text="blac [...]
+				Builds a URL query out of a list of parameter-value pairs. If
+				the argument list has an odd length the last element is silently
+				discarded. The values of each pair in the list are passed through 
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::escape_string</strong></span></span> for proper representation
+				of characters that could break the URL syntax
+			</p><pre class="programlisting">set query [::rivet::url_query par1 val1 par2 val2 par3 val3]
+puts $query
+par1=val1&amp;par2=val2&amp;par3=val3</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upload.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="var.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40 [...]
diff --git a/rivet/manual2.4/var.html b/rivet/manual2.4/var.html
new file mode 100644
index 0000000..98f6b53
--- /dev/null
+++ b/rivet/manual2.4/var.html
@@ -0,0 +1,52 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>var</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="url_query.html" title="url_query"><link rel="next" href="wrap.html" title="wrap"></head><body bgcolor="white" text="bl [...]
+		    The <span style="font-family:monospace"><span class="command"><strong>var</strong></span></span> command retrieves information
+		    about GET or POST variables sent to the script via client
+		    request.  It treats both GET and POST variables the same,
+		    regardless of their origin.  Note that there are two
+		    additional forms of <span style="font-family:monospace"><span class="command"><strong>::rivet::var</strong></span></span>:
+		    <span style="font-family:monospace"><span class="command"><strong>rivet::var_qs</strong></span></span> and 
+		    <span style="font-family:monospace"><span class="command"><strong>::rivet::var_post</strong></span></span>.
+		    These two restrict the retrieval of information to
+		    parameters arriving via the querystring
+		    (?foo=bar&amp;bee=bop) or POSTing, respectively.
+		</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::var</span>   <span style="font-family:monospace; font-weight: bold;">get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varname</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceab [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns the value of variable
+				<em class="replaceable"><code>varname</code></em>
+				as a string (even if there are multiple values).  If
+				the variable doesn't exist as a GET or POST
+				variable, the
+				<em class="replaceable"><code>?<span class="optional">default</span>?</code></em>
+				value is returned, otherwise "" - an empty string -
+				is returned.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::var</span>   <span style="font-family:monospace; font-weight: bold;">list</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+                    Returns the value of variable
+                    <em class="replaceable"><code>varname</code></em> as a list, 
+                    one list element per reference. Radiobuttons or multiple 
+                    selection listboxes are suited widgets which may 
+                    return list data.
+			    </div><div style="margin-bottom:1.5ex ; padding .5ex">
+			     If the result list is passed as a default value to the form package, one
+                 could also set index "__varname" to get it interpreted as a list.
+                </div><pre class="programlisting">set response(countries) [::rivet::var list countries]
+set response(__countries) ""
+form form_request -defaults response
+form_request select countries -multiple 1 -values {USA Canada Mexico}
+form_request end</pre></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::var</span>   <span style="font-family:monospace; font-weight: bold;">exists</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varname</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns 1 if
+				<em class="replaceable"><code>varname</code></em>
+				exists, 0 if it doesn't.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::var</span>   <span style="font-family:monospace; font-weight: bold;">number</span> </div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns the number of variables.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::var</span>   <span style="font-family:monospace; font-weight: bold;">all</span> </div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Return a list of variable names and values.
+			    </div></div></dd></dl></div><p style="width:90%">See <a class="xref" href="examples.html#variable_access" title="Example 3. Variable Access">Example 3, “Variable Access”</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="url_query.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="U [...]
diff --git a/rivet/manual2.4/wrap.html b/rivet/manual2.4/wrap.html
new file mode 100644
index 0000000..ed78268
--- /dev/null
+++ b/rivet/manual2.4/wrap.html
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>wrap</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="var.html" title="var"><link rel="next" href="wrapline.html" title="wrapline"></head><body bgcolor="white" text="black [...]
+		    Split a string on newlines. 
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::wrap</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>? ?<span style="font-family:monospace; font-weight: bold;">maxlen</span>? <span style="font-family:monospace; font-weight: bold;">html</span [...]
+		    For each line, wrap the line at a space character to be 
+		    equal to or shorter than the maximum length value passed.
+		</p><p style="width:90%">
+		    If a third argument called "-html" is present, the string is put together
+		    with html &lt;br&gt; line breaks, otherwise it's broken with newlines.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="var.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="wrapline.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">var </ [...]
diff --git a/rivet/manual2.4/wrapline.html b/rivet/manual2.4/wrapline.html
new file mode 100644
index 0000000..53384ce
--- /dev/null
+++ b/rivet/manual2.4/wrapline.html
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>wrapline</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="wrap.html" title="wrap"><link rel="next" href="xml.html" title="xml"></head><body bgcolor="white" text="black" li [...]
+		    Split the line into multiple lines by splitting on space characters 
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::wrapline</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>? ?<span style="font-family:monospace; font-weight: bold;">maxlen</span>? <span style="font-family:monospace; font-weight: bold;">html</ [...]
+		    Given a line and a maximum length and option "-html" argument, split the line 
+		    into multiple lines by splitting on space characters and making sure each line 
+		    is less than maximum length.
+		</p><p style="width:90%">
+		    If the third argument, "-html", is present, return the result with the lines 
+		    separated by html &lt;br&gt; line breaks, otherwise the lines are returned 
+		    separated by newline characters.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="wrap.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="xml.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">wrap </td> [...]
diff --git a/rivet/manual2.4/xml.html b/rivet/manual2.4/xml.html
new file mode 100644
index 0000000..7e5f7f2
--- /dev/null
+++ b/rivet/manual2.4/xml.html
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>xml</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="wrapline.html" title="wrapline"><link rel="next" href="examples.html" title="Examples and Usage"></head><body bgcolor= [...]
+                XML Fragments creation
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::xml</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>? ?<span style="font-family:monospace; font-weight: bold;">tag descriptor</span>? ?<span style="font-family:monospace; font-weight: [...]
+                Given a string and a variable number of tag descriptors return XML fragment made
+                by nesting the tags with the same hierarchical order they are listed on the command
+                line. The tag descriptors can be a one element list (the tag) or an odd-length list whose
+                first argument is the tag name and the remaining elements are interpreted as 
+                attribute name-attribute value pairs. 
+            </p><p style="width:90%">
+                <span style="font-family:monospace"><span class="command"><strong>::rivet::xml</strong></span></span> can work as a replacement of <span style="font-family:monospace"><span class="command"><strong>::rivet::html</strong></span></span>
+                provided you take care of sending the string with command <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span>
+            </p><pre class="programlisting">::rivet::xml "a string" b u
+&lt;== &lt;b&gt;&lt;u&gt;a string&lt;/u&gt;&lt;/b&gt;</pre><p style="width:90%">
+                You can tell the tags which attributes they must have
+            </p><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml "a string" [list div class box id testbox] b i</strong></span></span>
+&lt;== &lt;div class="box" id="testbox"&gt;&lt;b&gt;&lt;i&gt;a string&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;</pre><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml "text to be wrapped in XML" div [list a href "http://..../" title "info message"]</strong></span></span> 
+&lt;== &lt;div&gt;&lt;a href="http://..../" title="info message"&gt;text to be wrapped in XML&lt;/a&gt;&lt;/div&gt;</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="wrapline.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href= [...]
diff --git a/rivet/manual2.4/xml_calendar.html b/rivet/manual2.4/xml_calendar.html
new file mode 100644
index 0000000..ab544b6
--- /dev/null
+++ b/rivet/manual2.4/xml_calendar.html
@@ -0,0 +1,87 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>XmlCalendar</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="calendar_package.html" title="Calendar Package"><link rel="prev" href="calendar.html" title="Calendar"><link rel="next" href="html_calendar.html" title="HtmlCalendar"></head><body bgcolor=" [...]
+				An XmlCalendar object is created and returned. XmlCalendar objects
+				print XML formatted calendar tables. The markup can be customized
+				using the configuration options. 
+			</p><p style="width:90%">
+				Configuration options accept odd-length lists as values. An option_list has the following
+				structure
+			</p><p style="width:90%">
+				</p><pre class="programlisting">tag_name attr11 val1 attr2 val2 ...</pre><p style="width:90%">			
+			</p><p style="width:90%">
+				The first element of an option list is a tag name, the remaining terms are therefore
+				an even-length sublist which is interpreted as a sequence of attribute-value pairs that
+				will in turn become attributes of the tag.
+			</p></div><div class="refsect1"><a name="idm3775"></a><h2>Methods</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+		      			cal_obj <span style="font-weight:bold ; font-family:monospace">emit</span> -opt1 val1 -opt2 val2</div></div><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+		      			cal_obj <span style="font-weight:bold ; font-family:monospace">emit</span>  ?<span style="font-family:monospace; font-weight: bold;">month</span>? ?<span style="font-family:monospace; font-weight: bold;">year</span>? -opt1 val1 -opt2 val2</div></div><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+							cal_obj <span style="font-weight:bold ; font-family:monospace">emit</span>  ?<span style="font-family:monospace; font-weight: bold;">
+							<em class="replaceable"><code>month | year</code></em></span>? -opt1 val1 
+							-opt2 val2</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+							The method 'emit' if invoked without arguments returns an 
+							XML calendar table of the current month
+		      		</div></div></dd></dl></div></div><div class="refsect1"><a name="idm3794"></a><div class="refsect2"><a name="idm3795"></a><h3>Options</h3><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-containe [...]
+								attr11 val1 attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Assigns an options list to the XML element that 
+								will hold the whole table.   
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								The default tag for the container is 'calendar', with no attributes.
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-header  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Assigns tag name and attributes to the XML header element (default: calheader) 						
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-body  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Assigns tag name and attributes to the XML body element of the table (default: calbody) 						
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-banner  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Assigns tag name and attributes to the XML banner element of the table (default: monthyear) 						
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								The header of a calendar table is made of a banner, showing the Month and Year number, and
+								of a weekdays bar. 							
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-foot  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Assigns tag name and attributes to the XML foot element 
+								of the table (default: calfoot). 						
+							</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+								This option was added for completeness, but it's not implemented yet							
+							</td></tr></table></div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-banner_month  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Tag name and attributes for the XML element holding the 
+								month name (default:month)					
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-banner_year  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Tag name and attributes for the XML element holding the 
+								month name (default: year)					
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-weekdays  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Tag name and attributes for the XML element holding the 
+								weekday header (default: weekdays)					
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-weekdays_cell  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Tag name and attributes for the XML element holding the 
+								each single weekday (default: wkdays)					
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-days_row  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Tag name and attributes for the XML element holding the 
+								each row of the calendar table (default: week)					
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-days_cell  (tag_name attr11 val1 
+								attr2 val2 ...)</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Tag name and attributes for the XML element representing
+								a cell in the calendar table (default: day)					
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-cell_function proc</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								If set this option is the name of a procedure that gets
+								called for every day of the month. The procedure must
+								accept 4 argument representing day, month, year and weekday
+								and must return an odd-length list interpreted in the same
+								way as options lists. 
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-current_day day</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								This option works as a simple method for pointing out
+								a specific day of the month. If set with a day number
+								that day will get the class attribute automatically
+								set as "current"
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">-current_weekday 0-6 | today</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								This option works as a simple method for pointing out
+								a specific weekday of the month. If set with a weekday 
+								index (0: Sunday, 6: Saturday) the corresponding cell in
+								the weekdays header will get the class attribute automatically
+								set as "current_wkday"
+							</div></div></dd></dl></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="calendar_package.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="html_calendar.html"><img src="images/next.png" alt="Next"></a></td></tr [...]
diff --git a/rivet/manual3.1/abort_code.html b/rivet/manual3.1/abort_code.html
new file mode 100644
index 0000000..ea64f0b
--- /dev/null
+++ b/rivet/manual3.1/abort_code.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>abort_code</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="shorthand.html" title="&lt;?= ... ?&gt;"><link rel="next" href="abort_page.html" title="abort_page"></head> [...]
+				Returns the code passed to <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span>
+				earlier during the request processing
+			</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::abort_code</span> </div></div></div><div class="refsect1"><a name="idm761"></a><h2>Description</h2><p style="width:90%">
+				Usage of this command is meaningful only in a script set as
+				AbortScript or AfterEveryScript. 
+				<span style="font-family:monospace"><span class="command"><strong>abort_code</strong></span></span> returns the value of the optional 
+				parameter passed to <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span> earlier in
+				the same request processing.
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="shorthand.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="abort_page.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="to [...]
diff --git a/rivet/manual3.1/abort_page.html b/rivet/manual3.1/abort_page.html
new file mode 100644
index 0000000..813fc05
--- /dev/null
+++ b/rivet/manual3.1/abort_page.html
@@ -0,0 +1,26 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>abort_page</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="abort_code.html" title="abort_code"><link rel="next" href="apache_log_error.html" title="apache_log_error"> [...]
+		    Stops outputting data to web page, similar in
+		    purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::abort_page</span>  (<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>abort code</code></em></span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code [...]
+		    This command flushes the output buffer and stops the Tcl 
+		    script from sending any more data to the client.
+		    A normal Tcl script might use the
+		    <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command, but that cannot be used in
+		    Rivet without actually exiting the apache child
+		    process!
+		    <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span> triggers
+		    the execution of an optional AbortScript that has to be
+		    specified in the configuration. The value of the
+		    argument  ?<span style="font-family:monospace; font-weight: bold;">abort code</span>? can be retrieved with the 
+		    <span style="font-family:monospace"><span class="command"><strong>abort_code</strong></span></span> command during the
+		    execution of <a class="link" href="directives.html" title="Apache Rivet 3.1 Configuration">AbortScript or 
+		    AfterEveryScript</a>, 
+		    allowing the script to take appropriate actions in order to deal
+		    with the cause of the abort. 
+		</p><p style="width:90%">
+		    The argument -aborting causes abort_page
+		    to return 1 when the current execution is the outcome of an abort condition.
+		    In other words this query is meaningful in code specified as 
+		    <a class="link" href="directives.html" title="Apache Rivet 3.1 Configuration">AfterEveryScript</a> to understand
+		    if an abort condition took place beforehand.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abort_code.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="apache_log_error.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" vali [...]
diff --git a/rivet/manual3.1/apache_log_error.html b/rivet/manual3.1/apache_log_error.html
new file mode 100644
index 0000000..a0f3f3d
--- /dev/null
+++ b/rivet/manual3.1/apache_log_error.html
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>apache_log_error</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="abort_page.html" title="abort_page"><link rel="next" href="apache_table.html" title="apache_table"></ [...]
+		    The apache_log_error command logs a message to the 
+		    Apache error log, whose name and location have been
+		    set by the ErrorLog directive.
+		</p><p style="width:90%">
+		    Priority must be one of
+			    debug,
+			    info,
+			    notice,
+			    warning,
+			    err,
+			    crit,
+			    alert, or
+			    emerg.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abort_page.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="apache_table.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign=" [...]
diff --git a/rivet/manual3.1/apache_table.html b/rivet/manual3.1/apache_table.html
new file mode 100644
index 0000000..f5747d7
--- /dev/null
+++ b/rivet/manual3.1/apache_table.html
@@ -0,0 +1,62 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>apache_table</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="apache_log_error.html" title="apache_log_error"><link rel="next" href="catch.html" title="catch"></head>< [...]
+		    The apache_table command is for accessing and manipulating
+		    Apache tables in the request structure.
+		</p><p style="width:90%">
+		    The table name must be one of
+		    notes,
+		    headers_in,
+		    headers_out,
+		    err_headers_out, or
+		    subprocess_env.
+		</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				When given the name of an Apache table
+				<em class="replaceable"><code>tablename</code></em>
+				and the name of a key
+				<em class="replaceable"><code>tablename</code></em>,
+				returns the value of the key in the table, or an empty
+				string.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">set</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">set</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Stores the <em class="replaceable"><code>value</code></em> in
+				the table <em class="replaceable"><code>tablename</code></em>
+				under the key <em class="replaceable"><code>key</code></em>.
+			    </div><div style="margin-bottom:1.5ex ; padding .5ex">
+				For the list form,
+				<em class="replaceable"><code>list</code></em> contains
+				a list of zero or more pairs of key-value pairs to be
+				set into the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">exists</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em cl [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns 1 if the specified key,
+				<em class="replaceable"><code>key</code></em>,
+				exists in table
+				<em class="replaceable"><code>tablename</code></em>,
+				else 0.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">unset</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em cla [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Removes the key-value pair referenced by
+				<em class="replaceable"><code>key</code></em>
+				from the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">names</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns a list of all of the keys present in the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">array_get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Returns a list of key-value pairs from the table
+				<em class="replaceable"><code>tablename</code></em>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::apache_table</span>   <span style="font-family:monospace; font-weight: bold;">clear</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Clears the contents of the specified table.
+			    </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apache_log_error.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="catch.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width [...]
diff --git a/rivet/manual3.1/asciiglyphs.html b/rivet/manual3.1/asciiglyphs.html
new file mode 100644
index 0000000..80c6619
--- /dev/null
+++ b/rivet/manual3.1/asciiglyphs.html
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>AsciiGlyphs</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="decode.html" title="decode"><link rel="next" href="toglyphs.html" title="toGlyphs"></head><body bgcolor="white" text="black"  [...]
+				The <span style="font-family:monospace"><span class="command"><strong>AsciiGlyphs</strong></span></span> package provides a command
+				to print large ASCII glyphs in an HTML fragment based on
+				a &lt;pre&gt;...&lt;/pre:&gt; element. The shape of the glyphs was
+				inspired by the challenge response used by Fossil to let anonymous users
+				to log into a repository. The glyph set was extended to
+				support the whole English alphabet and some punctuation characters.
+				The string to be represented has to be made of pure 7-bit ASCII characters.
+				The package also runs standalone outside of mod_rivet
+        </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4193"></a>Example</h3></div></div></div><pre class="programlisting">package require AsciiGlyphs
+::AsciiGlyphs toGlyphs "Date: 07-12-2015"
+ _____              _____   ______          ___   ______         __  ___          ___    ___   __  _____ 
+|  __ \     /\     |_   _| |  ____|  _     / _ \ |____  |       /_ ||__ \        |__ \  / _ \ /_ || ____|
+| |  | |   /  \      | |   | |__    |_|   | | | |    / /  ____   | |   ) | ____     ) || | | | | || |__  
+| |  | |  / /\ \     | |   |  __|    _    | | | |   / /  |____|  | |  / / |____|   / / | | | | | ||___ \ 
+| |__| | / ____ \    | |   | |____  |_|   | |_| |  / /           | | / /_         / /_ | |_| | | | ___) |
+|_____/ /_/    \_\   |_|   |______|        \___/  /_/            |_||____|       |____| \___/  |_||____/ 
+
+::AsciiGlyphs toGlyphs "Time: 18:10:19"
+ _____   ___  _    _   ______         __   ___        __   ___        __   ___  
+|_   _| |   || \  / | |  ____|  _    /_ | / _ \   _  /_ | / _ \   _  /_ | / _ \ 
+  | |    | | |  \/  | | |__    |_|    | || (_) | |_|  | || | | | |_|  | || (_) |
+  | |    | | | |  | | |  __|    _     | | &gt; _ &lt;   _   | || | | |  _   | | \__, |
+  | |    | | | |  | | | |____  |_|    | || (_) | |_|  | || |_| | |_|  | |   / / 
+  |_|   |___||_|  |_| |______|        |_| \___/       |_| \___/       |_|  /_/  
+
+</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="decode.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="toglyphs.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">decode </td><td width="20%" align="center"><a accesskey="h" href="index.html"> [...]
diff --git a/rivet/manual3.1/calendar.html b/rivet/manual3.1/calendar.html
new file mode 100644
index 0000000..df75250
--- /dev/null
+++ b/rivet/manual3.1/calendar.html
@@ -0,0 +1,26 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Calendar</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="calendar_package.html" title="Calendar Package"><link rel="prev" href="calendar_package.html" title="Calendar Package"><link rel="next" href="xml_calendar.html" title="XmlCalendar"></head> [...]
+				The main public command for a calendar object is 
+				<span style="font-family:monospace"><span class="command"><strong>emit</strong></span></span> that returns a calendar table
+			</p></div><div class="refsect1"><a name="idm3955"></a><div class="variablelist"><p style="width:90%">
+	    			The method <span style="font-family:monospace"><span class="command"><strong>emit</strong></span></span> when invoked with a single argument
+	    			takes it as an year number and prints the whole calendar of
+	    			that year. When invoked with 2 arguments takes the first as a month, either
+	    			expressed in its shortened form ('Jan','Feb',...) or as a number in the 
+	    			range 1-12. The second argument is a year number.
+	    		</p><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+		      			calendar_obj <span style="font-weight:bold ; font-family:monospace">emit</span> </div></div><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+		      			calendar_obj <span style="font-weight:bold ; font-family:monospace">emit</span>  ?<span style="font-family:monospace; font-weight: bold;">month</span>? ?<span style="font-family:monospace; font-weight: bold;">year</span>?</div></div><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+							calendar_obj <span style="font-weight:bold ; font-family:monospace">emit</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>month | year</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+							The method 'emit' if invoked without arguments returns an 
+							ASCII formatted calendar of the current month
+		      		</div><pre class="programlisting">
+set cal [Calendar #auto]
+set current_month [$cal emit]
+puts $current_month
+      Jun 2010
+  Su Mo Tu We Th Fr Sa
+        1  2  3  4  5
+  6  7  8  9 10 11 12
+ 13 14 15 16 17 18 19
+ 20 21 22 23 24 25 26
+ 27 28 29 30</pre></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="calendar_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="calendar_package.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="xml_calendar.html"><img src="images/next.png" alt="Next"></a></t [...]
diff --git a/rivet/manual3.1/calendar_package.html b/rivet/manual3.1/calendar_package.html
new file mode 100644
index 0000000..4227a73
--- /dev/null
+++ b/rivet/manual3.1/calendar_package.html
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Calendar Package</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="form_package.html" title="form"><link rel="next" href="calendar.html" title="Calendar"></head><body bgcolor="white" text [...]
+      	The package is based on the Calendar class, a class capable
+      	of printing an ascii calendar table that closely resembles the output 
+      	of the typical Unix <span style="font-family:monospace"><span class="command"><strong>cal</strong></span></span> command. The internal
+      	code is written entirely in Tcl, therefore doesn't rely on the 
+      	existance of <span style="font-family:monospace"><span class="command"><strong>cal</strong></span></span> on the system. 
+      	XmlCalendar inherits the basic methods and adds XML tagging to the
+      	table. XmlCalendar prints an XML calendar table whose header, 
+      	weekdays banner and days rows tags are configurable. 
+      	Also specific days or specific weeks can be given arbitrary attributes.
+      </p><p style="width:90%">
+      	Calendar core methods are based on the 
+      	<a class="ulink" href="http://wiki.tcl.tk/17964" target="_top">cal</a> procedure
+      	written by Richard Suchenwirth and published on the 
+      	<a class="ulink" href="http://wiki.tcl.tk" target="_top">Tcl Wiki</a>
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+        The Calendar package uses Tcl <span style="font-family:monospace"><span class="command"><strong>dict</strong></span></span> command to manage markup 
+        information. Hence either Tcl8.5 or Tcl8.4 with 
+        <a class="ulink" href="http://wiki.tcl.tk/5042" target="_top">package dict</a> are required.   
+      </td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="form_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="calendar.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">form </td><td width="20%" align="center"><a acce [...]
diff --git a/rivet/manual3.1/catch.html b/rivet/manual3.1/catch.html
new file mode 100644
index 0000000..049903b
--- /dev/null
+++ b/rivet/manual3.1/catch.html
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>catch</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="apache_table.html" title="apache_table"><link rel="next" href="clock_to_rfc.html" title="clock_to_rfc850_gmt"></ [...]
+		    	<span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> wraps the core language's same command adding some
+            extra error handling needed by mod_rivet design.
+		    	The rationale for Rivet to have its own <span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> reads as follows: 
+            within mod_rivet a script execution can be interrupted by either calling 
+		    	<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>(deprecated) or <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span>. These commands
+            implement a simple internal exception mechanism by 
+            returning a special error code so that execution is in turn handed down to the
+            <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> and eventually to <span style="font-family:monospace"><span class="command"><strong>AfterEveryScript</strong></span></span> (if any of them is 
+            defined). Any code calling one of these commands which runs under control of the
+            <span style="font-family:monospace"><span class="command"><strong>::catch</strong></span></span> command would need to do this chore itself, checking the error info and in case 
+            throw the error again if it had been originated by one of mod_rivet's exceptions calls. 
+            This is what <span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> does hiding the implementation
+            details provide a better and more compatibile way to handle this condition.
+			</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+				This command is not meant to replace the core command, thus it's not exported from the 
+            <span style="font-family:monospace"><span class="command"><strong>::rivet</strong></span></span> namespace and therefore has to be fully qualified.
+			</td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apache_table.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="clock_to_rfc.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40% [...]
diff --git a/rivet/manual3.1/clock_to_rfc.html b/rivet/manual3.1/clock_to_rfc.html
new file mode 100644
index 0000000..57a84b0
--- /dev/null
+++ b/rivet/manual3.1/clock_to_rfc.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>clock_to_rfc850_gmt</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="catch.html" title="catch"><link rel="next" href="cookie.html" title="cookie"></head><body bgcolor= [...]
+		    Convert an integer-seconds-since-1970 click value to
+		    RFC850 format, with the additional requirement that it be
+		    GMT only.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="catch.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="cookie.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">catch  [...]
diff --git a/rivet/manual3.1/cmake.html b/rivet/manual3.1/cmake.html
new file mode 100644
index 0000000..71efebb
--- /dev/null
+++ b/rivet/manual3.1/cmake.html
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Building Rivet 3.1 with CMake</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="installation.html" title="Apache Rivet 3.1 Installation"><link rel="next" href="directives.html" title="Apa [...]
+				Starting with 3.1 Rivet has adopted <a class="ulink" href="" target="_top">CMake</a>
+				as an alternate build system. The choice of introducing CMake was motivated by the
+				need of an easy to use and reliable build system for Windows installations. Nonetheless
+				the usability of CMake is by no means restricted to that OS and user familiar with this
+				tool set can adopt it to build mod_rivet also on Linux and other systems. 
+				The current CMake script requires CMake 3.2 or later. 
+				The <a class="ulink" href="" target="_top">CMake documentation</a>
+				page has a complete reference of CMake features
+        </p><p style="width:90%">Before running the build script cd into the cmake directory
+				</p><pre class="programlisting">cd cmake</pre><p style="width:90%">        		
+        	</p><p style="width:90%">With default arguments run the following sequence of commands that prepare the build directory
+			build the code and install the binary and application library
+				</p><pre class="programlisting">cmake -E make_directory build
+cmake -E chdir build cmake ..
+cmake --build build --target all --clean-first
+cmake --build build --target install</pre><p style="width:90%">	
+        </p><p style="width:90%">
+        		Installation on a Windows system with a custom installation of the Apache HTTP web server
+        		</p><pre class="programlisting">cmake -E make_directory build
+cmake -E chdir build cmake -DAPACHE_ROOT=G:/Apache24 ..
+cmake --build build --config Release --target install</pre><p style="width:90%">
+        </p><p style="width:90%">
+        		Building rivet on Windows with a 64 bit build of Apache requires specific
+        		directives to the Microsoft C compiler
+        		</p><pre class="programlisting">cmake -E make_directory build_64
+cmake -E chdir build_64 cmake -DAPACHE_ROOT=G:/Apache24 -G "Visual Studio 15 2017 Win64" ..
+cmake --build build_64 --config Release --target install</pre><p style="width:90%">
+ 				-G "..." can be set to any of the available 64-bit generators available under the platform
+ 				depending on your Windows version and Apache build
+        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="installation.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="directives.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Rivet 3.1 Installation </td><td width="20%" align="center [...]
diff --git a/rivet/manual3.1/commands.html b/rivet/manual3.1/commands.html
new file mode 100644
index 0000000..c4b09cc
--- /dev/null
+++ b/rivet/manual3.1/commands.html
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Tcl Commands and Variables</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="request.html" title="Apache Child Processes Lifecycle and Request Processing"><link rel="next" href="sho [...]
+			Starting with version 2.1.0 the Rivet command set moved into the 
+			<span style="font-family:monospace"><span class="command"><strong>::rivet</strong></span></span> namespace.
+		</p><p style="width:90%">
+			In order to preserve out of the box compatibility with existing scripts,
+			Rivet exports commands by default and makes them available for import 
+			into any namespace (global namespace included). 
+			Rivet's build system can be told not to export the command set by
+			passing the switch <span style="font-family:monospace"><span class="command"><strong>--disable-rivet-commands-export</strong></span></span> 
+			to 'configure'. In the future we may change this option's default.
+		</p><p style="width:90%">
+			Commands must be imported into another namespace with the command:
+		</p><p style="width:90%">
+			<span style="font-family:monospace"><span class="command"><strong>namespace import -force ::rivet::*</strong></span></span>
+		</p><p style="width:90%">
+			Whenever a new application is being developed and compatibility
+			issues can be confined within specific files, it is recommended
+			that commands be specified with their fully qualified names.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="request.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="shorthand.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Child Processes Lifecycle and Request Processing </td><td width="20%" [...]
diff --git a/rivet/manual3.1/cookie.html b/rivet/manual3.1/cookie.html
new file mode 100644
index 0000000..8d8ca3f
--- /dev/null
+++ b/rivet/manual3.1/cookie.html
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>cookie</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="clock_to_rfc.html" title="clock_to_rfc850_gmt"><link rel="next" href="debug.html" title="debug"></head><body bg [...]
+			    <span style="font-family:monospace"><span class="command"><strong>cookie</strong></span></span> gets, sets, unsets or deletes a cookie.  When you
+			    get a cookie, the command returns the value of the cookie,
+			    or an empty string if no cookie exists.
+			</p><p style="width:90%">
+			    <span style="font-family:monospace"><span class="command"><strong>cookie delete</strong></span></span> will set the timeout value to -1 minutes - 
+			    deleting the cookie in the browser.
+			</p><p style="width:90%">
+			    <span style="font-family:monospace"><span class="command"><strong>cookie unset</strong></span></span> will remove the defined cookie in the server 
+			    (perhaps preparatory to checking/resetting the cookie).
+			</p><p style="width:90%">
+				The command has a number of switches setting a cookie attributes
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="clock_to_rfc.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="debug.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual3.1/debug.html b/rivet/manual3.1/debug.html
new file mode 100644
index 0000000..b96ee45
--- /dev/null
+++ b/rivet/manual3.1/debug.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>debug</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="cookie.html" title="cookie"><link rel="next" href="env.html" title="env"></head><body bgcolor="white" text="blac [...]
+		    A command to print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::debug</span>   <span style="font-family:monospace; font-weight: bold;">-subst</span>  ?<span style="font-family:monospace; font-weight: bold;">&lt;on|off&gt;</span>?  <span style="font-family:monospace; font-weight: bold;"> [...]
+		    A command to make debugging more convenient print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</p><p style="width:90%">
+		    Also allows the setting of an array called debug which will pick up
+		    options for all debug commands.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cookie.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="env.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">cookie < [...]
diff --git a/rivet/manual3.1/decode.html b/rivet/manual3.1/decode.html
new file mode 100644
index 0000000..1da00f6
--- /dev/null
+++ b/rivet/manual3.1/decode.html
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>decode</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="entities.html" title="RivetEntities"><link rel="prev" href="encode.html" title="encode"><link rel="next" href="asciiglyphs.html" title="AsciiGlyphs"></head><body bgcolor="white" text="black" [...]
+                decode an SGML encoded string replacing every entity with the
+                corresponding character
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::decode</span>   <span style="font-family:monospace; font-weight: bold;">string</span>  ?<span style="font-family:monospace; font-weight: bold;">-encoding <em class="replaceable"><code>&lt;encoding&gt;</code></em>< [...]
+                    <span style="font-family:monospace"><span class="command"><strong>::rivet::decode</strong></span></span> implements the inverse function of
+                    <span style="font-family:monospace"><span class="command"><strong>::rivet::encode</strong></span></span>. The input string is scanned searching
+                    and replacing every SGML entity with its corresponding character.
+                    By default the command assumes the output string has to be encoded in UTF-8.
+                    Other encodings are supported by passing the 
+                    <span style="font-family:monospace"><span class="command"><strong>-encoding &lt;encoding&gt;</strong></span></span> argument.
+            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="encode.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="entities.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="asciiglyphs.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" val [...]
diff --git a/rivet/manual3.1/dio.html b/rivet/manual3.1/dio.html
new file mode 100644
index 0000000..3ec79a5
--- /dev/null
+++ b/rivet/manual3.1/dio.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIO - Database Interface Objects</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="tcl_packages.html" title="Rivet Tcl Packages"><link rel="next" href="dio_package.html" title="DIO"></hea [...]
diff --git a/rivet/manual3.1/dio_package.html b/rivet/manual3.1/dio_package.html
new file mode 100644
index 0000000..a177f95
--- /dev/null
+++ b/rivet/manual3.1/dio_package.html
@@ -0,0 +1,274 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIO</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="dio.html" title="DIO - Database Interface Objects"><link rel="prev" href="dio.html" title="DIO - Database Interface Objects"><link rel="next" href="diodisplay.html" title="DIODisplay - Database [...]
+	  <span style="font-family:monospace"><span class="command"><strong>DIO</strong></span></span> is designed to be a generic,
+	  object-oriented interface to SQL databases.  Its main goal
+	  is to be as generic as possible, but since not all SQL
+	  databases support the exact same syntaxes, keeping code
+	  generic between databases is left to the abilities of the
+	  programmer.  DIO simply provides a way to keep the Tcl
+	  interface generic.
+	</p><p style="width:90%">
+	  interface - The name of the database
+	  interface.  Currently supported interfaces are
+	  Postgresql and Mysql.
+	</p><p style="width:90%">
+	  If <em class="replaceable"><code>objectName</code></em> is
+	  specified, DIO creates an object of that name.  If there is
+	  no <em class="replaceable"><code>objectName</code></em>
+	  given, DIO will automatically generate a unique object ID
+	</p></div><div class="refsect1"><a name="idm2080"></a><h2>Options</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-host</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+		The hostname of the computer to connect to.  If none
+		is given, DIO assumes the local host.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-port</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>portNumber</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; paddi [...]
+		The name of the database to connect to.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-table</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tableName</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; paddi [...]
+		The default table to use when using built-in commands
+		for storing and fetching.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-keyfield</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>keyFieldname</code></em></span>?</div></div><div style="m [...]
+		The default field to use as the primary key when using
+		built-in commands for storing and fetching.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-autokey</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</ [...]
+				If this option is set to 1, DIO will attempt to
+				determine an automatic key for
+				keyField when storing and fetching.
+				In most databases, this requires that the
+				sequence also be specified.  In the
+				case of MySQL, where sequences do not exist, autokey
+				must be used in conjunction with a table which has a
+				field specified as AUTO.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-sequence</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>sequenceName</code></em></span>?</div></div><div style=" [...]
+				If DIO is automatically generating keys, it will use
+				this sequence as a means to gain a unique number for
+				the stored key.</div></div></dd></dl></div></div><div class="refsect1"><a name="idm2150"></a><h2>DIO Object Commands</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code> [...]
+		Execute request as a SQL query and
+		create an array from the first record found.  The
+		array is set with the fields of the table and the
+		values of the record found.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">autokey</span>? (<span style="font-family: [...]
+		Return the current autokey value.  If
+		value is specified, it sets a new
+		value for the autokey option.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">close</span>?</div></div><div style="mar [...]
+		automatically called when the DIO object is destroyed.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">count</span>?</ [...]
+		specified (or current) table.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">db</span>? ?<span style="font-family:mon [...]
+		Return the current database.  If
+		value is specified, it sets a new
+		value for the database.  In most cases, the DIO object
+		will automatically connect to the new database when
+		this option is changed.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">delete</span>? ?<span style="font-family:monos [...]
+		Delete a record from the database where the primary
+		key matches key.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">destroy</span>?</div></div><div style="margin-bottom: [...]
+		Destroy the DIO object.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">errorinfo</span>? ?<span style="font-family:monospace; font-weig [...]
+		the last error, if any, to occur while executing a
+		request.  When a request fails for any reason, this
+		variable is filled with the error message from the SQL
+		interface package.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">exec</span>? ?<span style="font-family:monospace; f [...]
+		Execute request as an SQL query.
+		When the exec command is called, the query is
+		executed, and a DIO result object is returned.  From
+		there, the result object can be used to obtain
+		information about the query status and records in a
+		generic way.  See <a class="link" href="dio_package.html#resultobj" title="Result Object Commands">Result
+		  Object Commands</a>
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">fetch</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Fetch a record from the database where the primary key
+		matches key and store the result in
+		an array called arrayName.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">forall</span>? ?<span style="font-family:monospace; font-weight: [...]
+	       Execute an SQL select request and iteratively 
+	       fill the array named arrayName
+	       with elements named with the matching field names, and
+	       values containing the matching values, repeatedly executing 
+	       the specified code body
+	       for each row returned.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">host</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return the current host value.  If
+		value is specified, it sets a new
+		value for the host.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">insert</span>? ?<span style="font-family:monospace; font-weight: [...]
+		Insert fields from arrayName into the specified table in the database.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">interface</span>?</div></div><div style="margin-bottom:1.5ex ; p [...]
+		Return the database interface type, such as 
+		<code class="literal">Postgresql</code> or <code class="literal">Mysql</code>.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">keyfield</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current keyfield.  If
+		value is specified, it sets a new
+		value for the keyfield.  Value can contain
+		multiple key fields as a Tcl list, if the table has multiple
+		key fields.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">keys</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return a list of keys in the database.  If
+		pattern is specified, only the keys
+		matching will be returned.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">lastkey</span>?</div></div><div style="margin-bottom:1.5ex ; pad [...]
+		Return the last key that was used from
+		sequence.  If sequence has not been
+		specified, this command returns an empty string.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">list</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Execute request as a SQL query and
+		return a list of the first column of each record
+		found.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">makekey</span>? ?<span style="font-family:monospace; font-weight [...]
+		Given an array containing key-value pairs and an optional
+		list of key fields (we use the object's keyfield if
+		none is specified), if we're doing auto keys, create
+		and return a new key, otherwise if it's a single key,
+		just return its value from the array, else if there are
+		multiple keys, return all the keys' values from the
+		array as a list.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">nextkey</span>?</div></div><div style="margin-bottom:1.5ex ; pad [...]
+		next key to be used.  If sequence has not been
+		specified, this command returns an empty
+		string.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">open</span>?</div></div><div style="margin-bottom:1.5ex ; padd [...]
+		command is automatically called from any command which
+		accesses the database.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">pass</span>? ?<span style="font-family:monospac [...]
+		Return the current pass value.  If
+		value is specified, it sets a new
+		value for the password.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">port</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		specified, it sets a new value for the port.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">quote</span>? ?<span styl [...]
+	      a way that makes it acceptable as a value in a SQL statement.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">search</span>? (<span style="font-family:monospace; font-weight: [...]
+		Search the current table, or the specified table if
+		-table tableName is specified, for rows matching
+		one or more fields as key-value pairs, and return
+		a query result handle.
+		See <a class="link" href="dio_package.html#resultobj" title="Result Object Commands">Result Object Commands</a>
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		For example,
+	<pre class="programlisting">set res [DIO search -table people -firstname Bob]</pre>
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">sequence</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current sequence value.  If value is
+		specified, it sets a new value for the sequence.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">store</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Store the contents of arrayName in the 
+		database, where the keys are the field names and the
+		array's values are the corresponding values.  Do an SQL insert 
+		if the corresponding row doesn't exist, or an update 
+		if it does.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		The table name must have been previously set
+		or specified with  ?<span style="font-family:monospace; font-weight: bold;">-table</span>?, and the key field(s) must
+		have been previously set or specified with
+		 ?<span style="font-family:monospace; font-weight: bold;">-keyfield</span>?.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		Please note that the store method has significantly higher 
+		overhead than
+		the update or insert methods, so if you know you are
+		inserting a row rather than updating one, it is advisable
+		to use the insert method and, likewise, if you know you
+		are updating rather than inserting, to use the
+		update method.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>? ?<span style="font-family:monospace; font-weight: [...]
+		Execute request as a SQL query and
+		return a string containing the first record
+		found.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">table</span>? ?<span style="font-family:monospace; font-weight: [...]
+		value is specified, it sets a new
+		value for the table.</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">update</span>? ?<span style="font-family:monospac [...]
+		Updates the row matching the contents of 
+		arrayName in the database.  The matching
+		row must already exist.  The table can have already been
+		set or can be specified with  ?<span style="font-family:monospace; font-weight: bold;">-table</span>?, and
+		the key field(s) must either have been set or
+		specified with  ?<span style="font-family:monospace; font-weight: bold;">-keyfield</span>?.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">user</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return the current user value.  If
+		value is specified, it sets a new
+		value for the user.
+	      </div></div></dd></dl></div></div><div class="refsect1"><a name="resultobj"></a><h2>Result Object Commands</h2><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultO [...]
+		Return the current autocache value.  If
+		value is specified, it sets a new
+		value for autocache.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		If autocache is true, the result object will
+		automatically cache rows as you use them.  This means
+		that the first time you execute a forall command, each
+		row is being cached in the result object itself and
+		will no longer need to access the SQL result.
+		<span class="emphasis"><em>Default is true</em></span>.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">cache</span>?</div></div><div style="margin-bottom:1.5ex ; paddin [...]
+		Cache the results of the current SQL result in the
+		result object itself.  This means that even if the
+		database connection is closed and all the results of
+		the DIO object are lost, this result object will still
+		maintain a cached copy of its records.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">errorcode</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current errorcode value.  If value
+		is specified, it sets a new value for errorcode.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		errorcode contains the current code from the
+		SQL database which specifies the result of the query
+		statement which created this object.  This variable
+		can be used to determine the success or failure of a
+		query.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">errorinfo</span>? ?<span style="font-family:monospace; font-weigh [...]
+		Return the current errorinfo value.  If value
+		is specified, it sets a new value for errorinfo.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		If an error occurred during the SQL query, DIO
+		attempts to set the value of errorinfo to the
+		resulting error message.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">fields</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Return the current fields value.  If
+		value is specified, it sets a new
+		value for fields.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		fields contains the list of fields
+		used in this query.  The fields are in order of the
+		fields retrieved for each row.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">forall</span>? ?<span style="font-family:monospace; font-weight:  [...]
+		Execute body over each record in the
+		result object.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">Types:</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-array</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Create
+		      <em class="replaceable"><code>varName</code></em>
+		      as an array where the indexes are the names of
+		      the fields in the table and the values are the
+		      values of the current row.
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-keyvalue</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list containing key-value pairs of fields
+		      and values from the current row. (-field value
+		      -field value)
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-list</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list that contains the values of the
+		      current row.
+		    </div></div></dd></dl></div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">next</span>? ?<span style="font-family:monos [...]
+		Retrieve the next record in the result object.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">Types:</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-array</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Create
+		      <em class="replaceable"><code>varName</code></em>
+		      as an array where the indexes are the names of
+		      the fields in the table and the values are the
+		      values of the current row.
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-keyvalue</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list containing key-value pairs of fields
+		      and values from the current row. (-field value
+		      -field value)
+		    </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-list</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		      Set
+		      <em class="replaceable"><code>varName</code></em>
+		      to a list that contains the values of the
+		      current row.
+		    </div></div></dd></dl></div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">numrows</span>? ?<span style="font-family:mo [...]
+		Return the current numrows value.  If value is
+		specified, it sets a new value for numrows.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		numrows is the number of rows in this result.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">resultid</span>? ?<span style="font-family:monospace; font-weight [...]
+		Return the current resultid value.  If value is
+		specified, it sets a new value for resultid.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		resultid in most databases is the result
+		pointer which was given us by the database.  This
+		variable is not generic and should not really be used,
+		but it's there if you want it.
+	      </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">rowid</span>? ?<span style="font-family:monospace; font-weight: b [...]
+		Return the current rowid value.  If value is
+		specified, it sets a new value for rowid.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		rowid contains the number of the
+		current result record in the result object.  This
+		variable should not really be accessed outside of the
+		result object, but it's there if you want it.
+	      </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dio.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="dio.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="diodisplay.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align= [...]
diff --git a/rivet/manual3.1/diodisplay.html b/rivet/manual3.1/diodisplay.html
new file mode 100644
index 0000000..aac2b9f
--- /dev/null
+++ b/rivet/manual3.1/diodisplay.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIODisplay - Database Interface Objects Display Class</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="dio_package.html" title="DIO"><link rel="next" href="diodisplay_package.html" title [...]
diff --git a/rivet/manual3.1/diodisplay_package.html b/rivet/manual3.1/diodisplay_package.html
new file mode 100644
index 0000000..530062b
--- /dev/null
+++ b/rivet/manual3.1/diodisplay_package.html
@@ -0,0 +1,430 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>DIODisplay</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="diodisplay.html" title="DIODisplay - Database Interface Objects Display Class"><link rel="prev" href="diodisplay.html" title="DIODisplay - Database Interface Objects Display Class"><link [...]
+	  DIODisplay is an HTML display class that uses a DIO object
+	  to do the database work and a form object to do the
+	  displaying.
+	</p></div><div class="refsect1"><a name="idm2690"></a><h2>Options</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-DIO</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>dioObject</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The DIO object to be used in conjunction with this
+		display object.  This is a required field.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-cleanup</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</span>)</div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		If cleanup is true, when the display object is shown,
+		it will automatically destroy the DIO object, the form
+		object and itself. Default is true.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-confirmdelete</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</span>)</div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		If confirmdelete is true, attempting to delete a
+		record from the database first requires that the user
+		confirm that they wish to delete it.  If it is false,
+		deletion occurs without prompting the user. Defaults
+		to true.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-errorhandler</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>procName</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The name of a procedure to handle errors when they
+		occur.  During the processing of requests and pages,
+		sometimes unexpected errors can occur.  This procedure
+		will handle any errors.  It is called with a single
+		argument, the error string.  Use of the Tcl errorInfo
+		and errorCode variables is also recommended though.
+	      </div><div style="margin-bottom:1.5ex ; padding .5ex">
+		If no errorhandler is specified, the handle_error
+		method within the Display object will handle the
+		error.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-fields</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Specify a list of fields to be used in this object.
+		The fields list is actually created by using the
+		<span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> command to add fields to the
+		display, but this option can be useful to sometimes
+		over-set the list of fields created.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-form</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formObject</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A Rivet form object to use when displaying a form.  If
+		one is not specified, the display object will
+		automatically create one when it is necessary.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-functions</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>functionList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of functions to be displayed in the main menu.
+		This is a list of functions the user is allowed to
+		execute.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-pagesize</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>pageSize</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		How many records to show per page on a search or
+		list. Default is 25.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-rowfields</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of fields to display in each row of a search or
+		list.  When a search or list is conducted and the
+		resulting rows are displayed, this list will limit
+		which fields are displayed.  Default is all fields.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-rowfunctions</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>functionList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of functions to display in each row of a search
+		or list.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-searchfields</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldList</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		A list of fields to allow a user to search by.  This
+		list will appear in the main screen as a drop-down box
+		of fields the user can search on.
+	      </div></div></dd><dt><span class="term">
+	      <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-title</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>title</code></em></span> </div></div>
+	    </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		The title of the display object.  This will be output
+		as the title of the HTML document.
+	      </div></div></dd></dl></div><div class="refsect2"><a name="idm2793"></a><h3>DIO Display Object Commands</h3><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">cleanup</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current cleanup value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for the cleanup
+		  option.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">delete</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Delete the specified key from the
+		  database.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The default action of this method is to call the DIO
+		  object's delete command.  This method can be
+		  overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">destroy</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Destroy the diodisplay object.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">DIO</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current DIO value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for DIO.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">errorhandler</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current errorhandler value.  If
+		  <em class="replaceable"><code>value</code></em> is specified, it
+		  sets a new value for errorhandler.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">fetch</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>   <span style="font-family:monospace; font-we [...]
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Fetch the specified <em class="replaceable"><code>key</code></em>
+		  from the database and store it as an array in
+		  <em class="replaceable"><code><em class="replaceable"><code>arrayName</code></em></code></em>.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The default of this method is to call the DIO object's fetch command.
+		  This method can be overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">field</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldName</code></em></span>  (<span style="font-family:monospace; f [...]
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Create a new field object and add it to the display.
+		  When a field is added to the display, a new object
+		  of the DIODisplayField class is created with its
+		  values.  See [FIXME - LINK] DIO Display Fields for
+		  options and values.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">fields</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current fields value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for fields.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">form</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current form value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for form.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">function</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>functionName</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Add a new function to the list of possible
+		  functions.  The display object will only execute
+		  methods and procs which are defined as functions by
+		  the object.  This is to protect the program from
+		  executing a different procedure other than what is
+		  allowed.  The <span style="font-family:monospace"><span class="command"><strong>function</strong></span></span> command
+		  adds a new function to the list of allowable
+		  functions.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">functions</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current functions value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for functions.  See
+		  [FIXME - LINK DIO Display Functions] for a list of
+		  default functions.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">pagesize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current form pagesize.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for pagesize.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowfields</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current form rowfields.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for rowfields.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowfooter</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Output the footer of a list of rows to the web page.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowfunctions</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current rowfunctions value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for rowfunctions.
+		  
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">rowheader</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Output the header of a list of rows to the web page.
+		By default, this is an HTML table with a top row
+		listing the fields in the table.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">searchfields</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current searchfields value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for searchfields.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">show</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		Show the display object.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This is the main method of the display class.  It
+		  looks for a variable called <code class="varname">mode</code>
+		  to be passed in through a form response and uses
+		  that mode to execute the appropriate function.  If
+		  mode is not given, the <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>
+		  function is called.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function should be called for every page.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">showform</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display the form of the object.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method displays the form for this display
+		  object.  It is used in the <span style="font-family:monospace"><span class="command"><strong>Add</strong></span></span>
+		  and <span style="font-family:monospace"><span class="command"><strong>Edit</strong></span></span> methods but can be
+		  called separately if needed.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden if the default look of
+		  a form needs to be changed.  By default, the form
+		  displayed is simply the fields in a table, in order.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">showrow</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display a single row of a resulting list or search.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method is used to display a single row while
+		  displaying the result of a list or search.
+		  <em class="replaceable"><code>arrayName</code></em>
+		  is a fetched array of the record.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overriden if the default look of
+		  a row needs to be changed.  By default, each row is
+		  output as a table row with each field as a table
+		  data cell.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">showview</span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display the view of the object.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method displays the view for this display
+		  object.  It is used in the
+		  <span style="font-family:monospace"><span class="command"><strong>Details</strong></span></span> methods but can be
+		  called separately if needed.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This method can be overridden if the default look of
+		  a view needs to be changed.  By default, the view
+		  displayed is simply the fields in a table, in order.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">store</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Store the specified
+		  <em class="replaceable"><code>arrayName</code></em>
+		  in the database.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The default of this method is to call the DIO
+		  object's store command.  This method can be
+		  overridden.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">text</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current text value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for text.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">title</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current title value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for title.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">type</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current type value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for type.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>objectName</code></em></span>   <span style="font-family:monospace; font-weight: bold;">value</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Return the current value value.  If
+		  <em class="replaceable"><code>value</code></em> is
+		  specified, it sets a new value for value.
+		</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3106"></a><h3>DIO Display Functions</h3><p style="width:90%">
+	    These functions are called from the
+	    <span style="font-family:monospace"><span class="command"><strong>show</strong></span></span> method when a form response
+	    variable called <code class="varname">mode</code> is set.  If no
+	    mode has been set, the default mode is
+	    <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>.  The show method will handle
+	    the necessary switching of functions.  The show method
+	    also handles checking to make sure the function given is a
+	    true function.  If not, an error message is displayed.
+	    New functions can be added as methods or by use of the
+	    <span style="font-family:monospace"><span class="command"><strong>function</strong></span></span> command, and any of the
+	    default functions can be overridden with new methods to
+	    create an entirely new class.  These are the default
+	    functions provided.
+	  </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Add</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Show a form that allows the user to add a new entry
+		  to the database.  This function calls
+		  <span style="font-family:monospace"><span class="command"><strong>showform</strong></span></span> to display the form
+		  for adding the entry.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Cancel</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The <span style="font-family:monospace"><span class="command"><strong>Cancel</strong></span></span> function does nothing
+		  but redirect back to the <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>
+		  function.  This is handy for forms which have a
+		  cancel button to point to.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Delete</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  If <code class="varname">confirmdelete</code> is true (the
+		  default), the <span style="font-family:monospace"><span class="command"><strong>Delete</strong></span></span> function
+		  will ask the user if they're sure they want to
+		  delete the record from the database.  If
+		  <code class="varname">confirmdelete</code> is false, or if the
+		  user confirms they wish to delete, this function
+		  calls the <span style="font-family:monospace"><span class="command"><strong>DoDelete</strong></span></span> function to do
+		  the actual deletion of a record.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Details</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Display the view of a single record from the database.  This function calls
+		  the <span style="font-family:monospace"><span class="command"><strong>showview</strong></span></span> method to display a single record from the database.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>DoDelete</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function actually deletes a record from the
+		  database.  Once it has deleted the record, it
+		  redirects the user back to the
+		  <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span> function.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Edit</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  Show a form that allows the user to edit an existing
+		  entry to the database.  This function calls
+		  <span style="font-family:monospace"><span class="command"><strong>showform</strong></span></span> to display the form for
+		  editing the entry and fills in the fields with the
+		  values retrieved from the database.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>List</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function lists the entires contents of the
+		  database.  Each record is output in a row using the
+		  <span style="font-family:monospace"><span class="command"><strong>showrow</strong></span></span> method.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function is the main function of the display
+		  object.  If there is no mode, or once most commands
+		  complete, the user will be redirected to this
+		  function.  The default <span style="font-family:monospace"><span class="command"><strong>Main</strong></span></span>
+		  function displays a list of functions the user can
+		  execute, a list of searchfields the user can search
+		  on, and a query field.  This query field is used by
+		  all of the other functions to determine what the
+		  user is trying to find.
+		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		  In the case of a <span style="font-family:monospace"><span class="command"><strong>search</strong></span></span>, query
+		  specifies what string the user is looking for in the
+		  specified search field.  In the case of
+		  <span style="font-family:monospace"><span class="command"><strong>delete</strong></span></span>,
+		  <span style="font-family:monospace"><span class="command"><strong>details</strong></span></span> or
+		  <span style="font-family:monospace"><span class="command"><strong>edit</strong></span></span>, the query specifies the
+		  database key to access.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Save</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function saves any data passed to using the
+		  <span style="font-family:monospace"><span class="command"><strong>store</strong></span></span> method.  This is primarily
+		  used by the <span style="font-family:monospace"><span class="command"><strong>add</strong></span></span> and
+		  <span style="font-family:monospace"><span class="command"><strong>edit</strong></span></span> commands to store the
+		  results of the form the user has filled out.
+		</div></div></dd><dt><span class="term"><span style="font-family:monospace"><span class="command"><strong>Search</strong></span></span></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  This function searches the database for any row
+		  whose <code class="varname">searchBy</code> field matches
+		  <code class="varname">query</code>. Once any number of records
+		  are found, <span style="font-family:monospace"><span class="command"><strong>Search</strong></span></span> displays the
+		  results in rows.
+		</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3187"></a><h3>DIO Display Fields</h3><p style="width:90%">
+	    Display fields are created with the
+	    <span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> command of the DIODisplay object.
+	    Each field is created as a new DIODisplayField object or
+	    as a subclass of DIODisplayField.  The standard form
+	    fields use the standard field class, while specialized
+	    field types use a class with different options but still
+	    supports all of the same commands and values a generic
+	    field does.
+	  </p><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace"><em class="replaceable"><code>displayObject</code></em></span>   <span style="font-family:monospace; font-weight: bold;">field</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldname</code></em></span>  (<span style="font-family:mono [...]
+	    These are the standard options supported by field types:
+	  </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-formargs</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arguments</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  When a field is created, any argument which is not a
+		  standard option is assumed to be an argument passed
+		  to the form object when the field is shown in a
+		  form.  These arguments are all appended to the
+		  <code class="varname">formargs</code> variable.  You can use
+		  this option to override or add options after the
+		  initial creation of an object
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-readonly</span>  (<span style="font-family:monospace; font-weight: bold;">1</span> | <span style="font-family:monospace; font-weight: bold;">0</span>)</div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  If <code class="varname">readonly</code> is set to true, the
+		  field will not display a form entry when displaying
+		  in a form.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-text</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>text</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The text displayed next to the form or view field.
+		  By default, DIODisplay tries to figure out a pretty
+		  way to display the field name.  This text will
+		  override that default and display whatever is
+		  specified.
+		</div></div></dd><dt><span class="term">
+		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-type</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>fieldType</code></em></span> </div></div>
+	      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		  The type of field this is.  This type is used when
+		  creating the field in the form object.
+		  <em class="replaceable"><code>fieldType</code></em>
+		  can be any of the accepted form field types.  See
+		  [FIXME - LINK DIO Field Types] for a list of types
+		  available.
+		</div></div></dd></dl></div><p style="width:90%">
+	    All other arguments, unless specified in an individual
+	    field type, are passed directly to the form object when
+	    the field is created.  So, you can pass
+	    -size or -maxsize to
+	    specify the length and maximum length of the field entry.
+	    Or, if type were textarea, you could define
+	    -rows and -cols to
+	    specify its row and column count.
+	  </p></div><div class="refsect2"><a name="idm3245"></a><h3>DIO Display Field Types</h3><p style="width:90%">
+	    The following is a list of recognized field types by
+	    DIODisplay.  Some are standard HTML form fields, and
+	    others are DIODisplay fields which execute special actions
+	    and functions.
+	  </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="diodisplay.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="diodisplay.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="session_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="le [...]
diff --git a/rivet/manual3.1/directives.html b/rivet/manual3.1/directives.html
new file mode 100644
index 0000000..6b4c07c
--- /dev/null
+++ b/rivet/manual3.1/directives.html
@@ -0,0 +1,271 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.1 Configuration</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="cmake.html" title="Building Rivet 3.1 with CMake"><link rel="next" href="processing.html" title="Apache Ri [...]
+	      Rivet directives are used within the Apache httpd server
+	      configuration to set up the environment where Rivet script
+	      will be run.
+		</p><p style="width:90%">
+			Rivet has 3 general <span class="quote">“<span class="quote">scope</span>”</span> directives
+
+			</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">RivetDirConf: for configuration directives meant to
+				apply to a directory tree</li><li class="listitem">RivetUserConf: for directives specific to
+				a user private space</li><li class="listitem">RivetServerConf: for any directive meant to apply
+				globally (either to the whole Rivet installation or a	single 
+				<a class="ulink" href="https://httpd.apache.org/docs/2.4/vhosts" target="_top">virtual host</a>)
+				</li></ul></div><p style="width:90%">
+	      
+			These directives are applied so that RivetDirConf will
+	      override RivetUserConf, which in turn overrides any 
+	      RivetServerConf directives. Not every configuration directory
+	      is meaningful to a scope directive, as shown in the table below. The scope
+	      of application of a configuration line is matched also with the context where
+	      it appears. Virtual hosts definitions are contexts where rivet configuration
+	      lines can appear in many adding further customization to a given virtual
+	      host server.
+	   </p><p style="width:90%">
+			Example of configuration of a web server having independent 
+			interpreters for each virtual host, a larger default cache and a specific
+			script to be executed before any templates/scripts located in /var/www/myrivetapp
+		</p><pre class="programlisting">&lt;IfModule rivet_module&gt;
+    AddType application/x-httpd-rivet .rvt
+    AddType application/x-rivet-tcl   .tcl
+
+    RivetServerConf CacheSize              100
+    RivetServerConf SeparateVirtualInterps On
+&lt;/IfModule&gt;
+
+&lt;Directory /var/www/myrivetapp&gt;
+    RivetDirConf BeforeScript "source /var/www/myrivetapp/before_script.tcl"
+&lt;/Directory&gt;</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm212"></a>Configuration Directives</h3></div></div></div><div class="table"><table align="center" title="Configuration Directives application scopes" class="directives"><thead><td>Configuration Directives</td><td>DirConf</td><td>UserConf</td><td>ServerConf</td><td>Virtual Host</td><td>Notes</td></thead><tbody><tr><td>AbortScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td> [...]
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AbortScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						If an AbortScript is defined control is passed to it as
+						soon as the command <a class="xref" href="abort_page.html" title="abort_page">abort_page</a> is called.
+						AbortScript
+						is the right place where specific actions can be taken
+						to catch resources left dangling by the sudden interruption.				
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AfterScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be called after each parsed .rvt template or .tcl script
+					  is executed
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this option overrides any AfterScript
+					  definitions at the global level.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AfterEveryScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						AfterEveryScript is a script that is to
+						be run anyway before requests processing ends. This script
+						is therefore run both when the content generation script
+						completes successfully and when its execution is interrupted
+						by <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>. The code in this script
+						can understand whether it's running after the page was
+						interrupted by calling <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>	
+						with the argument  ?<span style="font-family:monospace; font-weight: bold;">-aborting</span>?. The command
+						will return 1 if an abort_page call took place 
+						earlier in the request processing.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">BeforeScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be evaluated before each server parsed
+					  (.rvt) page.  This can be used to create a standard
+					  header, for instance.  It could also be used to load
+					  code that you need for every page, if you don't want
+					  to put it in a GlobalInitScript
+					  ChildInitScript when you are first
+					  developing a web site.
+					  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+					    This code is evaluated at the global level, not
+					    inside the request namespace where pages are
+					    evaluated.
+					  </td></tr></table></div>
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this option takes precedence over
+					  the global setting.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">CacheSize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>size</code></em></span>?</div></div>
+   			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						  Sets the size of the internal page cache, where
+						  <em class="replaceable"><code>size</code></em> is
+						  the number of byte-compiled pages to be cached for
+						  future use.  Default is
+						  <span style="font-family:monospace"><span class="command"><strong>MaxRequestsPerChild</strong></span></span> / 5, or 50,
+						  if <span style="font-family:monospace"><span class="command"><strong>MaxRequestsPerChild</strong></span></span> is 0.
+						</div><div style="margin-bottom:1.5ex ; padding .5ex">
+						  This option is completely global, even when using
+						  separate per-virtual host interpreters.
+						</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ChildExitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be evaluated when each Apache child
+					  process exits. This is the logical place to clean
+					  up resources created in ChildInitScript, 
+					  if necessary.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this script is run in addition to
+					  any global childexitscript.
+	              
+	              When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterp</strong></span></span>
+	              any <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> placed within a 
+	              &lt;VirtualHost ...&gt;....&lt;/VirtualHost&gt;
+	              will be that Virtual Host specific exit handler
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ChildInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  Script to be evaluated when each Apache child
+					  process is initialized. This is the recommended
+					  place to load modules, create global variables, open
+					  connections to other facilities (such as databases)
+					  and so on.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this script is run in addition to
+					  any global childinitscript. 
+	                  When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterp</strong></span></span>
+	                  any <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> placed within a 
+	                  &lt;VirtualHost ...&gt;....&lt;/VirtualHost&gt;
+	                  will be that Virtual Host specific ininitalization
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ErrorScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  When Rivet encounters an error in a script, it
+					  constructs an HTML page with some information about
+					  the error, and the script that was being
+					  evaluated. If an ErrorScript is
+					  specified, it is possible to create custom error
+					  pages.  This may be useful if you want to make sure
+					  that users never view your source code.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this option takes precedence over
+					  the global setting.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ExportRivetNS</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+			  	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Rivet commands are created within the ::rivet namespace. Setting
+						this option you tell mod_rivet to place the whole command set on
+						the export list of namespace, enabling your scripts to import
+						them in a different namespace.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">This option is, by nature, only available at the global level</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">HonorHeaderOnlyRequests</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  If a HEAD requests is issued by the client Rivet detects
+					  this case and sends back to the client a standard header 
+					  response. If the real header has to be examined (e.g. 
+					  for debugging) you can turn this options on. 
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">This option is, by nature, only available at the global level</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ImportRivetNS</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+			  	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Rivet commands are created within the ::rivet namespace. Setting
+						this option you tell mod_rivet to place the whole command set on
+						the export list of namespace (implicitly forcing also ExportRivetNS)
+						and then importing the commands on the namespace export list into the 
+						global namespace
+					</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+						This option is provided only for compatibility with existing code that assumes
+						mod_rivet commands to reside in the global namespace. It's utterly discouraged to
+						use it and it could be removed in future versions of Rivet
+						This option is, by nature, only available at the global level
+					</td></tr></table></div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">MpmBridge</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>string</code></em></span>?</div></div>
+	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						This global only option tells mod_rivet which MPM bridge has
+						to be loaded. The string argument is interpreted
+						first as a name of an MPM bridge and it's interpolated in the
+						string
+						<pre class="programlisting">bridge = apr_pstrcat(pool,RIVET_DIR,"/mpm/rivet_",rsc-&gt;mpm_bridge,"_mpm.so",NULL);</pre>
+						Where RIVET_DIR is the location of the rivet libraries whose definition
+						is controlled by the configuration argument <span style="color: red">&lt;term&gt;--with-rivet-target-dir=DIR&lt;/term&gt;</span>.
+						For example 
+						<pre class="programlisting">RivetServerConf MpmBridge lazy</pre> will cause the
+						rivet_lazy_mpm.so library module to be loaded. If such library does not exists
+						mod_rivet tries to check if such definition is the fully qualified path to 
+						such MPM bridge. If this fails the module causes the web server to stop with an error.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">RequestHandler</span>  ?<span style="font-family:monospace; font-weight: bold;">request_handler_filename</span>?</div></div>
+				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Filename of the request handler script. Overrides the default request handler. Can
+						be virtual host specific
+					</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+						Note that changing this scripts requires the programmer to understand mod_rivet
+						request processing model. See the <a class="link" href="processing.html" title="Apache Rivet HTTP Request Processing">request processing</a>
+						manual page 
+					</td></tr></table></div></div></dd><dt><span class="term">
+			     <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">SeparateChannels</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+			  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+	      			Internally mod_rivet creates a new Tcl channel (Rivet channel) which is configured
+	      			as <span style="font-family:monospace"><span class="command"><strong>stdout</strong></span></span> and registered to each existing interpreter.
+	      			There is no need of multiple channels in a single thread as each thread can 
+	      			serve only one request at a time. But if you are deploying mod_rivet in a
+	      			complex environment running unrelated applications developed by 
+	      			different teams, it could be the case to have <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
+	      			set. If you want to enhance the environment separation you may also
+	      			set <span style="font-family:monospace"><span class="command"><strong>SeparateChannels</strong></span></span> to force mod_rivet to create
+	      			a channel per each Tcl interpreter thus enabling single application
+	      			code to change the Rivet channel parameters without affecting other
+	      			applications (even though changing the Tcl channel parameters is a rare 
+	      			necessity). Setting this options increases the system overheads as each
+	      			Rivet channel needs to allocate its own control structures and internal
+	      			buffers.
+	      		</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+	      			This option is implemented in order to have fine-grained control over mod_rivet. In
+	      			nearly all practical cases you won't need to change Rivet Channel (stdout) settings
+	      			for different applications by calling <span style="font-family:monospace"><span class="command"><strong>fconfigure stdout ....</strong></span></span>. 
+	      			This option is, by nature, only available at the global level and has effect only if 
+	   		      also <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is set
+	   		   </td></tr></table></div></div></dd><dt><span class="term">
+		     		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">SeparateVirtualInterps</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+		  		</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+	      		  If on, Rivet will create a separate Tcl interpreter
+	      		  for each Apache virtual host.  This is useful in an
+	      		  ISP type situation where it is desirable to separate
+	      		  clients into separate interpreters, so that they
+	      		  don't accidentally interfere with one another.
+	      		</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+	   		      This option is, by nature, only available at the
+	   		      global level. By enabling <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
+	   		      you must rely only on <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> to
+	   		      initialize the interpreters. Don't expect the 
+	   		      initialization done in <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> and 
+	   		      <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> to be handed down to the
+	   		      slave interpreters that are private to each configured 
+	   		      virtual host.
+	   		   </td></tr></table></div></div></dd><dt><span class="term">
+   				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ServerInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
+   			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				    	The directive <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> plays a special
+				    	role since the script runs within the master interpreter,
+				    	an interpreter created when the Apache web server is setting up
+				    	for answering requests and before worker processes/threads are
+				    	started. During this stage Apache is still running as a 
+				    	single process, so this is the right place for doing 
+				    	initialization of systems such as any IPC systems.
+   				</div><div style="margin-bottom:1.5ex ; padding .5ex">
+		   			On systems with the capability of forking child processes
+		   			the Apache web server can run the prefork MPM. By default 
+		   			rivet selects the prefork brigde which makes mod_rivet work
+		   			the way mod_rivet 2.x work.
+		   			In a web server with this set up child processes inherit a copy of the 
+		   			address space from the parent processes and therefore
+		   			Tcl interpreters too are replicated into the child address space. 
+		   			If SeparateVirtualInteprs is Off child processes run with a
+		   			copy of the Tcl master interpreter and ServerInitScipt
+		   			thus provides a way to initialize only once  
+		   			any subsequent Tcl interpreters created by fork calls as each
+		   			of them are clones of the master interpreter.
+		   		</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadDirectory</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>directory</code></em></span>?</div></div>
+		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Directory to place uploaded files.</div><div style="margin-bottom:1.5ex ; padding .5ex">
+			  			In virtual hosts, this option takes precedence over
+			  			the global setting.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadFilesToVar</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
+	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					  This option controls whether it is possible to
+					  upload files to a Tcl variable.  If you have a size
+					  limit, and don't have to deal with large files, this
+					  might be more convenient than sending the data to a
+					  file on disk.
+					</div></div></dd><dt><span class="term">
+					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadMaxSize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>size</code></em></span>?</div></div>
+				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Maximum size for uploaded files.</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					  In virtual hosts, this option takes precedence over
+					  the global setting.
+					</div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cmake.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="processing.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Building Rivet 3.1 with CMake </td><td width="20%" [...]
diff --git a/rivet/manual3.1/encode.html b/rivet/manual3.1/encode.html
new file mode 100644
index 0000000..b095f7a
--- /dev/null
+++ b/rivet/manual3.1/encode.html
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>encode</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="entities.html" title="RivetEntities"><link rel="prev" href="entities.html" title="RivetEntities"><link rel="next" href="decode.html" title="decode"></head><body bgcolor="white" text="black"  [...]
+                encode a string replacing every occurrence of characters for 
+                which an SGML entity exists
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::encode</span>   <span style="font-family:monospace; font-weight: bold;">string</span>  ?<span style="font-family:monospace; font-weight: bold;">-encoding <em class="replaceable"><code>&lt;encoding&gt;</code></em>< [...]
+                <span style="font-family:monospace"><span class="command"><strong>::rivet::encode</strong></span></span> returns a copy of the input string
+                after replacing every occurence of characters for which an SGML entity 
+                exists.  By default the command assumes the string is encoded in UTF-8,
+                other encodings are supported by passing the 
+                <span style="font-family:monospace"><span class="command"><strong>-encoding &lt;encoding&gt;</strong></span></span> argument. The list of
+                available encodings is returned by command
+            </p><pre class="programlisting">encoding names</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="entities.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="entities.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="decode.html"><img src="images/next.png" alt="Next"></a>< [...]
diff --git a/rivet/manual3.1/entities.html b/rivet/manual3.1/entities.html
new file mode 100644
index 0000000..211eaf0
--- /dev/null
+++ b/rivet/manual3.1/entities.html
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>RivetEntities</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="html_calendar.html" title="HtmlCalendar"><link rel="next" href="encode.html" title="encode"></head><body bgcolor="white" te [...]
+				The <span style="font-family:monospace"><span class="command"><strong>RivetEntities</strong></span></span> package was kindly provided by Harald Oehlmann and 
+				is largely taken from a simple yet clever encoder/decoder of HTML entities
+ 				starting from a utf-8 character string. The original code writted by Andy Goth is 
+				at http://wiki.tcl.tk/26403. Package entities extends the functionality in the 
+				original code combining it with Tcl's 'encoding' command to encode/decode from 
+				any supported encoding
+        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="html_calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="encode.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">HtmlCalendar </td><td width="20%" align="center"><a accesskey="h" h [...]
diff --git a/rivet/manual3.1/env.html b/rivet/manual3.1/env.html
new file mode 100644
index 0000000..b6919f1
--- /dev/null
+++ b/rivet/manual3.1/env.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>env</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="debug.html" title="debug"><link rel="next" href="escape_sgml_chars.html" title="escape_sgml_chars"></head><body bg [...]
+		    Loads a single "environmental variable" into a Tcl variable.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::env</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varName</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1066"></a><h2>Description</h2><p style="width:90%">
+		    If it is only necessary to load one environmental variable,
+		    this command may be used to avoid the overhead of loading
+		    and storing the entire array.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="escape_sgml_chars.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign=" [...]
diff --git a/rivet/manual3.1/escape_sgml_chars.html b/rivet/manual3.1/escape_sgml_chars.html
new file mode 100644
index 0000000..66ea503
--- /dev/null
+++ b/rivet/manual3.1/escape_sgml_chars.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>escape_sgml_chars</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="env.html" title="env"><link rel="next" href="escape_shell_command.html" title="escape_shell_command" [...]
+		    Scans through each character in the specified string looking
+		    for any special (with respect to SGML, and hence HTML) characters
+		    from the specified string, and returns the result.  
+		    For example, the right angle bracket is escaped to the corrected
+            ampersand gt symbol.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="env.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="escape_shell_command.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign= [...]
diff --git a/rivet/manual3.1/escape_shell_command.html b/rivet/manual3.1/escape_shell_command.html
new file mode 100644
index 0000000..4a45d30
--- /dev/null
+++ b/rivet/manual3.1/escape_shell_command.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>escape_shell_command</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="escape_sgml_chars.html" title="escape_sgml_chars"><link rel="next" href="escape_string.html" titl [...]
+		    Scans through each character in the specified string looking
+		    for any shell metacharacters, such as asterisk, less than and
+		    greater than, parens, square brackets, curly brackets, angle 
+		    brackets, dollar signs, backslashes, semicolons, ampersands,
+		    vertical bars, etc.	
+		</p><p style="width:90%">
+		    For each metacharacter found, it is quoted in the result by
+		    prepending it with a backslash, returning the result.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="escape_sgml_chars.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="escape_string.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left"  [...]
diff --git a/rivet/manual3.1/escape_string.html b/rivet/manual3.1/escape_string.html
new file mode 100644
index 0000000..ca91d50
--- /dev/null
+++ b/rivet/manual3.1/escape_string.html
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>escape_string</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="escape_shell_command.html" title="escape_shell_command"><link rel="next" href="exit.html" title="exit">< [...]
+		    Scans through each character in the specified string looking
+		    for special characters, escaping them as needed, mapping
+		    special characters to a quoted hexadecimal equivalent,
+		    returning the result.
+		</p><p style="width:90%">
+		    This is useful for quoting strings that are going to be
+		    part of a URL.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="escape_shell_command.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="exit.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign [...]
diff --git a/rivet/manual3.1/examples.html b/rivet/manual3.1/examples.html
new file mode 100644
index 0000000..d7ed1c7
--- /dev/null
+++ b/rivet/manual3.1/examples.html
@@ -0,0 +1,497 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Examples and Usage</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="xml.html" title="xml"><link rel="next" href="tcl_packages.html" title="Rivet Tcl Packages"></head><body bgcolor="white [...]
+        Some examples of Rivet usage follow.  Some prior Tcl knowledge
+        is assumed.  If you don't know much Tcl, don't worry, it's easy,
+        and there are some good resources available on the web that will
+        get you up to speed quickly.  Go to the 
+        <a class="link" href="help.html#websites" title="Web Sites">web sites</a> section and have a look.
+    </p><div class="example"><a name="hello_world"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p style="width:90%">
+			As with any tool, it's always nice to see something work, so
+			let's create a small "Hello World" page.
+	    </p><p style="width:90%">
+			Assuming you have Apache configured correctly, create a file
+			called <code class="filename">hello.rvt</code> where Apache can find
+			it, with the following content:
+        </p><pre class="programlisting">&lt;?
+puts "Hello World"
+?&gt;
+
+</pre><p style="width:90%">
+			If you then access it with your browser, you should see a
+			blank page with the text "Hello World" (without the quotes) on it.
+            The command <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> is the good old Tcl command for
+            terminal printing, which appends to the argument string the control
+            characters needed to open a newline. When you don't have to run through
+            complex elaboration and the output can be lumped
+            in a single string (just like in the 'Hello World' example) you
+            can draw on the popular shorthand syntax for string
+            output that comes handy in many cases
+        </p><pre class="programlisting">&lt;?= "Hello World" ?&gt;
+</pre><p style="width:90%">
+            which is translated into 
+            </p><pre class="programlisting">puts -nonewline "Hello World"</pre><p style="width:90%">
+        </p></div></div><br class="example-break"><div class="example"><a name="idm1941"></a><p class="title"><b>Example 2. Generate a Colorful Table</b></p><div class="example-contents"><p style="width:90%">
+	   	In another simple example, we dynamically generate a table selecting
+	   	a different background color for each cell. The font color is determined
+	   	through a simple CSS rule embedded in a HTML &lt;style&gt; element. Create
+	   	the file color-table.tcl and put the following code in it
+	  	</p><pre class="programlisting">puts "&lt;html&gt;&lt;head&gt;"
+puts "&lt;style&gt;\n  td { font-size: 12px; text-align: center; padding-left: 3px; padding-right: 3px}"
+puts "  td.bright { color: #eee; }\n  td.dark { color: #222; }\n&lt;/style&gt;"
+puts "&lt;/head&gt;&lt;body&gt;"
+puts "&lt;table&gt;"
+
+# we create a 9x9 table selecting a different background for each cell
+
+for {set i 0} { $i &lt; 9 } {incr i} {
+    puts "&lt;tr&gt;"
+    for {set j 0} {$j &lt; 9} {incr j} {
+
+        set r [expr int(255 * ($i + $j) / 16)] 
+        set g [expr int(255 * (8 - $i + $j) / 16)]
+        set b [expr int(255 * ($i + 8 - $j) / 16)]
+
+# determining the background luminosity (YIQ space of NTSC) and choosing
+# the foreground color accordingly in order maintain maximum contrast
+
+        if { [expr ($r*0.29894)+($g*0.58704)+($b*0.11402)] &gt; 128.0} {
+            set cssclass "dark"
+        } else {
+            set cssclass "bright"
+        }
+
+        puts [format "&lt;td bgcolor=\"%02x%02x%02x\" class=\"%s\"&gt;$r $g $b&lt;/td&gt;" $r $g $b $cssclass]
+    }
+    puts "&lt;/tr&gt;"
+}
+puts "&lt;/table&gt;"
+puts "&lt;/body&gt;&lt;/html&gt;"
+</pre><p style="width:90%">
+	    	If you read the code, you can see that this is pure Tcl.  We
+	    	could take the same code, run it outside of Rivet, and it
+	    	would generate the same HTML
+	  	</p><p style="width:90%">
+	    	The result should look something like this:
+	  	</p><div><img src="images/color-table.png"></div></div></div><br class="example-break"><div class="example"><a name="variable_access"></a><p class="title"><b>Example 3. Variable Access</b></p><div class="example-contents"><p style="width:90%">
+			Here, we demonstrate how to access variables set by GET or
+			POST operations.
+      </p><p style="width:90%">
+			Given an HTML form like the following:
+      </p><pre class="programlisting">&lt;form action="vars.rvt"&gt;
+  &lt;table&gt;
+    &lt;tbody&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Title:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;&lt;input name="title" /&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Salary:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;&lt;input name="salary" /&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Boss:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;&lt;input name="boss" /&gt;&lt;/td&gt;&lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;b&gt;Skills:&lt;/b&gt;&lt;/td&gt;
+        &lt;td&gt;
+          &lt;select name="skills" multiple="multiple"&gt;
+            &lt;option&gt;C&lt;/option&gt;
+            &lt;option&gt;Java&lt;/option&gt;
+            &lt;option&gt;Tcl&lt;/option&gt;
+            &lt;option&gt;Perl&lt;/option&gt;
+          &lt;/select&gt;
+        &lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;input type="submit" /&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+    &lt;/tbody&gt;
+  &lt;/table&gt;
+&lt;/form&gt;
+
+</pre><p style="width:90%">
+			We can use this Rivet script to get the variable values:
+      </p><pre class="programlisting">&lt;?
+set errlist {}
+if { [::rivet::var exists title] } {
+    set title [::rivet::var get title]
+} else {
+    set errlist "You need to enter a title"
+}
+
+if { [::rivet::var exists salary] } {
+    set salary [::rivet::var get salary]
+    if { ! [string is digit $salary] } {
+        lappend errlist "Salary must be a number"
+    }
+} else {
+    lappend errlist "You need to enter a salary"
+}
+
+if { [::rivet::var exists boss] } {
+    set boss [::rivet::var get boss]
+} else {
+    set boss "Mr. Burns"
+}
+
+if { [::rivet::var exists skills] } {
+    set skills [::rivet::var list skills]
+} else {
+    lappend errlist "You need to enter some skills"
+}
+
+if { [llength $errlist] != 0 } {
+    foreach err $errlist {
+        puts "&lt;b&gt; $err &lt;/b&gt;"
+    }
+} else {
+    puts "Thanks for the information!"
+    ?&gt;
+    &lt;table&gt;
+      &lt;tbody&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Title:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $title ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Boss:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $boss ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Salary:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $salary ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+          &lt;td&gt;&lt;b&gt;Skills:&lt;/b&gt;&lt;/td&gt;
+          &lt;td&gt;&lt;?= $skills ?&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+      &lt;/tbody&gt;
+    &lt;/table&gt;
+    &lt;?
+}
+?&gt;
+
+</pre><p style="width:90%">
+			The first statement checks to make sure that the
+			<code class="varname">boss</code> variable has been passed to the
+			script, and then does something with that information.  If
+			it's not present, an error is added to the list of errors.
+      </p><p style="width:90%">
+	In the second block of code, the variable
+	<code class="varname">salary</code> is fetched, with one more error
+	check - because it's a number, it needs to be composed of
+	digits.
+      </p><p style="width:90%">
+	The <code class="varname">boss</code> variable isn't required to have
+	been sent - we set it to "Mr. Burns" if it isn't among the
+	information we received.
+      </p><p style="width:90%">
+	The last bit of variable handing code is a bit trickier.
+	Because <code class="varname">skills</code> is a listbox, and can
+	potentially have multiple values, we opt to receive them as a
+	list, so that at some point, we could iterate over them.
+      </p><p style="width:90%">
+	The script then checks to make sure that
+	<code class="varname">errlist</code> is empty and outputting a thankyou
+	message.  If <code class="varname">errlist</code> is not empty, the list
+	of errors it contains is printed.
+      </p></div></div><br class="example-break"><div class="example"><a name="file_upload"></a><p class="title"><b>Example 4. File Upload</b></p><div class="example-contents"><p style="width:90%">
+			The <span style="font-family:monospace"><span class="command"><strong>::rivet::upload</strong></span></span> command endows Rivet with an
+			interface to access files transferred over http as parts of a
+			multipart form.  The following HTML in one file, say,
+			<code class="filename">upload.html</code> creates a form with a text
+			input entry. By clicking the file chooser button the file
+			browser shows up and the user selects the file to be uploaded
+			(the file path will appear in the text input).  In order to make
+			sure you're uploading the whole file you must combine the
+			action of the enctype and method attributes of the
+			&lt;form...&gt; tag in the way shown in the example.  Failure
+			to do so would result in the client sending only the file's
+			path, rather than the actual contents.
+      </p><pre class="programlisting">&lt;form action="foo.rvt" enctype="multipart/form-data" method="post"&gt;
+&lt;input type="file" name="MyUpload"&gt;&lt;/input&gt;
+&lt;input type="submit" value="Send File"&gt;&lt;/input&gt;
+&lt;/form&gt;
+
+</pre><p style="width:90%">
+			In the script invoked by the form
+			(<code class="filename">upload.rvt</code>) <span style="font-family:monospace"><span class="command"><strong>upload</strong></span></span>
+			 ?<span style="font-family:monospace; font-weight: bold;">argument ...</span>? commands can be used to manipulate the
+			various files uploaded.
+      </p><pre class="programlisting">&lt;?
+::rivet::upload save MyUpload /tmp/uploadfiles/file1
+puts "Saved file [::rivet::upload filename MyUpload] \
+	([::rivet::upload size MyUpload] bytes) to server"
+?&gt;
+
+</pre><p style="width:90%">
+			Don't forget that the apache server must have write access to
+			the directory where files are being created.  The Rivet Apache
+			directives have a substantial impact on the upload process,
+			you have to carefully read the docs in order to set the
+			appropriate directives values that would match your
+			requirements.
+      </p><p style="width:90%">
+			It is also important to understand that some 
+			<span style="font-family:monospace"><span class="command"><strong>upload</strong></span></span> commands are effective only when
+			used in a mutually exclusive way.  Apache stores the data in
+			temporary files which are read by the <span style="font-family:monospace"><span class="command"><strong>upload save
+			 ?<span style="font-family:monospace; font-weight: bold;">upload name</span>? ?<span style="font-family:monospace; font-weight: bold;">filename</span>?</strong></span></span> or by the
+			<span style="font-family:monospace"><span class="command"><strong>upload data  ?<span style="font-family:monospace; font-weight: bold;">upload name</span>?</strong></span></span>
+			command. Subsequent calls to these 2 commands using the same
+			 ?<span style="font-family:monospace; font-weight: bold;">upload name</span>? argument will return no data on the
+			second call.  Likewise <span style="font-family:monospace"><span class="command"><strong>upload channel  ?<span style="font-family:monospace; font-weight: bold;">upload
+			name</span>?</strong></span></span> will return a Tcl file channel that you
+			can use in regular Tcl scripts only if you haven't already
+			read the data, for example with a call to the <span style="font-family:monospace"><span class="command"><strong>upload
+			data  ?<span style="font-family:monospace; font-weight: bold;">upload name</span>?</strong></span></span> command.
+      </p></div></div><br class="example-break"><div class="example"><a name="file_download"></a><p class="title"><b>Example 5. File Download</b></p><div class="example-contents"><p style="width:90%">
+			In general setting up a data file for being sent over http is 
+			as easy as determining the file's URI and letting Apache's
+			do all that is needed. If this approach fits your design all 
+			you have to do is to keep the downloadable files somewhere 
+			within Apache's DocumentRoot (or in any of the directories 
+			Apache has right to access).
+      </p><p style="width:90%">
+			When a client sends a request for a file, Apache takes
+			care of determining the filetype, sends appropriate headers to
+			the client and then the file content. The client is responsible
+			for deciding how to handle the data accordingly to the 
+			"content-type" headers and its internal design. For example
+			when browsers give up trying to display a certain "content-type"
+			they display a download dialog box asking for directions from
+			the user. 
+      </p><p style="width:90%">
+            Rivet can help if you have more sofisticated needs.  For
+            instance you may be developing an application that uses
+            webpages to collect input data. This information might be
+            passed on to scripts or programs for processing. 
+            In this case a real file representing the
+            data doesn't exist and the content is generated on demand 
+            by the server. 
+            In other circumstances you may need to dynamically inhibit 
+            the download of specific files and hide them away, 
+            Your scripts may expunge from the pages
+            every link to these files (your pages are dynamic, aren't
+            they?) and move them out of way, but it looks like a
+            cumbersome solution.
+      </p><p style="width:90%">
+            Putting Tcl and Rivet in charge of the whole download
+            mechanism helps in building cleaner and safer approaches to
+            the download problem.
+      </p><p style="width:90%">
+            In this example a procedure checks for the existence of a
+            parameter passed in by the browser. The parameter is the name
+            (without extension) of a pdf file.  
+            Pdf files are stored in a directory whose path is
+            in the <span style="font-family:monospace"><span class="command"><strong>pdf_repository</strong></span></span> variable.
+      </p><p style="width:90%">
+            This code is reported as an example of how to control 
+            the protocol using the <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command.
+      </p><pre class="programlisting"># Code example for the transmission of a pdf file. 
+
+if {[::rivet::var exists pdfname]} {
+    set pdfname [::rivet::var get pdfname]
+
+# let's build the full path to the pdf file. The 'pdf_repository'
+# directory must be readable by the apache children
+
+    set pdf_full_path [file join $pdf_repository ${pdfname}.pdf]
+    if {[file exists $pdf_full_path]} {
+
+# Before the file is sent we inform the client about the file type and
+# file name. The client can be proposed a filename different from the
+# original one. In this case, this is the point where a new file name
+# must be generated.
+
+        ::rivet::headers type                       "application/pdf"
+        ::rivet::headers add Content-Disposition    "attachment; filename=${pdfname}.pdf"
+        ::rivet::headers add Content-Description    "PDF Document"
+
+# The pdf is read and stored in a Tcl variable. The file handle is
+# configured for a binary read: we are just shipping raw data to a
+# client. The following 4 lines of code can be replaced by any code
+# that is able to retrieve the data to be sent from any data source
+# (e.g. database, external program, other Tcl code)
+
+        set paper       [open $pdf_full_path r]
+        fconfigure      $paper -translation binary
+        set pdf         [read $paper]
+        close $paper
+
+# Now we got the data: let's tell the client how many bytes we are
+# about to send (useful for the download progress bar of a dialog box)
+
+        ::rivet::headers add Content-Length  [string length $pdf]
+
+# Let's send the actual file content
+
+        puts $pdf
+    } else {
+        source pdf_not_found_error.rvt
+    }
+} else {
+    source parameter_not_defined_error.rvt
+}
+
+</pre><p style="width:90%">
+            Before the pdf is sent the procedure sets the
+            <code class="constant">Content-Type</code>, 
+            <code class="constant">Content-Disposition</code>,
+            <code class="constant">Content-Description</code> and
+            <code class="constant">Content-Length</code> headers to inform
+            the client about the file type, name and size. Notice that in
+            order to set the <code class="constant">Content-Type</code> header Rivet 
+            uses a specialiezed form of the <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> 
+            command. Headers must be sent before data gets sent down the 
+            output channel. Messing with this prescription causes an error 
+            to be raised (in fact the protocol itself is been violated)
+      </p><p style="width:90%">
+	More information about the meaning of the mime headers in the
+	http context can be found at 
+	<a class="ulink" href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" target="_top">http://www.w3.org/Protocols/rfc2616/rfc2616.html</a>
+      </p></div></div><br class="example-break"><div class="example"><a name="ajax_xml_messaging"></a><p class="title"><b>Example 6. XML Messages and Ajax</b></p><div class="example-contents"><p style="width:90%">
+	The <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command is crucial for generating 
+	XML messages that have to be understood by JavaScript code used 
+	in Ajax applications. 
+      </p><p style="width:90%">
+	    Ajax is a web programming technique that heavily relies on the abilty of a web browser to run in backround
+	    JavaScript functions. JavaScript functions can be run as callbacks of events generated by a user interaction 
+	    but they can also react to other I/O events, for example network events. 
+	    Modern browsers endow JavaScript with the ability to build http GET/POST requests to be sent to a remote
+	    webserver. Generally these requests refer to scripts (e.g. Tcl scripts run by Rivet) which inherit as 
+	    variables the arguments encoded in the request. 
+	    The output produced by these scripts is sent back to the browser where callbacks functions extract 
+	    information and hand it down to functions that directly manipulate a page's DOM.
+	    Therefore through Ajax becomes possible to build web applications that are more responsive and flexible: 
+	    instead of going through the cycle of request-generation-transfer-display 
+	    of a whole page, Ajax scripts request from a webserver only the essential data to be displayed.
+	    Ajax emphasizes the requirement of separation between data and user interface, saves 
+	    the server from sending over the same html code and graphics if only a fraction of a page has to be 
+	    updated, allows the programmer to design flexible solutions for complex forms and makes possible
+	    to find new innovative approaches to simple problems (e.g. Google tips that show up as you type in
+	    a query). A downside of this approach is the large number of complexities, subtleties and incompatibilities 
+	    that still exist in the way different versions of popular browsers handle the DOM elements of a page.
+      </p><p style="width:90%">
+	    JavaScript can handle the communication between client and server through an instance of a 
+	    specialized object. For quite a long time 2 approaches existed, the non-IE world (Firefox,Safari,Opera...) 
+	    used the XMLHttpRequest class to create this object, whereas IE (before IE7) used the ActiveXObject class.
+	    With the release of IE7 Microsoft introduced native support for XMLHttpRequest class objects thus enabling
+	    programmers with a unique method for the development of dynamic pages. 
+	</p><p style="width:90%">
+	    By creating an instance of this class a POST or GET request can be sent to the server and the response is 
+	    stored in a property ('returnedText') of the communication object. It's become widely customary to encode 
+	    these responses in XML messages. You can invent your own message structure (either based on XML or anything 
+	    else), but one has to be aware that if the http headers are properly set and the message returned to the 
+	    client is a well formed XML fragment, also the property XMLResponse is assigned with a reference to an object 
+	    that represents the DOM of the XML response. By means of the XML W3C DOM interface the programmer can easily
+	    manipulate the data embedded in the XML message.
+	</p><p style="width:90%">
+	    In this example a Rivet script initializes an array with the essential data regarding a few of the major 
+	    composers of the european music. This array plays the role of a database. The script sends back to the 
+	    client two types of responses: a catalog of the composers or a single record of a composer.
+	</p><pre class="programlisting">#
+# Ajax query servelet: a pseudo database is built into the dictionary 'composers' with the
+# purpose of emulating the role of a real data source. 
+# The script answers with  2 types of responses: a catalog of the record ids and a database 
+# entry matching a given rec_id. The script obviously misses the error handling and the
+# likes. Just an example to see rivet sending xml data to a browser. The full Tcl, JavaScript
+# and HTML code are available from http://people.apache.org/~mxmanghi/rivet-ajax.tar.gz
+
+# This example requires Tcl8.5 or Tcl8.4 with package 'dict' 
+# (http://pascal.scheffers.net/software/tclDict-8.5.2.tar.gz)
+# 
+
+# A pseudo database. rec_id matches a record in the db
+
+set composers [dict create  \
+                1 {first_name Claudio middle_name "" last_name Monteverdi   \
+                    lifespan 1567-1643 era Renaissance/Baroque}             \
+                2 {first_name Johann middle_name Sebastian last_name Bach   \
+                    lifespan 1685-1750 era Baroque }                        \
+                3 {first_name Ludwig middle_name "" last_name "van Beethoven" \
+                    lifespan 1770-1827 era Classical/Romantic}              \
+                4 {first_name Wolfgang middle_name Amadeus last_name Mozart \
+                    lifespan 1756-1791 era Classical }                      \
+                5 {first_name Robert middle_name "" last_name Schumann      \
+                    lifespan 1810-1856 era Romantic} ]
+
+# we use the 'load' argument in order to determine the type of query
+#
+# load=catalog:         we have to return a list of the names in the database
+# load=composer&amp;amp;res_id=&lt;id&gt;: the script is supposed to return the record
+#               having &lt;id&gt; as record id
+
+if {[::rivet::var exists load]} {
+
+# the xml declaration is common to every message (error messages included)
+
+    set xml "&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n"
+    switch [::rivet::var get load] {
+        catalog {
+            append xml "&lt;catalog&gt;\n"
+            foreach nm [dict keys $composers] {
+                set first_name  [dict get $composers $nm first_name]
+                set middle_name [dict get $composers $nm middle_name]
+                set last_name   [dict get $composers $nm last_name]
+                append xml "    &lt;composer key=\"$nm\"&gt;$first_name "
+                if {[string length [string trim $middle_name]] &gt; 0} {
+                    append xml "$middle_name "
+                }
+                append xml "$last_name&lt;/composer&gt;\n"
+            }
+            append xml "&lt;/catalog&gt;\n"
+        }
+        composer {
+            append xml "&lt;composer&gt;\n"
+            if {[::rivet::var exists rec_id]} {
+                set rec_id [::rivet::var get rec_id]
+                if {[dict exists $composers $rec_id]} {
+                    foreach {k v} [dict get $composers $rec_id] {
+                        append xml "&lt;$k&gt;$v&lt;/$k&gt;\n"
+                    }
+                }
+            }
+            append xml "&lt;/composer&gt;\n"
+        }
+    }
+
+# we have to tell the client this is an XML message. Failing to do so
+# would result in an XMLResponse property set to null
+
+    ::rivet::headers type "text/xml"
+    ::rivet::headers add Content-Length [string length $xml]
+    puts $xml
+}
+
+
+</pre><p style="width:90%">
+	    For sake of brevity the JavaScript and HTML will not listed here. They can be downloaded (along with the Tcl 
+	    script) stored in the <a class="ulink" href="http://people.apache.org/~mxmanghi/rivet-ajax.tar.gz" target="_top">rivet-ajax.tar.gz</a> archive. 
+	    By simply opening this tar archive in a directory accessible 
+	    by your apache server and pointing your browser to the rivetService.html page you should see a page with a 
+	    drop-down list. Every time a different name is picked from the list a new query is sent and logged in the 
+	    apache access.log file, even though the html is never reloaded.
+	</p></div></div><br class="example-break"><div class="example"><a name="calendar_example"></a><p class="title"><b>Example 7. A Calendar Utility</b></p><div class="example-contents"><p style="width:90%">
+	    Rivet comes with a <span class="emphasis"><em>Calendar</em></span> package that provides classes for printing 
+	    calendar tables in various forms.	
+	</p><p style="width:90%">
+		The <span class="emphasis"><em>HtmlCalendar</em></span> class prints a calendar table in a similar form the Unix 
+		program 'cal' does. Example: the following code
+		</p><pre class="programlisting">package require Calendar
+
+proc ::cal_cell_attributes { day month year weekday } {
+    if {$weekday == 3} {
+        return [list class curr_wkday]
+    }
+}
+
+set htmlc [HtmlCalendar #auto]
+set html_txt [$htmlc emit -container {table class calendar} -current_weekday 3 \
+                          -cell_function cal_cell_attributes ]
+puts $html_txt
+</pre><p style="width:90%">
+
+	    with some CSS styling would print
+	 </p><p style="width:90%">
+		</p><div><img src="images/calendar.png"></div><p style="width:90%">
+	 </p></div></div><br class="example-break"></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xml.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="tcl_packages.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">xml </td><td width="20%" align="center"><a ac [...]
diff --git a/rivet/manual3.1/exit.html b/rivet/manual3.1/exit.html
new file mode 100644
index 0000000..44746df
--- /dev/null
+++ b/rivet/manual3.1/exit.html
@@ -0,0 +1,34 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>exit</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="escape_string.html" title="escape_string"><link rel="next" href="headers.html" title="headers"></head><body bgcol [...]
+				Replaces Tcl's <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> core command. <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+				interrupts execution of the current script and passes execution to AbortScript if
+				such script is set. After AbortScript has finished and request processing completed
+				the child process is forced to exit by calling Tcl_Exit producing the same final
+				effect of the core command. During an <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> execution the
+				exit condition can be detected
+				</p><pre class="programlisting">if {[<span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page -exiting</strong></span></span>]} {
+...handle exit condition
+}</pre><p style="width:90%">
+			</p><p style="width:90%">
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> has a single optional argument  ?<span style="font-family:monospace; font-weight: bold;">code</span>?. This 
+				value must be a positive integer number to be passed to Tcl_Exit. If any other value is
+				given  ?<span style="font-family:monospace; font-weight: bold;">code</span>? is set to 0. The exit code can be obtained from the dictionary
+				returned by <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_code</strong></span></span>
+			</p><pre class="programlisting">[::rivet::abort_code]
+&lt;== return_code  ?<span style="font-family:monospace; font-weight: bold;">code</span>? error_code exit</pre><p style="width:90%">
+				We support this command in order to have a gentle way to terminate a request processing
+				before actually exit the child process and avoid an abrupt interruption of a request that
+				might leave an application in a inconsistent state. In some cases <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+				could be the only way to exit a process and force the Apache HTTP web server to start
+				a fresh one. Moreover the core <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> could be called from third parties
+				software and you may not be aware of it. We thus decided to trap this command and give it 
+				the most gentle behavior still preserving the its basic purpose.
+			</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+				Nonetheless we discourage the programmer to use such command, and suggest to focus on proper
+				application design and avoid such a drastic way to bail out. 
+				If you need to restart the child processes from time to time we recommend to check the 
+				MaxRequests parameter in the 
+				<a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork MPM documentation</a>
+				or the 
+				<a class="ulink" href="http://httpd.apache.org/docs/2.0/mod/mpm_common.html#maxrequestsperchild" target="_top">MaxRequestsPerChild</a>
+				configuration parameter
+			</td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="escape_string.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="headers.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" al [...]
diff --git a/rivet/manual3.1/fb.html b/rivet/manual3.1/fb.html
new file mode 100644
index 0000000..cf195b4
--- /dev/null
+++ b/rivet/manual3.1/fb.html
@@ -0,0 +1,259 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>FormBroker</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="formbroker.html" title="The Form Broker"><link rel="prev" href="formbroker.html" title="The Form Broker"><link rel="next" href="help.html" title="Resources - How to Get Help"></head><bod [...]
+               Form broker object creator
+            </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::FormBroker</span>   <span style="font-family:monospace; font-weight: bold;">create</span>  ?<span style="font-family:monospace; font-weight: bold;">-quoting quoting_procedure</span>? ?<span style="font-family:monospace;  [...]
+               The command returns a reference to a form broker object by creating
+               a representation of the form data using the list of variable 
+               descriptors passed to <span style="font-family:monospace"><span class="command"><strong>create</strong></span></span>. Each descriptor
+               is a list of parameter or parameter-value pairs whose order has as only requirement
+               to begin with the <span style="font-family:monospace"><span class="command"><strong>{variable_name variable_type}</strong></span></span> pair.
+               A formbroker object handles natively integer, unsigned, string, boolean and email data types.
+               The programmer can defined new data type and provide in the descriptor a
+               reference to a validating procedure for that type.
+            </p><p style="width:90%">
+               The optional  ?<span style="font-family:monospace; font-weight: bold;">-quoting quoting_procedure</span>? switch assigns a procedure to
+               be called to quote the form response values. The quoting procedure is any
+               procedure accepting a single string argument and returning its quoted value. A most
+               basic example is the FormBroker default quoting procedure
+            </p><pre class="programlisting">proc force_quote {str} {
+    return "'$str'"
+}</pre><p style="width:90%">
+               Other parameters of a descriptors are
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>type</strong></span></span>: the data type of the variable</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>bounds</strong></span></span>: limits of a variable value. The
+                  meanining of bounds depends on the variable type. For an integer is the
+                  maximum absolute value for that variable (for an unsigned the lower 
+                  limit is invariably 0), for a string is the maximum length of the string. The
+                  parameter bounds has no effect on an email data type
+               </li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>constrain</strong></span></span>: boolean value telling the variable has to be
+               forced to fulfill the constrain imposed by <span style="font-family:monospace"><span class="command"><strong>bounds</strong></span></span>. This field
+               is bidirectional in that it can be used by the validator to force the
+               variable value rewriting</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>validator</strong></span></span>: name of the specialized validator for this variable</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>default</strong></span></span>: default value of the variable if not set in a response array. 
+               When a variable is given a default value the form validation will not fail on the fact that
+               this variable may be missing from the form response array</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>quote</strong></span></span>: the variable value has to be quoted when written back in
+               the response array</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>validator</strong></span></span>: name of the validator procedure. The procedure
+                  can be any Tcl procedure accepting as argument the name of a dictionary
+                  holding the variable	internal representation. 
+               </li></ul></div><p style="width:90%">
+               An example of a form accepting four variable, one for each native type of a form broker object
+            </p><pre class="programlisting"> % set fbroker [::FormBroker create {var1 integer} {var2 unsigned} {var3 string} {var4 integer bounds {-10 100}}]
+::FormBroker::form0</pre></div><div class="refsect1"><a name="idm4248"></a><h2>Form broker object methods</h2><p style="width:90%">
+               The central method of a form broker object is <span style="font-family:monospace"><span class="command"><strong>validate</strong></span></span> 
+            </p><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">validate</span [...]
+                        The method <span style="font-family:monospace"><span class="command"><strong>validate</strong></span></span> takes as argument the name of an array of variables
+                        in the way this is produced by command <a class="xref" href="load_response.html" title="load_response">load_response</a>
+                        returning a form response. The optional argument <em class="replaceable"><code>-forcequote</code></em> causes the
+                        variable values to be rewritten and quoted. If the optional argument <em class="replaceable"><code>response copy</code></em>
+                        is present the validated response is copied in this array instead of the input   <span style="font-family:monospace; font-weight: bold;">response</span> 
+                        array.
+                     </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        If the form data have been validated the method <span style="font-family:monospace"><span class="command"><strong>validate</strong></span></span> returns <span class="emphasis"><em>true</em></span>
+                     </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        Example of form data validation (assuming ::rivet::load_response is loading the array <span class="emphasis"><em>response</em></span>
+                        with data taken from a form non displayed here)
+                     </div><pre class="programlisting">% set fbroker [::FormBroker create {var1 integer} {var2 unsigned} {var3 string} {var4 integer bounds {-10 100}}]
+::FormBroker::form0
+
+% ::rivet::load_response
+% parray response
+response(var1) = -10
+response(var2) = 20
+response(var3) = a string
+response(var4) = 50
+
+# let's keep a copy of the response
+
+% array set response_copy [array get response]
+
+# form data validation
+
+% $fbroker validate response
+true
+% $fbroker validate -forcequote response
+% parray response
+response(var1) = '-10'
+response(var2) = '20'
+response(var3) = 'a string'
+response(var4) = '50'
+
+# restore response original value
+
+% array set response [array get response_copy]
+% $fbroker validate -forcequote response response_copy
+true
+% parray response
+response(var1) = -10
+response(var2) = 20
+response(var3) = a string
+response(var4) = 50
+% parray response_copy 
+response_copy(var1) = '-10'
+response_copy(var2) = '20'
+response_copy(var3) = 'a string'
+response_copy(var4) = '50'
+
+# a form object has to be destroyed if it's not needed anymore
+
+% $fbroker destroy</pre></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">failing</span> </div></div><div style="margin- [...]
+                        In case the validation fails method <span style="font-family:monospace"><span class="command"><strong>failing</strong></span></span> returns a list
+                        of <span class="emphasis"><em>variable_name - error_condition</em></span> pairs for each 
+                        variable whose value failed to validate and was impossible to fix. This list
+                        is suitable to populate an array or used directly as a dictionary
+                     </div><pre class="programlisting">% package require formbroker
+1.0
+% set fbroker [::FormBroker create {var1 integer} \
+         {var2 unsigned} \
+         {var3 string} \
+         {var4 integer}]
+::FormBroker::form0
+% ::rivet::load_response
+
+# let's suppose we have an incomplete response
+% parray response
+response(var1) = '100'
+response(var2) = '20'
+response(var3) = 'a string'
+% $fbroker validate response
+false
+$fbroker failing
+var4 MISSING_VAR
+
+# this can be prevented by assigning a variable a default value
+
+% set fbroker [::FormBroker create {var1 integer} \
+                                   {var2 unsigned} \
+                                   {var3 string} \
+                                   {var4 integer default 0}]						
+::FormBroker::form1
+% $fbroker validate response
+true
+% parray response
+response(var1) = 100
+response(var2) = 20
+response(var3) = a string
+response(var4) = 0
+
+% set fbroker [::FormBroker create {var1 integer} \
+                                   {var2 unsigned} \
+                                   {var3 string length 10 constrain} \
+                                   {var4 integer bounds {-10 100}}]
+::FormBroker::form2
+% ::rivet::load_response
+
+# this time the response has invalid data
+
+% parray response
+response(var1) = 'aaaaa'
+response(var2) = '-20'
+response(var3) = 'a longer string that breaks the 10 chars max limit imposed'
+response(var4) = '150'
+% $fbroker validate response
+false
+% $fbroker failing
+var1 NOT_INTEGER var2 FB_OUT_OF_BOUNDS var4 FB_OUT_OF_BOUNDS</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+                        Notice that even though $response(var3) exceeds the 10 characters max length imposed to variable <span class="emphasis"><em>var3</em></span>
+                        this variable is not in the list returned by <span style="font-family:monospace"><span class="command"><strong>failing</strong></span></span> because
+                        the 'constrain' attribute forced the truncation of the string. 
+                        In fact this applies also to the integer and unsigned values 
+                     </div><pre class="programlisting">% set fbroker [::FormBroker create {var1 integer bounds 10 constrain} \
+			            {var2 unsigned constrain} \
+			            {var3 string length 10 constrain} \
+			            {var4 integer bounds {-10 100} constrain}]
+::FormBroker::form0
+% ::rivet::load_response
+% parray response
+response(var1) = abcdef
+response(var2) = -20
+response(var3) = a longer string that breaks the 10 chars max limit imposed
+response(var4) = 150
+% $fbroker validate response response_copy
+false
+% $fbroker failing
+var1 NOT_INTEGER
+% parray response_copy 
+response_copy(var2) = 0
+response_copy(var3) = a longer s
+response_copy(var4) = 100</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+                     The variable <span class="emphasis"><em>var1</em></span> could not be constrained because the input
+                     value "abcdef" is fundamentally incompatible
+                  </div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">response</span>  ?<span style="font-family:mon [...]
+                        The <span style="font-family:monospace"><span class="command"><strong>response</strong></span></span> method fills 
+                        the array whose name is passed as optional argument
+                        with the last response processing. If this argument is omitted
+                        the method creates an array named <span class="emphasis"><em>response</em></span>.
+                     </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        This method can be called also if no form response validation has taken place: it
+                        simply populates the array with the default values assigned to the form variables. As
+                        such is a way to create form default arrays to initialize forms created with
+                        the <a class="xref" href="form_package.html" title="form">form</a> package.
+                     </div><pre class="programlisting">set fbroker [::FormBroker create {var1 integer default 0} \
+            {var2 unsigned default 1} \
+            {var3 string} \
+            {var4 integer default 0}]
+% $fbroker response a
+% parray a
+a(var1) = 0
+a(var2) = 1
+a(var4) = 0</pre></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>formBroker_object</code></em></span>   <span style="font-family:monospace; font-weight: bold;">reset</span> </div></div><div style="margin-bottom:1. [...]
+                     	The method resets the object to its initial defaults
+                     </div></div></dd></dl></div></div><div class="refsect1"><a name="idm4313"></a><h2>Writing a custom variable validator</h2><p style="width:90%">
+            	The form broker is by no means restricted to work only with its native
+            	data types: you may define your own form variable types and have
+            	them validated with their own variable validator. 
+            </p><p style="width:90%">
+            	A validator is a function accepting a dictionary as single argument and
+            	must return either FB_OK, if the variable value is valid, 
+            	or any other used defined error code. The dictionary argument stores
+            	the variable descriptor used internally by the form broker. 
+				</p><p style="width:90%">
+            	Suppose you're writing a form text entry that demands as input a network 
+            	interface MAC address. 
+            	A MAC address is represented by 6 hexadecimal octets separated by 
+            	either a <span class="quote">“<span class="quote">-</span>”</span> (Windows convention) or <span class="quote">“<span class="quote">:</span>”</span> 
+            	(Unix, Mac convention). The procedure <span style="font-family:monospace"><span class="command"><strong>validate_mac</strong></span></span>
+            	checks the validity of the mac address and if validation is successful it
+            	transforms its representation into the Unix form. 
+            	By setting the key <span class="quote">“<span class="quote">constrain</span>”</span>
+            	in the dictionary <span class="emphasis"><em>mac_address_d</em></span> the procedure
+            	is telling the form broker to copy the transformed value back
+            	in the input response array
+            </p><pre class="programlisting">proc validate_mac {_mac_address_d} {
+    upvar $_mac_address_d mac_address_d
+
+    dict with mac_address_d {
+		  
+        set var [string trim $var]
+        if {[regexp {^[[:xdigit:]]{2}([:-][[:xdigit:]]{2}){5}$} $var]} {
+
+            set var [string tolower $var]
+
+            # we normalize the mac address to the Unix form.
+            # The dash '-' characters in the windows representation 
+            # are replaced by columns ':'
+
+            set var [regsub -all -- {-} $var :]
+
+            # the 'constrain' field is bidirectional:
+            # it tells the validator to curb/change the value
+            # within bonds/forms/representation. By setting it the
+            # validator tells the FormBroker to copy the value
+            # back in the response array
+
+            set constrain 1
+            return FB_OK
+
+         } else {
+
+            return FB_WRONG_MAC
+
+         }
+
+    }
+
+}
+% set fbroker [::FormBroker create {mac mac_address validator validate_mac}]
+% ::rivet::load_response r
+% parray r
+r(mac) = 00-A1-B2-C3-D4-C5
+% $fbroker validate r
+true
+% parray r
+r(mac) = 00:a1:b2:c3:d4:c5</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="formbroker.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="formbroker.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="help.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" a [...]
diff --git a/rivet/manual3.1/form.html b/rivet/manual3.1/form.html
new file mode 100644
index 0000000..d97c3f4
--- /dev/null
+++ b/rivet/manual3.1/form.html
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Form: An HTML Form Fields Generation Utility</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="session_package.html" title="Session Package"><link rel="next" href="form_package.html" titl [...]
+			The <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> package is a utility for generating html forms. A <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span>
+			object command saves the programmer from typing the cumbersome html code of input elements, 
+			working out a solution for better standardization and readability of the code. 
+			<span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> requires that only the minimum necessary to distinguish the element is
+			typed, greatly simplyfing the development of forms.
+			Options to the command are treated as a list of parameter-value pairs that become the defaults
+			for the corresponding attributes of the form.
+		</p><p style="width:90%">
+			A <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> object has specialized menthods to generate all of the standard 
+			input fields, i.e. text, password, hidden, generic button, submit or reset buttons and
+			image. <span style="font-family:monospace"><span class="command"><strong>form</strong></span></span> creates select input fields, radiobutton and checkbox
+			boolean options groups. Also new inputs introduced with HTML5 are supported: color, date, 
+			datetime, datetime-local, email, file, month, number, range, search, tel, time, url, week.
+		</p><p style="width:90%">
+			Other input elements can be generated using the general purpose 'field' method.			
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="session_package.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="form_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Session Package </td><td width="20%" align="center"><a accesskey= [...]
diff --git a/rivet/manual3.1/form_package.html b/rivet/manual3.1/form_package.html
new file mode 100644
index 0000000..e6b5008
--- /dev/null
+++ b/rivet/manual3.1/form_package.html
@@ -0,0 +1,213 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>form</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="form.html" title="Form: An HTML Form Fields Generation Utility"><link rel="prev" href="form.html" title="Form: An HTML Form Fields Generation Utility"><link rel="next" href="calendar_package.h [...]
+	                        creates and returns a new Tcl command named <em class="replaceable"><code>form_name</code></em>.
+			</p><div class="refsect2"><a name="idm3495"></a><h3>Options</h3><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-method</span>  ?<span style="font-family:monospace; font-weight: bold;">post|get</span> [...]
+			      			The http method for sending the form data back to the server.
+			      			Possible values are get or post
+			      		</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-name</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>form_name</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; pa [...]
+		      				a name for the form being created: this value becomes the value of the 
+		      				attribute 'name' in the &lt;form&gt; tag.
+		      			</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-defaults</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>default_values</code></em></span>?</div></div><div style="margin-bottom:1 [...]
+								an array of default values	to be assigned to the fields of the form. 
+								Every name in the array is matched with an input field, when
+								a given field gets added to the form it is initialized with the 
+								value of the corresponding variable in the array. 
+								This option works well in conjuction with the 
+								<span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> command of Rivet when default 
+								values come from another form.
+							</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-action</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>URL</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								The URL the data are being sent to. If no  ?<span style="font-family:monospace; font-weight: bold;">-action</span>? switch is specified
+								the data are sent to the form's URL.
+							</div></div></dd></dl></div></div></div><div class="refsect1"><a name="idm3527"></a><h2>Form Object Commands</h2><p style="width:90%">
+	Form object commands follow the usual syntax of Tcl commands with a  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>subcommand</code></em></span>? argument playing the
+	role of a switch among various functionalities of the command. Form objects also need the  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>name</code></em></span>? parameter 
+				which is to become the value of the 'name' attribute in an input field. This argument is the key that has to be 
+				used by the server-side script to retrieve the input field value. 
+			</p><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex ">
+								form_object   <span style="font-family:monospace; font-weight: bold;">subcommand</span>  ?<span style="font-family:monospace; font-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">-option1 <em class="replaceable"><code>value1</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-option2 <em class="replaceable"><code>value2</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div [...]
+				Options passed to a subcommand are copied into the tag as attribute="value" pairs. 
+				Some subcommands (e.g. form, radiobuttons and checkboxes) treat specific options in a way 
+				that fits the specific organization and function of these fields. 
+			</p><p style="width:90%">
+				Exceptions to this general syntax are the <span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> and <span style="font-family:monospace"><span class="command"><strong>end</strong></span></span> subcommands.
+				<span style="font-family:monospace"><span class="command"><strong>field</strong></span></span> is an abstract input field creation method and requires an additional
+				parameter specifiyng the type of field to create. Every concrete input field generation command
+				uses this subcommand internally to print the final html.
+			</p></div><div class="refsect1"><a name="idm3550"></a><h2>Subcommands</h2><div class="refsect2"><a name="idm3552"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">start</span>  ?<span style="font-fam [...]
+								Print the &lt;form&gt; tag with all its attributes. 
+								This command must be called as first in the form generation
+								process. The following is a sample of code creating a form named 'formname' whose data will
+								be sent via the GET method. Initial form fields values will be obtained from array 
+		<code class="varname">response</code>
+							</div><pre class="programlisting">
+form myform -defaults response -method get -name formname
+myform start
+myform text	  text_entry -size 20
+myform select option_selected -values {opt1 opt2 opt3 opt4}
+myform submit submit -value Search
+myform end</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								The code prints a form that sends a text entry content and the option value 
+								associated with a radiobutton. The URL of the server script is the same that
+								created the form. Use the  ?<span style="font-family:monospace; font-weight: bold;">-url</span>? option to specify a different url.
+							</div></div></dd></dl></div><div class="refsect3"><a name="idm3573"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-we [...]
+    				      			The method to be used to encode the form data. 
+    				      			Possible values are get or post
+    				      		</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-name</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>form_name</code></em></span>?</div></div><div style=" [...]
+    			      				a name for the form being generated: this value becomes the value of the 
+    			      				attribute 'name' in the &lt;form&gt; tag.
+    			      			</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-defaults</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>default_values</code></em></span>?</div></div><di [...]
+									an array of default values	to be assigned to the fields of the form. 
+									Every name in the array is matched with an input field, when
+									a given field gets added to the form it is initialized with the 
+									value of the corresponding variable in the array. 
+									This option works well in conjuction with the 
+									<span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> command of Rivet when default values
+									come from another form.
+								</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-action</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>URL</code></em></span>?</div></div><div style="margin-botto [...]
+									The URL the data will be sent to. If no  ?<span style="font-family:monospace; font-weight: bold;">-action</span>? switch is specified
+									the data are sent to the form's URL.
+								</div></div></dd></dl></div></div></div><div class="refsect2"><a name="idm3605"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">end</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">	
+			      			Print the &lt;/form&gt; closing tag. This command must
+								be called last in the form generation process
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3612"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">field</span>  ?<span style="font-family:monospace; font-weight: bold;">n [...]
+		Print a field of the given  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>type</code></em></span>? and  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>name</code></em></span>?,
+								including any default key-value pairs defined for this field 
+								type and optional key-value pairs included with the statement
+							</div></div></dd></dl></div><div class="refsect3"><a name="idm3626"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-we [...]
+				      			Option description
+				      		</div></div></dd></dl></div></div></div><div class="refsect2"><a name="idm3635"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">radiobuttons</span>  ?<span style="font-family:monospace; f [...]
+								the <span style="font-family:monospace"><span class="command"><strong>radiobutton</strong></span></span> creates a whole radiobutton group
+								with the values and labels specified in the argument list. 
+								If no  ?<span style="font-family:monospace; font-weight: bold;">-labels</span>? switch is
+								passed to the subcommand the values are printed as labels of 
+								the radiobutton.
+							</div><div class="refsect3"><a name="idm3650"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-values</ [...]
+												List of values associated with the radiobuttons to be displayed
+											</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-labels</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>labels_list</code></em></span>?</div></div><div style="m [...]
+												List of labels to be printed with every radiobutton. There must
+												be a label for every radiobutton
+	 										</div></div></dd></dl></div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Example:
+							</div><pre class="programlisting">
+form myform -defaults response -method get -name formname
+myform start
+myform text text_entry -size 20
+myform radiobuttons fruit -values {big medium small} \
+              -labels {Watermelon Orange Strawberry} \
+              -class myradiobclass
+myform submit submit -value Search
+myform end</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								will print the following HTML code.
+							</div><pre class="programlisting">
+&lt;input type="radio" name="fruit" class="myradiobclass" value="big" /&gt;Watermelon
+&lt;input type="radio" name="fruit" class="myradiobclass" value="medium" /&gt;Orange
+&lt;input type="radio" name="fruit" class="myradiobclass" value="small" /&gt;Strawberry
+</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+		if the <code class="varname">response</code> array has a variable for the name 'fruit' the corresponding 
+								radiobutton field is automatically checked. The options  ?<span style="font-family:monospace; font-weight: bold;">values</span>? and  ?<span style="font-family:monospace; font-weight: bold;">labels</span>?
+								are used internally and don't get into the tag attributes. If a  ?<span style="font-family:monospace; font-weight: bold;">labels</span>? 
+								option is not given, labels are assigned using the  ?<span style="font-family:monospace; font-weight: bold;">values</span>? list.
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3677"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">checkbox</span>  ?<span style="font-family:monospace; font-weight: bol [...]
+								The   <span style="font-family:monospace; font-weight: bold;">checkbox</span>  subcommand emits a checkbox 
+								type input field with the name, label and value attributes set 
+								according to the parameters passed to the subcommand.
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Example:
+							</div><pre class="programlisting">form myform -defaults response -method get -name formname -action &lt;form_url&gt;
+myform start
+myform checkbox options -value opt1 -label "Option 1"
+myform checkbox options -value opt2 -label "Option 2"
+myform checkbox options -value opt3 -label "Option 3"
+myform checkbox options -value opt4 -label "Option 4"
+myform submit save_tps -value "Send Options"
+myform end
+myform destroy</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								Provided opt2 was in response array (in the list valued 'options' variable) that 
+								initialized the form, the output would look like this
+							</div><pre class="programlisting">&lt;form  action="&lt;form_url&gt;" method="get" name="formname"&gt;
+&lt;input type="checkbox" name="options"  id="autogen_1" label="Option 1" value="sopt1" /&gt;&lt;label for="autogen_1"&gt;Option 1&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_2" label="Option 2" value="sopt2" /&gt;&lt;label for="autogen_2"&gt;Option 2&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_3" label="Option 3" value="sopt3" /&gt;&lt;label for="autogen_3"&gt;Option 3&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_4" label="Option 4" value="sopt4" /&gt;&lt;label for="autogen_4"&gt;Option 4&lt;/label&gt;
+&lt;input type="submit" name="submit"  value="Send" /&gt;
+&lt;/form&gt;</pre></div></dd></dl></div></div><div class="refsect2"><a name="idm3695"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">checkboxes</span>  ?<span style="font-family:monospace; font-wei [...]
+								The   <span style="font-family:monospace; font-weight: bold;">checkboxes</span>  is an extended form
+								of the   <span style="font-family:monospace; font-weight: bold;">checkbox</span>  subcommand. 
+								  <span style="font-family:monospace; font-weight: bold;">checkboxes</span> 
+								prints as many checkboxes as the number of elements in the 
+								 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>labels_list</code></em></span>? argument								 
+							</div><div class="refsect3"><a name="idm3713"></a><div style="padding:4 ; margin-top:3 ; margin-left: 5%;">Options</div><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-values</ [...]
+												List of values associated with the checkboxes to be displayed
+											</div></div></dd><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-left: 5%;  margin-bottom:3 ; width:70%;"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">-labels</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>labels_list</code></em></span>?</div></div><div style="m [...]
+												List of labels to be printed with every checkbox. There must
+												be a label for every checkbox
+	 										</div></div></dd></dl></div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Example:
+							</div><pre class="programlisting">form myform -defaults response -method post -action &lt;form_url&gt;
+myform start
+myform checkboxes options -values {opt1 opt2 opt3 opt4} -labels {"Option 1" "Option 2" "Option 3" "Option 4"}
+myform submit save_tps -value "Send Options"
+myform end
+myform destroy</pre><div style="margin-bottom:1.5ex ; padding .5ex">
+								will print the following HTML code
+							</div><pre class="programlisting">&lt;form  action="&lt;form_url&gt;" method="post"&gt;
+&lt;input type="checkbox" name="options"  id="autogen_1" label="Option 1" value="opt1" /&gt;&lt;label for="autogen_1"&gt;Option 1&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_2" label="Option 2" value="opt2" /&gt;&lt;label for="autogen_2"&gt;Option 2&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_3" label="Option 3" value="opt3" /&gt;&lt;label for="autogen_3"&gt;Option 3&lt;/label&gt;
+&lt;input type="checkbox" name="options"  id="autogen_4" label="Option 4" value="opt4" /&gt;&lt;label for="autogen_4"&gt;Option 4&lt;/label&gt;
+&lt;input type="submit" name="save_tps"  value="Send Options" /&gt;
+&lt;/form&gt;</pre></div></dd></dl></div></div><div class="refsect2"><a name="idm3734"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">password</span>  ?<span style="font-family:monospace; font-weigh [...]
+								Same as text, but the input is obfuscated so as not to reveal the text being typed
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3743"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">hidden</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								hidden input element: typicall embedded in a form in order to
+								pass status variables.
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3752"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">submit</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								emits the code for a classical HTML submit button. Example: the following
+								code
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								<pre class="programlisting">
+	form myform -defaults response -method get -name feedsearch
+	myform start
+	myform submit submit -value Search</pre>						
+							</div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Would emit a form  like this
+							</div><pre class="programlisting">
+	&lt;form...&gt;
+	&lt;input type="submit" name="submit" value="Search" /&gt; 
+	&lt;/form&gt;</pre></div></dd></dl></div></div><div class="refsect2"><a name="idm3765"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">button</span>  ?<span style="font-family:monospace; font-weight [...]
+		emits the code for a button field having  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>name</code></em></span>? as name
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3776"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">reset</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Classical HTML reset button that resets the input fields
+								back to their initial values
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3785"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">image</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an image input field
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3794"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">radio</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits a radiobutton input field
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3803"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">color</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "color" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3812"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">date</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "date" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3821"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">datetime</span>  ?<span style="font-family:monospace; font-weight: bol [...]
+								Emits an HTML 5 "datetime" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3830"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">datetime_local</span>  ?<span style="font-family:monospace; font-weigh [...]
+								Emits an HTML 5 "datetime_local" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3839"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">email</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "email" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3848"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">file</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "file" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3857"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">month</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "month" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3866"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">number</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								Emits an HTML 5 "number" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3875"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">range</span>  ?<span style="font-family:monospace; font-weight: bold;" [...]
+								Emits an HTML 5 "range" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3884"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">search</span>  ?<span style="font-family:monospace; font-weight: bold; [...]
+								Emits an HTML 5 "search" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3893"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">tel</span>  ?<span style="font-family:monospace; font-weight: bold;">n [...]
+								Emits an HTML 5 "tel" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3902"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">time</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "time" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3911"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">url</span>  ?<span style="font-family:monospace; font-weight: bold;">n [...]
+								Emits an HTML 5 "url" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3920"></a><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">week</span>  ?<span style="font-family:monospace; font-weight: bold;"> [...]
+								Emits an HTML 5 "week" form field						
+							</div></div></dd></dl></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="form.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="form.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="calendar_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td widt [...]
diff --git a/rivet/manual3.1/formbroker.html b/rivet/manual3.1/formbroker.html
new file mode 100644
index 0000000..8d0ef90
--- /dev/null
+++ b/rivet/manual3.1/formbroker.html
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The Form Broker</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="toglyphs.html" title="toGlyphs"><link rel="next" href="fb.html" title="FormBroker"></head><body bgcolor="white" text="bla [...]
+         The <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span> package creates instances of 
+         objects representing a form data description. These objects offer a 
+         simple interface of methods meant to validate and control data 
+         as typically posted through an HTML form, 
+         thus data represented through the association of form variables 
+         with their values as returned, for example, 
+         by the <span style="font-family:monospace"><span class="command"><strong>::rivet::load_response</strong></span></span> command
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+      	The <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span> package is still experimental. 
+      	Basic functionalities and interface are not likely to change but
+      	internal details and implementation could be redesigned
+      	in future releases. More specifically the external validator mechanism
+      	could be improved with the purpose of shielding the <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span>
+      	internals from a data validation procedure.
+      </td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="toglyphs.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="fb.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">toGlyphs </td><td width="20%" align="center"><a accesskey= [...]
diff --git a/rivet/manual3.1/headers.html b/rivet/manual3.1/headers.html
new file mode 100644
index 0000000..4a0148a
--- /dev/null
+++ b/rivet/manual3.1/headers.html
@@ -0,0 +1,38 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>headers</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="exit.html" title="exit"><link rel="next" href="html.html" title="html"></head><body bgcolor="white" text="blac [...]
+		  The <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command is for setting and
+		  parsing HTTP headers.
+		</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+					    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">get</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class=" [...]
+					</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+							Read arbitrary header names and values from output HTTP headers
+					    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">set</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+			  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					Set arbitrary header names and values into output HTTP headers
+				</div></div></dd><dt><span class="term">
+				    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">sent</span> </div></div>
+				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Test internal status of the module and returns 1
+						if the HTTP headers have been already sent  
+					</div></div></dd><dt><span class="term">
+			    	<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">redirect</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>uri</code></em></span>?</div></div>
+			  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+						Redirect from the current page to a new
+						URI. <span class="emphasis"><em>Must</em></span> be done in the first block
+						of TCL code.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">add</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="re [...]
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Add text to header
+					<code class="varname">headername</code>.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">type</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>content-type</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				This command sets the <code class="constant">Content-type</code>
+				header returned by the script, which is useful if you wish
+				to send content other than HTML with Rivet - PNG or jpeg
+				images, for example.
+			    </div></div></dd><dt><span class="term">
+			    <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::headers</span>   <span style="font-family:monospace; font-weight: bold;">numeric</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>response code</code></em></span>?</div></div>
+			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				Set a numeric response code, such as 200, 404 or 500.
+			    </div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="exit.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="html.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align= [...]
diff --git a/rivet/manual3.1/help.html b/rivet/manual3.1/help.html
new file mode 100644
index 0000000..2d98d9b
--- /dev/null
+++ b/rivet/manual3.1/help.html
@@ -0,0 +1,48 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Resources - How to Get Help</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="fb.html" title="FormBroker"><link rel="next" href="internals.html" title="Rivet Internals"></head><body bgcol [...]
+	The Rivet mailing list is the first place you should turn for
+	help. If you haven't found the solution to your problem in the documentation  
+	or you have a question, idea, or comment about the Rivet code itself send email to
+	<code class="email">&lt;<a class="email" href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>&gt;</code>. To subscribe to the list, post email to
+	<code class="email">&lt;<a class="email" href="mailto:rivet-dev-subscribe@tcl.apache.org">rivet-dev-subscribe@tcl.apache.org</a>&gt;</code>.
+      </p><p style="width:90%">
+	The mailing list archives are available at <a class="ulink" href="http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/" target="_top">http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/</a>
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4333"></a>Newsgroup</h3></div></div></div><p style="width:90%">
+	The <a class="ulink" href="news:comp.lang.tcl" target="_top">news:comp.lang.tcl</a> newsgroup is a good
+	place to ask about Tcl questions in general.  Rivet developers
+	also follow the newsgroup, but it's best to ask Rivet-specific
+	questions on the Rivet list.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="websites"></a>Web Sites</h3></div></div></div><p style="width:90%">
+	There are several web sites that cover Apache and Tcl
+	extensively.
+      </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://tcl.apache.org" target="_top">http://tcl.apache.org</a> is the home for the
+	    Apache Tcl project.  Go there for the latest versions of
+	    our software (if you aren't reading these pages off of the
+	    site!).
+	  </div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://httpd.apache.org/docs/" target="_top">http://httpd.apache.org/docs/</a> is the first
+	    place to go for questions about the Apache web server.
+	  </div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://www.tcl.tk" target="_top">http://www.tcl.tk</a> is the canonical site
+	    for Tcl information.
+	  </div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+	    <a class="ulink" href="http://wiki.tcl.tk" target="_top">http://wiki.tcl.tk</a> is the Tcl'ers Wiki, a
+	    free-form place to search for answers and ask for help.
+	  </div></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4353"></a>Bug Tracking System</h3></div></div></div><p style="width:90%">
+	Apache Rivet uses the Apache Bug Tracking system at <a class="ulink" href="http://issues.apache.org/bugzilla/" target="_top">http://issues.apache.org/bugzilla/</a>.  Here,
+	you can report problems, or check and see if existing issues
+	are already known and being dealt with.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4357"></a>IRC</h3></div></div></div><p style="width:90%">
+        Occasionally, someone from the Rivet team is on IRC at
+        irc.freenode.net, channel #tcl.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4360"></a>Editing Rivet Template Files</h3></div></div></div><p style="width:90%">
+	Rivet makes available code for two popular editors,
+	<span class="application">emacs</span> and
+	<span class="application">vim</span> to facilitate the editing of
+	Rivet template files.  The key concept is that the editor is
+	aware of the &lt;? and ?&gt; tags and switches back and forth
+	between Tcl and HTML modes as the cursor moves.  These files,
+	<code class="filename">two-mode-mode.el</code> and
+	<code class="filename">rvt.vim</code> are available in the
+	<code class="filename">contrib/</code> directory.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="fb.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="internals.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">FormBroker </td><td width="20%" align="center"><a accesskey="h" href="index.h [...]
diff --git a/rivet/manual3.1/html.html b/rivet/manual3.1/html.html
new file mode 100644
index 0000000..e7a55eb
--- /dev/null
+++ b/rivet/manual3.1/html.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>html</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="headers.html" title="headers"><link rel="next" href="http_accept.html" title="http_accept"></head><body bgcolor=" [...]
+		    Print text with the added ability to pass HTML tags
+		    following the string.  Example:
+		    </p><pre class="programlisting">::rivet::html "Test" b i</pre><p style="width:90%">
+		    produces: <code class="computeroutput">&lt;b&gt;&lt;i&gt;Test&lt;/i&gt;&lt;/b&gt;</code>
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="headers.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="http_accept.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual3.1/html_calendar.html b/rivet/manual3.1/html_calendar.html
new file mode 100644
index 0000000..4425dde
--- /dev/null
+++ b/rivet/manual3.1/html_calendar.html
@@ -0,0 +1,25 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>HtmlCalendar</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="calendar_package.html" title="Calendar Package"><link rel="prev" href="xml_calendar.html" title="XmlCalendar"><link rel="next" href="entities.html" title="RivetEntities"></head><body b [...]
+				Concrete XmlCalendar class for printing html calendar tables. The markup of the class
+				is xhtml compliant and prints a code fragment for inclusion in a webpage.
+				The following is the class definition.
+			</p><pre class="programlisting">
+::itcl::class HtmlCalendar {
+    inherit XmlCalendar
+    
+    constructor {args} {XmlCalendar::constructor $args} {
+    $this configure -container    table \
+                    -header       thead \
+                    -body         tbody \
+                    -banner       tr    \
+                    -banner_month {th colspan 3 style "text-align: right;"} \
+                    -banner_year  {th colspan 4 style "text-align: left;"}  \
+                    -weekdays     tr    \
+                    -weekday_cell th    \
+                    -days_row     tr    \
+                    -days_cell    td 
+    }
+}</pre></div><div class="refsect1"><a name="idm4131"></a><p style="width:90%">
+				A sample output from HtmlCalendar (with some styling)			
+			</p><p style="width:90%">
+				</p><div><img src="images/calendar.png"></div><p style="width:90%">			
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xml_calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="calendar_package.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="entities.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" v [...]
diff --git a/rivet/manual3.1/http_accept.html b/rivet/manual3.1/http_accept.html
new file mode 100644
index 0000000..612d747
--- /dev/null
+++ b/rivet/manual3.1/http_accept.html
@@ -0,0 +1,33 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>http_accept</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="html.html" title="html"><link rel="next" href="import_keyvalue_pairs.html" title="import_keyvalue_pairs">< [...]
+                 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>-zeroweight</code></em></span>?
+                 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>-default</code></em></span>?
+                 ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>-list</code></em></span>?
+                http_accept_line</span> </div></div></div><div class="refsect1"><a name="idm1251"></a><h2>Description</h2><p style="width:90%">
+                Command for parsing HTTP Accept header lines that tell the
+                server about preferences and/or capabilities of the browser 
+                (e.g. content language,media type, etc.). The following 
+                script
+            </p><p style="width:90%">
+                <span style="font-family:monospace"><span class="command"><strong>::rivet::http_accept</strong></span></span> returns a dictionary
+                value in which every content preference is matched to its
+                precedence value
+            </p><pre class="programlisting">load_headers
+set language_precedence [::rivet::http_accept $headers(Accept-Language)]
+foreach lan [dict keys $language_precedence] {
+                puts "$lan -&gt; [dict get $language_precedence $lan]"
+}</pre><p style="width:90%">
+                when run from a browser where 5 languages were chosen
+                would output
+            </p><pre class="programlisting">en-us -&gt; 1
+en -&gt; 0.8
+it -&gt; 0.6
+de-de -&gt; 0.4
+fr-fr -&gt; 0.2</pre><p style="width:90%">
+                The <em class="replaceable"><code>-list</code></em> switch would suppress
+                the precedence values and the accepted fields 
+                are returned listed with decreasing precedence order.
+            </p><pre class="programlisting"> puts [::rivet::http_accept -list $headers(Accept-Language)]
+text/html application/xhtml+xml application/xml */*
+            </pre><p style="width:90%">
+
+            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="html.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="import_keyvalue_pairs.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="l [...]
diff --git a/rivet/manual3.1/images/acrobat.png b/rivet/manual3.1/images/acrobat.png
new file mode 100644
index 0000000..6907b4e
Binary files /dev/null and b/rivet/manual3.1/images/acrobat.png differ
diff --git a/rivet/manual3.1/images/blank.png b/rivet/manual3.1/images/blank.png
new file mode 100644
index 0000000..764bf4f
Binary files /dev/null and b/rivet/manual3.1/images/blank.png differ
diff --git a/rivet/manual3.1/images/calendar.png b/rivet/manual3.1/images/calendar.png
new file mode 100644
index 0000000..54f9f33
Binary files /dev/null and b/rivet/manual3.1/images/calendar.png differ
diff --git a/rivet/manual3.1/images/caution.png b/rivet/manual3.1/images/caution.png
new file mode 100644
index 0000000..5b7809c
Binary files /dev/null and b/rivet/manual3.1/images/caution.png differ
diff --git a/rivet/manual3.1/images/color-table.png b/rivet/manual3.1/images/color-table.png
new file mode 100644
index 0000000..c05a112
Binary files /dev/null and b/rivet/manual3.1/images/color-table.png differ
diff --git a/rivet/manual3.1/images/disk.png b/rivet/manual3.1/images/disk.png
new file mode 100644
index 0000000..772566e
Binary files /dev/null and b/rivet/manual3.1/images/disk.png differ
diff --git a/rivet/manual3.1/images/draft.png b/rivet/manual3.1/images/draft.png
new file mode 100644
index 0000000..0084708
Binary files /dev/null and b/rivet/manual3.1/images/draft.png differ
diff --git a/rivet/manual3.1/images/home.png b/rivet/manual3.1/images/home.png
new file mode 100644
index 0000000..eb904c8
Binary files /dev/null and b/rivet/manual3.1/images/home.png differ
diff --git a/rivet/manual3.1/images/important.png b/rivet/manual3.1/images/important.png
new file mode 100644
index 0000000..12c90f6
Binary files /dev/null and b/rivet/manual3.1/images/important.png differ
diff --git a/rivet/manual3.1/images/next.png b/rivet/manual3.1/images/next.png
new file mode 100644
index 0000000..0f4d18a
Binary files /dev/null and b/rivet/manual3.1/images/next.png differ
diff --git a/rivet/manual3.1/images/note.png b/rivet/manual3.1/images/note.png
new file mode 100644
index 0000000..d0c3c64
Binary files /dev/null and b/rivet/manual3.1/images/note.png differ
diff --git a/rivet/manual3.1/images/prev.png b/rivet/manual3.1/images/prev.png
new file mode 100644
index 0000000..dd3b6a2
Binary files /dev/null and b/rivet/manual3.1/images/prev.png differ
diff --git a/rivet/manual3.1/images/qbullet-note.png b/rivet/manual3.1/images/qbullet-note.png
new file mode 100644
index 0000000..88c30c0
Binary files /dev/null and b/rivet/manual3.1/images/qbullet-note.png differ
diff --git a/rivet/manual3.1/images/remote.png b/rivet/manual3.1/images/remote.png
new file mode 100644
index 0000000..d76b0f1
Binary files /dev/null and b/rivet/manual3.1/images/remote.png differ
diff --git a/rivet/manual3.1/images/scrollup.png b/rivet/manual3.1/images/scrollup.png
new file mode 100644
index 0000000..336232a
Binary files /dev/null and b/rivet/manual3.1/images/scrollup.png differ
diff --git a/rivet/manual3.1/images/table.png b/rivet/manual3.1/images/table.png
new file mode 100644
index 0000000..6ec425e
Binary files /dev/null and b/rivet/manual3.1/images/table.png differ
diff --git a/rivet/manual3.1/images/tip.png b/rivet/manual3.1/images/tip.png
new file mode 100644
index 0000000..5c4aab3
Binary files /dev/null and b/rivet/manual3.1/images/tip.png differ
diff --git a/rivet/manual3.1/images/toc-blank.png b/rivet/manual3.1/images/toc-blank.png
new file mode 100644
index 0000000..6ffad17
Binary files /dev/null and b/rivet/manual3.1/images/toc-blank.png differ
diff --git a/rivet/manual3.1/images/toc-minus.png b/rivet/manual3.1/images/toc-minus.png
new file mode 100644
index 0000000..abbb020
Binary files /dev/null and b/rivet/manual3.1/images/toc-minus.png differ
diff --git a/rivet/manual3.1/images/toc-plus.png b/rivet/manual3.1/images/toc-plus.png
new file mode 100644
index 0000000..941312c
Binary files /dev/null and b/rivet/manual3.1/images/toc-plus.png differ
diff --git a/rivet/manual3.1/images/up.png b/rivet/manual3.1/images/up.png
new file mode 100644
index 0000000..f9f8312
Binary files /dev/null and b/rivet/manual3.1/images/up.png differ
diff --git a/rivet/manual3.1/images/warning.png b/rivet/manual3.1/images/warning.png
new file mode 100644
index 0000000..1c33db8
Binary files /dev/null and b/rivet/manual3.1/images/warning.png differ
diff --git a/rivet/manual3.1/images/word.png b/rivet/manual3.1/images/word.png
new file mode 100644
index 0000000..4189771
Binary files /dev/null and b/rivet/manual3.1/images/word.png differ
diff --git a/rivet/manual3.1/import_keyvalue_pairs.html b/rivet/manual3.1/import_keyvalue_pairs.html
new file mode 100644
index 0000000..cfa98c2
--- /dev/null
+++ b/rivet/manual3.1/import_keyvalue_pairs.html
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>import_keyvalue_pairs</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="http_accept.html" title="http_accept"><link rel="next" href="include.html" title="include"></hea [...]
+		    key-value pairs, like "-foo bar" are stored in the array  ?<span style="font-family:monospace; font-weight: bold;">arrayName</span>?.  
+		    In that case, the value "bar" would be stored in the element "foo"
+		</p><p style="width:90%">
+		    If "--" appears or a key doesn't begin with "-", the rest of the arg 
+		    list is stored in the special args element of the array.
+		</p><p style="width:90%">
+		    Example:
+		    </p><pre class="programlisting">::rivet::import_keyvalue_pairs keyvalue_map [list -a1 v1 -a2 v2 -a3 v3 -- 1 2 3 4 5]
+parray keyvalue_map
+
+keyvalue_map(a1)   = v1
+keyvalue_map(a2)   = v2
+keyvalue_map(a3)   = v3
+keyvalue_map(args) = 1 2 3 4 5</pre><p style="width:90%">
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="http_accept.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="include.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual3.1/include.html b/rivet/manual3.1/include.html
new file mode 100644
index 0000000..b9f637e
--- /dev/null
+++ b/rivet/manual3.1/include.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>include</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="import_keyvalue_pairs.html" title="import_keyvalue_pairs"><link rel="next" href="incr0.html" title="incr0"></h [...]
+		    Include a file without parsing it for processing tags &lt;?
+		    and ?&gt;.  This is the best way to include an HTML file or
+		    any other static content.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="import_keyvalue_pairs.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="incr0.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" vali [...]
diff --git a/rivet/manual3.1/incr0.html b/rivet/manual3.1/incr0.html
new file mode 100644
index 0000000..5f2ad86
--- /dev/null
+++ b/rivet/manual3.1/incr0.html
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>incr0</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="include.html" title="include"><link rel="next" href="inspect.html" title="inspect"></head><body bgcolor="white"  [...]
+                Increment a variable
+                <em class="replaceable"><code>varname</code></em> by
+                <em class="replaceable"><code>num</code></em>.  If the
+                variable doesn't exist, create it instead of returning an
+                error.
+            </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"> 
+                incr0 functionality is provided by the native <span style="font-family:monospace"><span class="command"><strong>incr</strong></span></span> in 
+                Tcl &gt;= 8.5, therefore this command is deprecated and kept as an
+                interpreter alias only for compatibility. As such <span style="font-family:monospace"><span class="command"><strong>incr0</strong></span></span> 
+                wasn't moved to the ::rivet namespace and
+                it will be removed in future versions of Rivet.
+            </td></tr></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="include.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="inspect.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" [...]
diff --git a/rivet/manual3.1/index.html b/rivet/manual3.1/index.html
new file mode 100644
index 0000000..7136030
--- /dev/null
+++ b/rivet/manual3.1/index.html
@@ -0,0 +1,105 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.1</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="next" href="installation.html" title="Apache Rivet 3.1 Installation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table wi [...]
+	            <code class="email">&lt;<a class="email" href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>&gt;</code><br>
+	        </p></div></div></div></div><div><p class="copyright">Copyright © 2002-2018 Apache Software Foundation</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="index.html#introduction">Introduction to Apache Rivet version 3.1</a></span></dt><dt><span class="section"><a href="installation.html">Apache Rivet 3.1 Installation</a></span></dt><dt><span class="section"><a href="cmake.html">Building Rivet 3.1 with CMake [...]
+				Shorthand construct for single strings output
+			</span></dt><dt><span class="refentrytitle"><a href="abort_code.html">abort_code</a></span><span class="refpurpose"> — 
+				Returns the code passed to <span style="font-family:monospace"><span class="command"><strong>abort_page</strong></span></span>
+				earlier during the request processing
+			</span></dt><dt><span class="refentrytitle"><a href="abort_page.html">abort_page</a></span><span class="refpurpose"> — 
+		    Stops outputting data to web page, similar in
+		    purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.
+		</span></dt><dt><span class="refentrytitle"><a href="apache_log_error.html">apache_log_error</a></span><span class="refpurpose"> — log messages to the Apache error log</span></dt><dt><span class="refentrytitle"><a href="apache_table.html">apache_table</a></span><span class="refpurpose"> — access and manipulate Apache tables in the request structure.</span></dt><dt><span class="refentrytitle"><a href="catch.html">catch</a></span><span class="refpurpose"> — wraps core command <span style [...]
+		    A command to print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</span></dt><dt><span class="refentrytitle"><a href="env.html">env</a></span><span class="refpurpose"> — 
+		    Loads a single "environmental variable" into a Tcl variable.
+		</span></dt><dt><span class="refentrytitle"><a href="escape_sgml_chars.html">escape_sgml_chars</a></span><span class="refpurpose"> — escape special SGML characters in a string.</span></dt><dt><span class="refentrytitle"><a href="escape_shell_command.html">escape_shell_command</a></span><span class="refpurpose"> — escape shell metacharacters in a string.</span></dt><dt><span class="refentrytitle"><a href="escape_string.html">escape_string</a></span><span class="refpurpose"> — convert a  [...]
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</span></dt><dt><span class="refentrytitle"><a href="lmatch.html">lmatch</a></span><span class="refpurpose"> — 
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;
+		</span></dt><dt><span class="refentrytitle"><a href="load_cookies.html">load_cookies</a></span><span class="refpurpose"> — get any cookie variables sent by the client.</span></dt><dt><span class="refentrytitle"><a href="load_env.html">load_env</a></span><span class="refpurpose"> — get the request's environment variables.</span></dt><dt><span class="refentrytitle"><a href="load_headers.html">load_headers</a></span><span class="refpurpose"> — get client request's headers.</span></dt><dt> [...]
+			    Read the entire contents of a file and return it as a string.			
+			</span></dt><dt><span class="refentrytitle"><a href="try.html">try</a></span><span class="refpurpose"> — 
+				Catch error and exception conditions
+			</span></dt><dt><span class="refentrytitle"><a href="unescape_string.html">unescape_string</a></span><span class="refpurpose"> — unescape escaped characters in a string.</span></dt><dt><span class="refentrytitle"><a href="upload.html">upload</a></span><span class="refpurpose"> — handle a file uploaded by a client.</span></dt><dt><span class="refentrytitle"><a href="url_script.html">url_script</a></span><span class="refpurpose"> — get the code of the URL referenced Tcl script or Rivet  [...]
+		    Split a string on newlines. 
+		</span></dt><dt><span class="refentrytitle"><a href="wrapline.html">wrapline</a></span><span class="refpurpose"> — 
+		    Split the line into multiple lines by splitting on space characters 
+		</span></dt><dt><span class="refentrytitle"><a href="xml.html">xml</a></span><span class="refpurpose"> — 
+                XML Fragments creation
+            </span></dt></dl></dd><dt><span class="section"><a href="examples.html">Examples and Usage</a></span></dt><dt><span class="section"><a href="tcl_packages.html">Rivet Tcl Packages</a></span></dt><dt><span class="section"><a href="dio.html">DIO - Database Interface Objects</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="dio_package.html">DIO</a></span><span class="refpurpose"> — Database Interface Objects</span></dt></dl></dd><dt><span class="section"><a href="d [...]
+                encode a string replacing every occurrence of characters for 
+                which an SGML entity exists
+            </span></dt><dt><span class="refentrytitle"><a href="decode.html">decode</a></span><span class="refpurpose"> — 
+                decode an SGML encoded string replacing every entity with the
+                corresponding character
+            </span></dt></dl></dd><dt><span class="section"><a href="asciiglyphs.html">AsciiGlyphs</a></span></dt><dd><dl><dt><span class="section"><a href="asciiglyphs.html#idm4177">Introduction</a></span></dt><dt><span class="refentrytitle"><a href="toglyphs.html">toGlyphs</a></span><span class="refpurpose"> — 
+	            	print large ASCII glyphs
+	            </span></dt><dt><span class="section"><a href="asciiglyphs.html#idm4193">Example</a></span></dt></dl></dd><dt><span class="section"><a href="formbroker.html">The Form Broker</a></span></dt><dd><dl><dt><span class="section"><a href="formbroker.html#idm4198">Introduction</a></span></dt><dt><span class="refentrytitle"><a href="fb.html">FormBroker</a></span><span class="refpurpose"> — 
+               Form broker object creator
+            </span></dt></dl></dd><dt><span class="section"><a href="help.html">Resources - How to Get Help</a></span></dt><dd><dl><dt><span class="section"><a href="help.html#idm4326">Mailing Lists</a></span></dt><dt><span class="section"><a href="help.html#idm4333">Newsgroup</a></span></dt><dt><span class="section"><a href="help.html#websites">Web Sites</a></span></dt><dt><span class="section"><a href="help.html#idm4353">Bug Tracking System</a></span></dt><dt><span class="section"><a h [...]
+    	This manual is released as part of Apache/Rivet 3.1.0 (Saturday 2018-11-24 11:24:35+01:00).
+  	</p><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="introduction"></a>Introduction to Apache Rivet version 3.1</h2></div></div></div><p style="width:90%">
+      Apache Rivet is a system for creating dynamic web content by
+      integrating the 
+		<a class="ulink" href="http://www.tcl.tk/" target="_top">Tcl programming language</a> within the 
+      <a class="ulink" href="http://httpd.apache.org" target="_top">Apache Web Server</a>.
+      It is designed to be fast, powerful and extensible, consume 
+      few system resources, be easy to learn, and to provide the user with a
+      platform that can also be used for other programming tasks
+      outside the web (GUI's, system administration tasks, text
+      processing, database manipulation, XML, and so on).
+    </p><p style="width:90%">
+      In this manual, we aim to help get you started, and then
+      writing productive code as quickly as possible, as well as
+      giving you ideas on how to best take advantage of Rivet's
+      architecture to create different styles of web site.
+    </p><p style="width:90%">
+        This documentation is focused on the current version of Rivet, but
+        still a work in progress, and, like everything
+        else about Apache Rivet, it is Free Software.  If you see
+        something that needs improving, and have ideas or suggestions,
+        don't hesitate to let us know.  If you want to contribute
+        directly, better yet!
+    </p><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm21"></a>Apache MPM and Rivet Bridge Modules</h3></div></div></div><p style="width:90%">
+	        	Rivet 3.1 is a major rewriting of mod_rivet, the Apache HTTP
+	        	Websever module at the core of Rivet. Unlike in previous versions of 
+	        	mod_rivet which only supported the <a class="ulink" href="" target="_top">prefork MPM</a>
+	        	(<a class="ulink" href="" target="_top">Multiprocessing Module</a>), 
+	        	starting with 3.0 we attained full support of different MPM for
+	        	the Apache framework.
+        </p><p style="width:90%">
+        		Threaded <a class="ulink" href="" target="_top">MPM</a>
+        		integration was achieved by making mod_rivet multithreaded and
+        		modular itself, introducing the MPM-module bridge concept.
+        		We developed a set of loadable modules 
+        		which are supposed not only to overcome the issues related to threading but also
+        		to offer the best possible MPM mod_rivet integration.
+        		As a side effect of this modular design mod_rivet is not only able to integrate
+        		with its environment but also to work as a framework for writing more MPM bridges
+        		designed along different multi-threading schemes and workload management models. 
+        		See the <a class="link" href="internals.html" title="Rivet Internals">internals</a> section of this manual for
+        		further reading. MPM bridges are loaded accordingly to a heuristics of rules based
+        		on the Apache introspection calls but they can be determined in the configuration. 
+        		Only a bridge can be loaded at a time.
+        </p></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm29"></a>Request Processing</h3></div></div></div><p style="width:90%">
+    			Request processing was performed in mod_rivet version 2.x by chaining together 3 scripts
+    	</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">BeforeScript, if defined in the configuration</li><li class="listitem">The URI referenced Tcl script or rvt template dermined with
+ 				respect to the <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/core.html#documentroot" target="_top">DocumentRoot</a> and following 
+ 				other resource determination methods such the ones offered by 
+ 				<a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/mod_alias.html" target="_top">mod_alias</a> and by
+ 				<a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html" target="_top">mod_rewrite</a>.
+ 			</li><li class="listitem">AfterScript, if defined in the configuration</li></ul></div><p style="width:90%">
+			Errors and exceptions (raised by the <a class="link" href="abort_page.html" title="abort_page">::rivet::abort_page</a> command)
+			are handled by the ErrorScript and AbortScript (ErrorScript has a default implementation
+			if undefined in the configuration)
+		</p><p style="width:90%">
+			Rivet 3.1 implements a new <a class="link" href="request.html" title="Apache Child Processes Lifecycle and Request Processing">request processing scheme</a> 
+			entirely based on Tcl. By default rivet 3.1 provides compatiblity with the 
+			version 2.x scheme to handle a request but this can be entirely overridden by
+			the developer replacing the central request handling procedure. See the 
+			<a class="link" href="request.html" title="Apache Child Processes Lifecycle and Request Processing">request processing</a> page for further reading 
+		</p></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm44"></a>Acknowledgements</h3></div></div></div><p style="width:90%">This version of Rivet received substantial contributions from George Petasis who solved
+    	several problems with the threaded code, improved the code in several ways and made the CMake
+    	based build scripts</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="installation.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Apache Rivet 3.1 Installation</td></t [...]
diff --git a/rivet/manual3.1/inspect.html b/rivet/manual3.1/inspect.html
new file mode 100644
index 0000000..1e58018
--- /dev/null
+++ b/rivet/manual3.1/inspect.html
@@ -0,0 +1,47 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>inspect</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="incr0.html" title="incr0"><link rel="next" href="lassign_array.html" title="lassign_array"></head><body bgcolo [...]
+             <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span> provides introspection into the running
+             configuration of Rivet. Rivet's debug command uses it in order to gain insight
+             into the configuration, but it can be used in any script. 
+         </p><p style="width:90%">
+             <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span> can be called in 5 different forms
+         </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem" style="list-style-type: square">            
+               With no argument the command returns a dictionary with 3
+               keys: server, dir, user. Each key is associated to a subdictionary 
+               carrying the configuration as set for that request.  In this form the command is 
+               meant to support compatibility with previous versions of mod_rivet 
+               where three global arrays were created to be internally used by command
+               <span style="font-family:monospace"><span class="command"><strong>::rivet::debug</strong></span></span>.
+            </li><li class="listitem" style="list-style-type: square">
+					With the  ?<span style="font-family:monospace; font-weight: bold;">-all</span>? argument a dictionary
+					carrying the whole configuration for that specific request is returned. 
+					If a configuration parameter is not set it's given the
+					string <span class="emphasis"><em>undefined</em></span>. Returned configuration paramenters
+					are<pre class="programlisting">    "ServerInitScript",
+    "GlobalInitScript",
+    "ChildInitScript",
+    "ChildExitScript",
+    "BeforeScript",
+    "AfterScript",
+    "AfterEveryScript",
+    "AbortScript",
+    "ErrorScript",
+    "UploadMaxSize",
+    "UploadDirectory",
+    "UploadFilesToVar",
+    "SeparateVirtualInterps",
+    "HonorHeaderOnlyRequests"</pre></li><li class="listitem" style="list-style-type: square">
+					With one of the Rivet configuration directives listed above as
+					single argument <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span> returns the 
+					current value in the configuration record. 
+				</li><li class="listitem" style="list-style-type: square">
+					Passing the argument "script" <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span>
+					returns a path to the current script in a similar way 
+					core command <span style="font-family:monospace"><span class="command"><strong>[info script]</strong></span></span> does. The basic
+					difference is that the core command returns a relative path with
+					respect to the current working directory, whereas mod_rivet's command
+					returns the full path.
+				</li><li class="listitem" style="list-style-type: square">
+                    Passing the argument "server" <span style="font-family:monospace"><span class="command"><strong>::rivet::inspect</strong></span></span>
+                    returns a dictionary with these fields taken from the server record
+                    descriptor
+                    <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">hostname: The server hostname </li><li class="listitem">admin: The admin's contact information</li><li class="listitem">errorlog: The name of the error log</li><li class="listitem">server_path: Pathname for ServerPath</li></ul></div></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left" [...]
diff --git a/rivet/manual3.1/installation.html b/rivet/manual3.1/installation.html
new file mode 100644
index 0000000..7abc0d5
--- /dev/null
+++ b/rivet/manual3.1/installation.html
@@ -0,0 +1,169 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.1 Installation</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="index.html" title="Apache Rivet 3.1"><link rel="next" href="cmake.html" title="Building Rivet 3.1 with CMak [...]
+            Rivet 3.1 runs with the Apache 2.2.x and 2.4.x HTTP web servers. 
+            It is known to build and run on various Linux distributions 
+            (Debian &amp; Ubuntu, Redhat, SuSE and CentOS), FreeBSD and OpenBSD. For some
+            of these Unix-like operative systems 
+            <a class="ulink" href="http://tcl.apache.org/rivet/html/download.html" target="_top">binary packages</a> 
+            are already available for download.
+        </p><p style="width:90%">
+				Rivet 2.x was restricted to work with the 
+				<a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork</a> MPM
+				of the Apache HTTP webserver. MPM modules are fundamental components of the
+				webserver architecture. They provide multiple implementations of multiprocessing
+				in order to better suit specific OS features and scalability requirements.
+				The prefork MPM exploited the UNIX traditional approach to multiprocess server
+				applications based on the
+				<a class="ulink" href="https://en.wikipedia.org/wiki/Fork_(system_call)" target="_top">fork</a>
+				system call. This model has several limitations but also some advantages. The 
+				solution we adopted tries to attain the best from any MPM as much as possible
+				and Rivet 3.1 is now able to run with the 
+				<a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/worker.html" target="_top">worker</a> 
+            and the
+            <a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/event.html" target="_top">event</a> 
+            MPMs. Rivet 3.1 has not been ported to OS of the Windows family
+            but we feel that the current design would fit just fine with the Windows specific
+            MPMs such as
+            <a class="ulink" href="http://httpd.apache.org/docs/2.4/mod/mpm_winnt.html" target="_top">winnt</a>.
+        </p><p style="width:90%">
+            If you need to build Apache Rivet yourself this is the procedure to follow
+        </p><ol class="procedure" type="1"><li class="step"><p class="title"><b>Building Tcl: requirements</b></p><p style="width:90%">
+                Installing Rivet is about endowing the Apache HTTP webserver with the ability
+                of running scripts written with the Tcl programming language. 
+                Therefore the 
+                <a class="ulink" href="http://www.tcl.tk/" target="_top">Tcl</a> language with its runtime,  
+                development libraries and shell (≥8.5.10 required, ≥8.6.0 recommended) 
+                have to be installed. Building Rivet you will 
+                have to tell the scripts where the Tcl libraries are located via the
+                --with-tcl option of the <span style="font-family:monospace"><span class="command"><strong>configure</strong></span></span> script
+                (see below).
+            </p><p style="width:90%">
+            	Several Tcl packages shipped with rivet need also the 
+            	<a class="ulink" href="http://core.tcl.tk/itcl/" target="_top">Itcl</a>
+            	OOP extension of Tcl. If you need to run any of the 
+            	Session or DIO
+            	packages you need to install this language extension but you don't need it
+            	to build mod_rivet 
+            </p><p style="width:90%">
+            	The 
+            	<a class="ulink" href="http://httpd.apache.org/" target="_top">Apache HTTP Webserver</a> development
+            	files and libraries are required along with the 
+            	<a class="ulink" href="http://apr.apache.org/" target="_top">Apache Portable Runtime</a>
+            	and the
+            	<a class="ulink" href="http://httpd.apache.org/apreq/" target="_top">libapreq</a> library. 
+            </p></li><li class="step"><p class="title"><b>Building Rivet</b></p></li><li class="step"><p class="title"><b>Getting and Installing the Apache Sources</b></p><p style="width:90%">
+                You can build Rivet either statically (compiled into the Apache web
+                server) or dynamically (as a loadable shared library).  
+                We recommend that you build Rivet as a shared library, for maximum flexibility.
+                We will tell Rivet where it the Apache development files and libraries are located 
+                via the --with-apxs option to <span style="font-family:monospace"><span class="command"><strong>configure</strong></span></span> (see below).
+            </p><p style="width:90%">
+            	Most modern Unix OS (Linux and FreeBSD systems included) come with their
+            	own packages of the Apache Web Server executables, runtime libraries and development files
+            	and libraries. Check the documentation of the package manager of your OS 
+            	to find out how to install this software
+            </p></li><li class="step"><p class="title"><b>Uncompress Sources</b></p><p style="width:90%">
+                Download the sources at <a class="ulink" href="http://tcl.apache.org/rivet/html/download.html" target="_top">http://tcl.apache.org/rivet/html/download.html</a>.  
+            </p><p style="width:90%">
+              We will assume that you have Apache installed at this point.
+              You must uncompress the Rivet sources in the directory where you
+              wish to compile them.
+              </p><pre class="programlisting">gunzip rivet-3.1.0.tar.gz
+tar -xvf rivet-3.1.0.tar.gz</pre><p style="width:90%">
+            </p></li><li class="step"><p class="title"><b>Building Rivet</b></p><ol type="a" class="substeps"><li class="step"><p style="width:90%">
+	       Rivet uses the standard <span style="font-family:monospace"><span class="command"><strong>./configure ; make ; make install</strong></span></span>
+	       sequence which installs to their target directories the Apache module, the binary libraries and the
+	       Tcl code
+	    </p><p style="width:90%">
+	      There are several rivet specific options to configure that might be useful (or needed):
+	      </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">--with-apache</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+	      				Defines the configure internal variable 'apache_base'. This variable
+	      				points to the root of the Apache web server directory hierarchy
+	      			</div></div></dd><dt><span class="term">--with-tcl</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			              This points to the directory where the
+			              <code class="filename">tclConfig.sh</code> file is located.
+			          </div></div></dd><dt><span class="term">--with-tclsh</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">This points to the location of the
+			      		<code class="filename">tclsh</code> executable.</div></div></dd><dt><span class="term">--with-apxs</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			    			The location of the <code class="filename">apxs</code>
+			      		program that provides information about the
+			      		configuration and compilation options of Apache modules.
+			      	</div></div></dd><dt><span class="term">--with-apache-include[=DIR]</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				    		Locates the Apache include files on your computer, if they're not in standard directory. 
+			    		</div></div></dd><dt><span class="term">--enable-version-display=[yes|no]</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+							This option enables Rivet to display its version in the
+							logfiles when Apache is started. The default is to keep the Rivet version hidden.
+			    		</div></div></dd><dt><span class="term">--with-rivet-target-dir=DIR</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+					    	This option is for fine tuning of the installation final directories. Rivet Tcl packages, 
+					    	commands and loadable libraries go into the same directory hierarchy 
+					    	(by default is ${apache_base}/lib/rivet${PACKAGE_VERSION}, where $apache_base takes
+					    	the value set by --with-apache) 
+						</div></div></dd><dt><span class="term">--with-upload-dir=DIR</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			         	Configures Rivet's default upload directory. It can be overridden in the configuration
+			          	either globally or specifically for a virtual host 
+			      	</div></div></dd><dt><span class="term">--with-post-max=BYTES</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+							The value to this option establishes a default for the maximum size of POST data.
+							Default: 0 (unlimited size)
+						</div></div></dd><dt><span class="term">--enable-head-requests</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+				          By default HEAD requests don't go through the usual request processing which leads
+				          to script execution and therefore resource consumption and Rivet returns a
+				          standard hardcoded HTML header to save CPU time. --enable-head-requests
+				          can change the default.
+				      </div></div></dd><dt><span class="term">--enable-rivet-commands-export</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			         	By default Rivet's commands are put on the export list of the <code class="code">::rivet</code>
+			          	namespace. With this option you may prevent it thus forcing the programmers to
+			          	fully qualify in their code. By default this option is enabled and it can be
+			          	changed in the configuration with the directive ExportRivetNS. Disabling
+			          	this option can be also reverted to 'On' with the --enable-import-rivet-commands
+			          	switch
+			      	</div></div></dd><dt><span class="term">--enable-import-rivet-commands</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+			         	Rivet's namespace is by default imported into the global namespace. Enabling the import 
+			         	of Rivet's commands overrides the switch and forces --enable-rivet-commands-export=yes 
+			         	thus demanding the commands to be exported (otherwise it would generate errors at run-time).
+			         	This option is disabled by default and it can be changed in the configuration with
+			         	the ImportRivetNS directive
+			      	</div></div></dd><dt><span class="term">--enable-virtual-interps-separation</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+							This option changes the default for the SeparateVirtualInterps configuration
+							variable. Default: 0 (no separation among interpreters)
+						</div></div></dd></dl></div><p style="width:90%">
+	    </p><p style="width:90%">
+		  Example: configuring the build system to compile Rivet for an Apache HTTP server custom installation, 
+		  using tcl8.6. In this specific case the determination of the apxs path is redundant and it could be 
+		  omitted since it could be inferred from the --with-apache option value 
+	    </p><pre class="programlisting">./configure --with-tcl=/usr/lib/tcl8.6/ --with-tclsh=/usr/bin/tclsh8.6 \
+	    --with-apxs=/usr/local/apache2/bin/apxs --with-apache=/usr/local/apache2 \
+	    --with-rivetlib-target-dir=/usr/local/apache2/rivet3.0</pre></li><li class="step"><p class="title"><b>Run make</b></p><p style="width:90%">
+	      At this point, you are ready to run make, which should
+	      run to completion without any errors (a warning or two
+	      is OK, generally).
+	    </p></li><li class="step"><p class="title"><b>Install</b></p><p style="width:90%">
+	      Now, you are ready to run the
+	    </p><pre class="programlisting">make install</pre><p style="width:90%"> 
+	       to install the resulting files. The <code class="code">install</code> target
+	       actually fires the <code class="code">install-binaries</code> and 
+	       <code class="code">install-packages</code> targets which in turn 
+	       copy the binary modules and Tcl packages to their destination
+	       directories. This commands create a functional Rivet environment with its
+		   core language.
+	    </p></li></ol></li><li class="step"><p class="title"><b>Apache Configuration Files</b></p><p style="width:90%">
+	  Rivet is relatively easy to configure - we start off by
+	  adding the module itself:
+	</p><pre class="programlisting">LoadModule rivet_module	<em class="replaceable"><code>/usr/lib/apache2/modules/mod_rivet.so</code></em></pre><p style="width:90%">
+	  This tells Apache to load the Rivet shared object, wherever
+	  it happens to reside on your file system.  Now we have to
+	  tell Apache what kind of files are "Rivet" files and how to
+	  process them:
+	</p><pre class="programlisting">AddType application/x-httpd-rivet rvt
+AddType application/x-rivet-tcl tcl</pre><p style="width:90%">
+	  These tell Apache to process files with the
+	  <code class="filename">.rvt</code> and <code class="filename">.tcl</code>
+	  extensions as Rivet files.
+	</p><p style="width:90%">
+	  The characters encoding can be changed using the <span style="font-family:monospace"><span class="command"><strong>header type</strong></span></span> command,
+	  but you can also change the default charset for the whole site:
+	</p><pre class="programlisting">AddType 'application/x-httpd-rivet;charset=utf-8' rvt</pre><p style="width:90%">
+	   All the pages generated by Rivet on this site will be sent with a 
+	    <span style="font-family:monospace"><span class="command"><strong>Content-Type:'text/html;charset=utf-8'</strong></span></span> header.
+	</p><p style="width:90%">You may also wish to use Rivet files as index files for
+	directories.  In that case, you would do the following:</p><pre class="programlisting">DirectoryIndex index.html index.htm index.shtml index.cgi index.tcl index.rvt</pre><p style="width:90%">
+	  For other directives that Rivet provides for Apache
+	  configuration, please see <a class="xref" href="directives.html" title="Apache Rivet 3.1 Configuration">the section called “Apache Rivet 3.1 Configuration”</a>.
+	</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="cmake.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Rivet 3.1 </td><td width="20%" align="center"><a accesskey="h" hre [...]
diff --git a/rivet/manual3.1/internals.html b/rivet/manual3.1/internals.html
new file mode 100644
index 0000000..8f8fb3d
--- /dev/null
+++ b/rivet/manual3.1/internals.html
@@ -0,0 +1,315 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Internals</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="help.html" title="Resources - How to Get Help"><link rel="next" href="lazybridge.html" title="Example: the “Lazy” bridge" [...]
+      This section easily falls out of date, as new code is added, old
+      code is removed, and changes are made.  The best place to look
+      is the source code itself.  If you are interested in the changes
+      themselves, the Subversion revision control system
+      (<span style="font-family:monospace"><span class="command"><strong>svn</strong></span></span>) can provide you with information about
+      what has been happening with the code.
+    </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4372"></a>Rivet approach to Apache Multiprocessing Models</h3></div></div></div><p style="width:90%">
+    		The Apache HTTP web server has an extremely modular architecture
+    		that made it very popular among web developers. Most of the server
+    		features can be implemented in external modules, including some of
+    		the way the server interfaces to the operative system. The multiprocessing
+    		modules are meant to provide different models for distributing the
+    		server workload but also to cope with different operative systems
+    		having their specific architectures and services.
+    	</p><p style="width:90%">
+    		From the very beginning mod_rivet was designed to work with
+    		the  <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork MPM</a>
+    		MPM (Multi Processing Module) which assumes the OS to have 'fork' capabilities.
+    		This prerequisite basically restricted mod_rivet to work only with
+    		Unix-like operative systems. Starting with version 3.0 we reorganized
+    		mod_rivet to offer a design that could work together with more MPM and
+    		hopefully pave the way to support different OS that have no 'fork'
+    		call. At the same time we tried to preserve some of the basic
+    		features of mod_rivet when working with the prefork MPM, chiefly the feature of
+    		the Unix fork system call of 'cloning' a parent process
+    		memory into its child, thus allowing fast initialization of interpreters.
+    	</p><p style="width:90%">
+    		The central design of mod_rivet now relies on the idea of <span class="quote">“<span class="quote">MPM bridges</span>”</span>,
+    		loadable modules that are responsible to adapt the module procedural design to
+    		a given class of Apache MPMs. This design is open to the development of more
+    		MPM bridges coping with different multi-processing models but also to the development of
+    		different approaches to resource consumption and workload balance. By now we have 3 bridges: 
+    	</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">rivet_prefork_mpm.c: a bridge for the prefork MPM</li><li class="listitem">rivet_worker_mpm.c: a threaded bridge creating a pool of threads
+    		each running Tcl interpreters and communicating with the worker MPM threads
+    		through a thread safe queue. This bridge is needed by the worker MPM.</li><li class="listitem">rivet_lazy_mpm.c: a threaded bridge where Tcl threads are
+    		started <span class="quote">“<span class="quote">on demand</span>”</span>. The bridge creates no threads and Tcl interpreters
+    		at start up and only when requests come in Tcl execution threads are created.
+    		This bridge is explained in detail in the <a class="xref" href="lazybridge.html" title="Example: the “Lazy” bridge">the section called “Example: the <span class="quote">“<span class="quote">Lazy</span>”</span> bridge”</a>.     		
+    		Since the resource demand at startup is minimal this bridge should suite 
+    		development machines that go through frequent web server restarts.</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4385"></a>mod_rivet MPM Bridge callbacks</h3></div></div></div><p style="width:90%">
+    		A bridge is a loadable library implementing different ways to handle
+    		specific features needed to mod_rivet. It was originally meant as a way
+    		to handle the prefork/worker/event MPM specificities that prevented mod_rivet
+    		from supporting each of them, at the same time avoiding the need to stuff the 
+    		code with conditional statements that would have implied useless complexity (an
+    		instance of the Apache web server can run only an MPM at a time), 
+    		error prone programming and performance costs. 
+    		New bridges could be imagined also to implement different models of workload
+    		and resource management (like the resources demanded by the Tcl interpreters). 
+			We designed an interface between the core of mod_rivet and its MPM bridges 
+			based on a set of functions defined in the rivet_bridge_table structure. 
+    	</p><pre class="programlisting">typedef struct _mpm_bridge_table {
+    RivetBridge_ServerInit    *mpm_server_init;
+    RivetBridge_ChildInit     *mpm_child_init;
+    RivetBridge_Request       *mpm_request;
+    RivetBridge_Finalize      *mpm_finalize;
+    RivetBridge_Exit_Handler  *mpm_exit_handler;
+    RivetBridge_Thread_Interp *mpm_thread_interp;
+} rivet_bridge_table;</pre><p style="width:90%">
+			</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span class="emphasis"><em>mpm_server_init</em></span>: pointer to any
+					specific server inititalization function. This field can be NULL
+					if no bridge specific initialization has to be done. The core of
+					mod_rivet runs the <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> before
+					calling this function.</li><li class="listitem"><span class="emphasis"><em>mpm_child_init</em></span>: Bridge specific
+					child process initialization. If the pointer is assigned with
+					a non-NULL value the function is called by Rivet_ChildInit. 
+				</li><li class="listitem"><span class="emphasis"><em>mpm_request</em></span>: This pointer must
+					be assigned with a valid function pointer to the content generator
+					implemented by the bridge. If the pointer is not defined the Apache
+					web server will stop during start up. This condition is motivated by
+					the need of avoiding useless testing of the pointer. The fundamental
+					purpose of a content generator module (like mod_rivet) is to respond
+					to requests creating content, thus whatever it is
+					a content generating function must exist (during the early stages of
+					development you can create a simple test function for that). In a
+					threaded MPM this function typically prepares the request processing 
+					stuffing somewhere the pointer to the request_rec structure 
+					passed by the web server and then it calls some method to communicate
+					these data to the Tcl execution thread waiting for result to be
+					returned. The <span class="quote">“<span class="quote">prefork</span>”</span> bridge is an exception since there
+					are no multiple threads and the bridge calls directly Rivet_SendContent
+				</li><li class="listitem"><span class="emphasis"><em>mpm_finalize</em></span>: pointer to a finalization
+					function called during a child process exit. This function is registered
+					as child process memory pool cleanup function. If the pointer is NULL
+					the pool is given a default cleanup function (apr_pool_cleanup_null) 
+					defined in src/mod_rivet/mod_rivet.c. For instance the finalize function
+					in the <span class="emphasis"><em>worker</em></span> MPM bridge notifies
+					a supervisor thread demanding the whole pool of threads running Tcl 
+					interpreters to orderly exit. This pointer can be NULL if the bridge 
+					has no special need when a child process must exit (unlikely if you have
+					multiple threads running)
+				</li><li class="listitem"><span class="emphasis"><em>mpm_exit_handler</em></span>: mod_rivet replaces
+					the core <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command with a new one
+					(<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>). This command must handle 
+					the process exit in the best possible way for the bridge and the
+					threading model it implements (for the 2 current threaded bridges this implies
+					signaling the threads to exit). The <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span>
+					actually doesn't terminate the process, but interrupts execution
+					returning a specific error code commands <span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span>
+					and <span style="font-family:monospace"><span class="command"><strong>::rivet::try</strong></span></span> can detect. Before the process is terminated
+					the <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> script is fired and <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_code</strong></span></span>
+					returns a message describing the exit condition. For instance
+					the <span class="emphasis"><em>worker</em></span> MPM bridge the finalize function
+					is called after the current thread itself is set up for termination.
+					See function Rivet_ExitCmd in
+					<a class="ulink" href="https://svn.apache.org/repos/asf/tcl/rivet/trunk/src/mod_rivet_ng/rivetCore.c" target="_top">rivetCore.c</a>
+					to have details on how and at what stage this callback is invoked.
+				</li><li class="listitem"><span class="emphasis"><em>mpm_thread_interp</em></span> must be a function returning
+					the interpreter object (a pointer to record of type
+					<span style="font-family:monospace"><span class="command"><strong>rivet_thread_interp</strong></span></span>) associated
+					to a given configuration as stored in a <span style="font-family:monospace"><span class="command"><strong>rivet_server_conf*</strong></span></span>
+					object. This element was temporarily introduced in the 
+					<span style="font-family:monospace"><span class="command"><strong>mpm_bridge_table</strong></span></span> table and should be accessed
+					through the macro RIVET_PEEK_INTERP.
+					<pre class="programlisting">interp_obj = RIVET_PEEK_INTERP(private,private-&gt;conf);</pre>
+					Every bridge implementation should have its own way to store interpreter data and manage their
+					status. So this macro (and associated function)	should hide from the module core function
+					the specific approach followed in a particular bridge
+				</li></ul></div><p style="width:90%">
+		</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4419"></a>Server Initialization and MPM Bridge</h3></div></div></div><p style="width:90%">
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4422"></a>RivetChan</h3></div></div></div><p style="width:90%">
+			The <span class="structname">RivetChan</span> system was created in
+			order to have an actual Tcl channel that we could redirect
+			standard output to.  This enables us use, for instance, the
+			regular <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> command in .rvt pages.  It
+			works by creating a channel that buffers output, and, at
+			predetermined times, passes it on to Apache's I/O system.
+			Tcl's regular standard output is replaced with an instance of
+			this channel type, so that, by default, output will go to the
+			web page. 
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4427"></a>The <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> Command</h3></div></div></div><p style="width:90%">
+			Rivet aims to run standard Tcl code with as few surprises as
+			possible.  At times this involves some compromises - in this
+			case regarding the <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> command.  The
+			problem is that the command will create truly global
+			variables.  If the user is just cut'n'pasting some Tcl code
+			into Rivet, they most likely just want to be able to share the
+			variable in question with other procs, and don't really care
+			if the variable is actually persistant between pages.  The
+			solution we have created is to create a proc
+			<span style="font-family:monospace"><span class="command"><strong>::request::global</strong></span></span> that takes the place of
+			the <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> command in Rivet templates.  If
+			you really need a true global variable, use either
+			<span style="font-family:monospace"><span class="command"><strong>::global</strong></span></span> or add the :: namespace qualifier
+			to variables you wish to make global.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4435"></a>Page Parsing, Execution and Caching</h3></div></div></div><p style="width:90%">
+			When a Rivet page is requested, it is transformed into an
+			ordinary Tcl script by parsing the file for the &lt;? ?&gt;
+			processing instruction tags.  Everything outside these tags
+			becomes a large <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> statement, and
+			everything inside them remains Tcl code.
+      </p><p style="width:90%">
+			Each .rvt file is evaluated in its own
+			<code class="constant">::request</code> namespace, so that it is not
+			necessary to create and tear down interpreters after each
+			page.  By running in its own namespace, though, each page will
+			not run afoul of local variables created by other scripts,
+			because they will be deleted automatically when the namespace
+			goes away after Apache finishes handling the request.
+	      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+		    One current problem with this system is that while
+		    variables are garbage collected, file handles are not, so
+		    that it is very important that Rivet script authors make
+		    sure to close all the files they open.
+	      </td></tr></table></div><p style="width:90%">
+      </p><p style="width:90%">
+	    	After a script has been loaded and parsed into it's "pure Tcl"
+	    	form, it is also cached, so that it may be used in the future
+	    	without having to reload it (and re-parse it) from the disk.
+	    	The number of scripts stored in memory is configurable.  This
+	    	feature can significantly improve performance.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4443"></a>Extending Rivet by developing C code procedures</h3></div></div></div><p style="width:90%">
+            Rivet endows the Tcl interpreter with new commands
+            serving as interface between the application layer and the
+            Apache web server. Many of these commands
+            are meaningful only when a HTTP request is under way and 
+            therefore a request_rec object allocated by the framework 
+            is existing and was passed to mod_rivet as argument of a callback. 
+            In case commands have to gain access to a valid request_rec
+            object the C procedure must check if such 
+            a pointer exists and it's initialized
+            with valid data. For this purpose the procedure handling requests 
+            (Rivet_SendContent) makes a copy of such pointer and keeps it
+            in an internal structure. The copy is set to NULL just before
+            returning to the framework, right after mod_rivet's has
+            carried out its request processing. When the pointer copy is NULL 
+            the module is outside any request processing and this
+            condition invalidates the execution of
+            many of the Rivet commands. In case they are called  
+            (for example in a ChildInitScript, GlobalInitScript, 
+            ServerInitScript or ChildExitScript) they fail with a Tcl error 
+            you can handle with a <span style="font-family:monospace"><span class="command"><strong>catch</strong></span></span> command.
+        </p><p style="width:90%">            
+            For this purpose in src/rivet.h the macro
+            CHECK_REQUEST_REC was defined accepting two arguments: the thread
+				private data object and the command name. If the pointer is NULL
+            the macro calls Tcl_NoRequestRec and returns TCL_ERROR
+            causing the command to fail. These are the steps to follow
+            in order to write a new C language command for mod_rivet 
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+                Define the command and associated C language procedure
+                in src/mod_rivet_ng/rivetCore.c using the macro
+                RIVET_OBJ_CMD<pre class="programlisting">RIVET_OBJ_CMD("mycmd",Rivet_MyCmd,private)</pre>
+                This macro ensures the command is defined as <span style="font-family:monospace"><span class="command"><strong>::rivet::mycmd</strong></span></span>
+                and its ClientData pointer is defined with the thread private data
+            </li><li class="listitem">
+                Add the code of Rivet_MyCmd to src/mod_rivet_ng/rivetCore.c (in case
+                the code resides in a different file also src/Makefile.am should be
+                changed to tell the build system how to compile the code and
+                link it into mod_rivet.so)
+            </li><li class="listitem">
+                If the code must have access to the request record in <span style="font-family:monospace"><span class="command"><strong>private-&gt;r</strong></span></span>
+                use the macro THREAD_PRIVATE_DATA in order to claim the thread private data, then
+                check for the validity of the pointer using the macro 
+                CHECK_REQUEST_REC(private,"::rivet::&lt;cmd_name&gt;")
+
+                <pre class="programlisting">TCL_CMD_HEADER(Rivet_MyCmd)
+{
+    /* we have to get the thread private data */
+    
+    THREAD_PRIVATE_DATA(private)
+
+	/* if ::rivet::mycmd works within a request processing we have
+	 * to check if 'private' is bringing a non null request_rec pointer
+	 */
+    
+    CHECK_REQUEST_REC(private,"::rivet::mycmd");
+    ....
+    
+    return TCL_OK;
+}</pre></li><li class="listitem">
+                Add a test for this command in tests/checkfails.tcl. For 
+                instance
+                <pre class="programlisting">...
+check_fail no_body
+check_fail virtual_filename unkn
+check_fail my_cmd &lt;arg1&gt; &lt;arg2&gt;
+....</pre>
+                Where &lt;arg1&gt; &lt;arg2&gt; are optional 
+                arguments in case the command has different forms depending on
+                the arguments. Then, if <span style="font-family:monospace"><span class="command"><strong>::rivet::mycmd</strong></span></span> must fail also
+                tests/failtest.tcl should modified as
+                <pre class="programlisting">virtual_filename-&gt;1
+mycmd-&gt;1</pre>
+                The value associated to the test must be 0 in case the
+                command doesn't need to test the <span style="font-family:monospace"><span class="command"><strong>private-&gt;r</strong></span></span> pointer.
+            </li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4467"></a>Debugging Rivet and Apache</h3></div></div></div><p style="width:90%">
+			If you are interested in hacking on Rivet, you're welcome to
+			contribute!  Invariably, when working with code, things go
+			wrong, and it's necessary to do some debugging.  In a server
+			environment like Apache, it can be a bit more difficult to
+			find the right way to do this.  Here are some techniques to
+			try.
+      </p><p style="width:90%">
+			The first thing you should know is that Apache can be launched
+			as a <span class="emphasis"><em>single process</em></span> with the
+			-X argument:
+		</p><pre class="programlisting">httpd -X</pre>.
+
+		<p style="width:90%">
+			On Linux, one of the first things to try is the system call
+			tracer, <span style="font-family:monospace"><span class="command"><strong>strace</strong></span></span>.  You don't even have to
+			recompile Rivet or Apache for this to work.
+      </p><pre class="programlisting">strace -o /tmp/outputfile -S 1000 httpd -X</pre><p style="width:90%">
+      	This command will run httpd in the system call tracer,
+			which leaves its output (there is potentially a lot of it) in
+			<code class="filename">/tmp/outputfile</code>.  The -S
+			option tells <span style="font-family:monospace"><span class="command"><strong></strong></span></span>strace to only record the
+			first 1000 bytes of a syscall.  Some calls such as
+			<code class="function">write</code> can potentially be much longer than
+			this, so you may want to increase this number.  The results
+			are a list of all the system calls made by the program.  You
+			want to look at the end, where the failure presumably occured,
+			to see if you can find anything that looks like an error.  If
+			you're not sure what to make of the results, you can always
+			ask on the Rivet development mailing list.
+      </p><p style="width:90%">
+			If <span style="font-family:monospace"><span class="command"><strong>strace</strong></span></span> (or its equivalent on your
+			operating system) doesn't answer your question, it may be time
+			to debug Apache and Rivet.  To do this, you will need to rebuild mod_rivet.
+			First of all you have to configure the build by running the
+			<span style="font-family:monospace"><span class="command"><strong>./configure</strong></span></span> script with the
+			-enable-symbols option and after you have
+			set the CFLAGS and LDFLAGS environment variables
+      </p><pre class="programlisting">export CFLAGS="-g -O0"
+export LDFLAGS="-g"
+./configure --enable-symbols ......
+make
+make install</pre><p style="width:90%">
+			Arguments to <span style="font-family:monospace"><span class="command"><strong>./configure</strong></span></span> must fit your Apache HTTP
+			web server installation. See the output produced by
+		</p><pre class="programlisting">./configure --help</pre><p style="width:90%">
+			And check the <a class="xref" href="installation.html" title="Apache Rivet 3.1 Installation">the section called “Apache Rivet 3.1 Installation”</a> page to
+			have further information.
+			Since it's easier to debug a single process, we'll still run
+			Apache in single process mode with -X:
+      </p><pre class="programlisting">@ashland [~] $ gdb /usr/sbin/apache.dbg
+GNU gdb 5.3-debian
+Copyright 2002 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB.  Type "show warranty" for details.
+This GDB was configured as "powerpc-linux"...
+(gdb) run -X
+Starting program: /usr/sbin/apache.dbg -X
+[New Thread 16384 (LWP 13598)]
+.
+.
+.</pre><p style="width:90%">
+			When your apache session is up and running, you can request a
+			web page with the browser, and see where things go wrong (if
+			you are dealing with a crash, for instance).
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="help.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="lazybridge.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Resources - How to Get Help </td><td width="20%" align="center"><a accessk [...]
diff --git a/rivet/manual3.1/lassign_array.html b/rivet/manual3.1/lassign_array.html
new file mode 100644
index 0000000..80f3863
--- /dev/null
+++ b/rivet/manual3.1/lassign_array.html
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lassign_array</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="inspect.html" title="inspect"><link rel="next" href="lempty.html" title="lempty"></head><body bgcolor="w [...]
+                <span style="font-family:monospace"><span class="command"><strong>lassign_array</strong></span></span> is an utility command inspired by the same Tclx command and 
+                with a close resemblance with Tcl's <span style="font-family:monospace"><span class="command"><strong>lassign</strong></span></span> for assigning list elements to variables.
+                <span style="font-family:monospace"><span class="command"><strong>lassign_array</strong></span></span> first argument is a list of values to be assigned to an array that must be 
+                given as second argument. The remaining arguments are the array's variable names which will store
+                as values the elements of the list. Variables names don't matching values in the list are given an empty string. 
+                Unassigned list elements are returned as a list.
+	       </p><pre class="programlisting">::rivet::lassign_array {1 2 3 4} assigned_array a b c d
+parray assigned_array
+<span class="strong"><strong>assigned_array</strong></span>
+assigned_array(a) = 1
+assigned_array(b) = 2
+assigned_array(c) = 3
+assigned_array(d) = 4
+
+set rem [::rivet::lassign_array {1 2 3 4 5 6 7} assigned_array a b c d]
+puts $rem
+5 6 7</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="inspect.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lempty.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual3.1/lazybridge.html b/rivet/manual3.1/lazybridge.html
new file mode 100644
index 0000000..7a1c179
--- /dev/null
+++ b/rivet/manual3.1/lazybridge.html
@@ -0,0 +1,407 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Example: the “Lazy” bridge</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="internals.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#84008 [...]
+	    	The 'bridge' concept was introduced to cope with the ability of 
+	    	the Apache HTTP web server to adopt different multiprocessing 
+	    	models by loading one of the available MPMs (Multi Processing Modules). 
+			A bridge's task is to let mod_rivet fit the selected multiprocessing
+			model in the first place. Still separating mod_rivet core
+			functions from the MPM machinery provided also a solution for
+			implementing a flexible and extensible design that enables 
+			a programmer to develop alternative approaches to workload and 
+			resource management. 
+   	</p><p style="width:90%">
+   		The Apache HTTP web server demands its modules to
+   		run with any MPM irrespective of its internal architecture and its
+   		a general design constrain to make no assumptions about the MPM. 
+   		This clashes with some requirements of threaded builds of Tcl. 
+   		First of all Tcl is itself threaded (unless threads are disabled 
+   		at compile time) and many of the basic Tcl data structures (namely Tcl_Obj) 
+   		cannot be safely shared among threads. 
+   		This demands a Tcl interpreters be run 
+   		on separated threads communicating with the HTTP web server 
+   		through suitable methods.
+   	</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4501"></a>Lazy bridge data structures</h3></div></div></div><p style="width:90%">
+	   The lazy bridge was initially developed to outline the basic tasks
+    	carried out by each function making a rivet MPM bridge. 
+    	The lazy bridge attempts to be minimalist
+    	but it's nearly fully functional, only a few configuration
+    	directives (SeparateVirtualInterps and SeparateChannel)
+    	are ignored because fundamentally incompatible. 
+    	The bridge is experimental but perfectly fit for many applications,
+    	for example it's good on development machines where server restarts
+    	are frequent. 
+    </p><p style="width:90%">
+    	This is the lazy bridge jump table, as such it defines the functions
+    	implemented by the bridge.
+    </p><pre class="programlisting">RIVET_MPM_BRIDGE {
+    NULL,
+    Lazy_MPM_ChildInit,
+    Lazy_MPM_Request,
+    Lazy_MPM_Finalize,
+    Lazy_MPM_ExitHandler,
+    Lazy_MPM_Interp
+};</pre><p style="width:90%">
+		After the server initialization stage, child processes read the configuration 
+		and modules build their own configuration representation. MPM bridges hooks into
+		this stage to store and/or build data structures relevant to their design.
+		A fundamental information built during this stage is the database of virtual hosts.
+		The lazy bridge keeps an array of virtual host descriptor pointers
+		each of them referencing an instance of the following structure.
+	</p><pre class="programlisting">/* virtual host descriptor */
+
+typedef struct vhost_iface {
+    int                 idle_threads_cnt;   /* idle threads for the virtual hosts       */
+    int                 threads_count;      /* total number of running and idle threads */
+    apr_thread_mutex_t* mutex;              /* mutex protecting 'array'                 */
+    apr_array_header_t* array;              /* LIFO array of lazy_tcl_worker pointers   */
+} vhost;</pre><p style="width:90%">
+ 		A pointer to this data structure array is stored in the bridge status which a basic
+ 		structure that likely every bridge has to create.
+	</p><pre class="programlisting">/* Lazy bridge internal status data */
+
+typedef struct mpm_bridge_status {
+    apr_thread_mutex_t* mutex;
+    int                 exit_command;
+    int                 exit_command_status;
+    int                 server_shutdown;    /* the child process is shutting down  */
+    vhost*              vhosts;             /* array of vhost descriptors          */
+} mpm_bridge_status;</pre><p style="width:90%">
+		By design the bridge must create exactly one instance of <span style="font-family:monospace"><span class="command"><strong>mpm_bridge_status</strong></span></span>
+		and store its pointer in <span style="font-family:monospace"><span class="command"><strong>module_globals-&gt;mpm</strong></span></span>.
+		This is usually done at the very beginning of the child init script function pointed by 
+		<span style="font-family:monospace"><span class="command"><strong>mpm_child_init</strong></span></span> in the <span style="font-family:monospace"><span class="command"><strong>rivet_bridge_table</strong></span></span> structure.
+		For the lazy bridge this field in the jump table points to <span style="font-family:monospace"><span class="command"><strong>Lazy_MPM_ChildInit</strong></span></span>
+		function
+	</p><pre class="programlisting">/*
+ * -- Lazy_MPM_ChildInit
+ * 
+ * child process initialization. This function prepares the process
+ * data structures for virtual hosts and threads management
+ *
+ */
+
+void Lazy_MPM_ChildInit (apr_pool_t* pool, server_rec* server)
+{
+    apr_status_t    rv;
+    server_rec*     s;
+    server_rec*     root_server = module_globals-&gt;server;
+
+    module_globals-&gt;mpm = apr_pcalloc(pool,sizeof(mpm_bridge_status));
+
+    /* This mutex is only used to consistently carry out these 
+     * two tasks
+     *
+     *  - set the exit status of a child process (hopefully will be 
+     *    unnecessary when Tcl is able again of calling 
+     *    Tcl_DeleteInterp safely) 
+     *  - control the server_shutdown flag. Actually this is
+     *    not entirely needed because once set this flag 
+     *    is never reset to 0
+     *
+     */
+
+    rv = apr_thread_mutex_create(&amp;module_globals-&gt;mpm-&gt;mutex,
+                                  APR_THREAD_MUTEX_UNNESTED,pool);
+    ap_assert(rv == APR_SUCCESS);
+
+    /* the mpm-&gt;vhosts array is created with as many entries as the number of
+     * configured virtual hosts */
+
+    module_globals-&gt;mpm-&gt;vhosts = 
+        (vhost *) apr_pcalloc(pool,module_globals-&gt;vhosts_count*sizeof(vhost));
+    ap_assert(module_globals-&gt;mpm-&gt;vhosts != NULL);
+
+    /*
+     * Each virtual host descriptor has its own mutex controlling
+     * the queue of available threads
+     */
+     
+    for (s = root_server; s != NULL; s = s-&gt;next)
+    {
+        int                 vh;
+        apr_array_header_t* array;
+        rivet_server_conf*  rsc = RIVET_SERVER_CONF(s-&gt;module_config);
+
+        vh = rsc-&gt;idx;
+        rv = apr_thread_mutex_create(&amp;module_globals-&gt;mpm-&gt;vhosts[vh].mutex,
+                                      APR_THREAD_MUTEX_UNNESTED,pool);
+        ap_assert(rv == APR_SUCCESS);
+        array = apr_array_make(pool,0,sizeof(void*));
+        ap_assert(array != NULL);
+        module_globals-&gt;mpm-&gt;vhosts[vh].array = array;
+        module_globals-&gt;mpm-&gt;vhosts[vh].idle_threads_cnt = 0;
+        module_globals-&gt;mpm-&gt;vhosts[vh].threads_count = 0;
+    }
+    module_globals-&gt;mpm-&gt;server_shutdown = 0;
+}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4517"></a>Handling Tcl's exit core command</h3></div></div></div><p style="width:90%">
+		Most of the fields in the <span style="font-family:monospace"><span class="command"><strong>mpm_bridge_status</strong></span></span> are meant to deal 
+		with the child exit process. Rivet supersedes the Tcl core's exit function
+		with a <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> function and it does so in order to curb the effects
+		of the core function that would force a child process to immediately exit. 
+		This could have unwanted side effects, like skipping the execution of important
+		code dedicated to release locks or remove files. For threaded MPMs the abrupt
+		child process termination could be even more disruptive as all the threads
+		will be deleted without warning.	
+	</p><p style="width:90%">
+		The <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> implementation calls the function pointed by
+		<span style="font-family:monospace"><span class="command"><strong>mpm_exit_handler</strong></span></span> which is bridge specific. Its main duty
+		is to take the proper action in order to release resources and force the
+		bridge controlled threads to exit.  
+	</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+		Nonetheless the <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command should be avoided in ordinary mod_rivet
+		programming. We cannot stress this point enough. If your application must bail out
+		for some reason focus your attention on the design to find the most appropriate
+		route to exit and whenever possible avoid 
+		calling <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> at all (which basically wraps a
+		C call to Tcl_Exit). Anyway the Rivet implementation partially transforms
+		<span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> in a sort of special <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span>
+		implementation whose eventual action is to call the <span style="font-family:monospace"><span class="command"><strong>Tcl_Exit</strong></span></span>
+		library call. See the <span style="font-family:monospace"><span class="command"><strong><a class="xref" href="exit.html" title="exit">exit</a></strong></span></span>
+		command for further explanations.
+	</td></tr></table></div><p style="width:90%">
+		Both the worker bridge and lazy bridge 
+		implementations of <span style="font-family:monospace"><span class="command"><strong>mpm_exit_handler</strong></span></span> call the function pointed 
+		by <span style="font-family:monospace"><span class="command"><strong>mpm_finalize</strong></span></span> which also the function called by the framework 
+		when the web server shuts down.
+		See these functions' code for further details, they are very easy to 
+		read and understand
+	</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4536"></a>HTTP request processing with the lazy bridge</h3></div></div></div><p style="width:90%">
+		Requests processing with the lazy bridge is done by determining for which
+		virtual host a request was created. The <span style="font-family:monospace"><span class="command"><strong>rivet_server_conf</strong></span></span>
+		structure keeps a numerical index for each virtual host. This index is used
+		to reference the virtual host descriptor and from it the request
+		handler tries to gain lock on the mutex protecting the array of <span style="font-family:monospace"><span class="command"><strong>lazy_tcl_worker</strong></span></span>
+		structure pointers. Each instance of this structure is a descriptor of a thread created for
+		a specific virtual host; threads available for processing have their descriptor
+		on that array and the handler callback will pop the first
+		<span style="font-family:monospace"><span class="command"><strong>lazy_tcl_worker</strong></span></span> pointer to signal the thread
+		there is work to do for it. This is the <span style="font-family:monospace"><span class="command"><strong>lazy_tcl_worker</strong></span></span> structure
+	</p><pre class="programlisting">/* lazy bridge Tcl thread status and communication variables */
+
+typedef struct lazy_tcl_worker {
+    apr_thread_mutex_t* mutex;
+    apr_thread_cond_t*  condition;
+    int                 status;
+    apr_thread_t*       thread_id;
+    server_rec*         server;
+    request_rec*        r;
+    int                 ctype;
+    int                 ap_sts;
+    int                 nreqs;
+    rivet_server_conf*  conf;               /* rivet_server_conf* record   */
+} lazy_tcl_worker;</pre><p style="width:90%">
+		The server field is assigned with the virtual host server record. Whereas the <span style="font-family:monospace"><span class="command"><strong>conf</strong></span></span>
+		field keeps the pointer to a run time computed <span style="font-family:monospace"><span class="command"><strong>rivet_server_conf</strong></span></span>. This structure
+		may change from request to request because the request configuration changes when the URL may refer 
+		to directory specific configuration in <span style="font-family:monospace"><span class="command"><strong>&lt;Directory ...&gt;...&lt;/Directory&gt;</strong></span></span> 
+		blocks
+	</p><p style="width:90%">
+		The Lazy bridge will not start any Tcl worker thread at server startup, but it will
+		wait for requests to come in and then if worker threads are sitting on a virtual host queue
+		a thread's <span style="font-family:monospace"><span class="command"><strong>lazy_tcl_worker</strong></span></span> structure pointer is popped
+		and the request handed to it. If no available thread is on the queue a new worker thread is 
+		created. The code in the <span style="font-family:monospace"><span class="command"><strong>Lazy_MPM_Request</strong></span></span> easy to understand and shows
+		how this is working
+	</p><pre class="programlisting">/* -- Lazy_MPM_Request
+ *
+ * The lazy bridge HTTP request function. This function 
+ * stores the request_rec pointer into the lazy_tcl_worker
+ * structure which is used to communicate with a worker thread.
+ * Then the array of idle threads is checked and if empty
+ * a new thread is created by calling create_worker
+ */
+
+int Lazy_MPM_Request (request_rec* r,rivet_req_ctype ctype)
+{
+    lazy_tcl_worker*    w;
+    int                 ap_sts;
+    rivet_server_conf*  conf = RIVET_SERVER_CONF(r-&gt;server-&gt;module_config);
+    apr_array_header_t* array;
+    apr_thread_mutex_t* mutex;
+
+    mutex = module_globals-&gt;mpm-&gt;vhosts[conf-&gt;idx].mutex;
+    array = module_globals-&gt;mpm-&gt;vhosts[conf-&gt;idx].array;
+    apr_thread_mutex_lock(mutex);
+
+   /* This request may have come while the child process was 
+    * shutting down. We cannot run the risk that incoming requests 
+    * may hang the child process by keeping its threads busy, 
+    * so we simply return an HTTP_INTERNAL_SERVER_ERROR. 
+    * This is hideous and explains why the 'exit' commands must 
+    * be avoided at any costs when programming with mod_rivet
+    */
+
+    if (module_globals-&gt;mpm-&gt;server_shutdown == 1) {
+        ap_log_rerror(APLOG_MARK, APLOG_ERR, APR_EGENERAL, r,
+                      MODNAME ": http request aborted during child process shutdown");
+        apr_thread_mutex_unlock(mutex);
+        return HTTP_INTERNAL_SERVER_ERROR;
+    }
+
+    /* If the array is empty we create a new worker thread */
+
+    if (apr_is_empty_array(array))
+    {
+        w = create_worker(module_globals-&gt;pool,r-&gt;server);
+        (module_globals-&gt;mpm-&gt;vhosts[conf-&gt;idx].threads_count)++; 
+    }
+    else
+    {
+        w = *(lazy_tcl_worker**) apr_array_pop(array);
+    }
+
+    apr_thread_mutex_unlock(mutex);
+    
+    apr_thread_mutex_lock(w-&gt;mutex);
+    w-&gt;r        = r;
+    w-&gt;ctype    = ctype;
+    w-&gt;status   = init;
+    w-&gt;conf     = conf;
+    apr_thread_cond_signal(w-&gt;condition);
+
+    /* we wait for the Tcl worker thread to finish its job */
+
+    while (w-&gt;status != done) {
+        apr_thread_cond_wait(w-&gt;condition,w-&gt;mutex);
+    } 
+    ap_sts = w-&gt;ap_sts;
+
+    w-&gt;status = idle;
+    w-&gt;r      = NULL;
+    apr_thread_cond_signal(w-&gt;condition);
+    apr_thread_mutex_unlock(w-&gt;mutex);
+
+    return ap_sts;
+}</pre><p style="width:90%">
+		After a request is processed the worker thread returns its own
+		lazy_tcl_worker descriptor to the array and then waits
+		on the condition variable used to control and synchronize the bridge 
+		threads with the Apache worker threads. The worker thread code
+		is the request_processor function
+	</p><pre class="programlisting">/*
+ * -- request_processor
+ *
+ * The lazy bridge worker thread. This thread prepares its control data and 
+ * will serve requests addressed to a given virtual host. Virtual host server
+ * data are stored in the lazy_tcl_worker structure stored in the generic 
+ * pointer argument 'data'
+ * 
+ */
+
+static void* APR_THREAD_FUNC request_processor (apr_thread_t *thd, void *data)
+{
+    lazy_tcl_worker*        w = (lazy_tcl_worker*) data; 
+    rivet_thread_private*   private;
+    int                     idx;
+    rivet_server_conf*      rsc;
+
+    /* The server configuration */
+
+    rsc = RIVET_SERVER_CONF(w-&gt;server-&gt;module_config);
+
+    /* Rivet_ExecutionThreadInit creates and returns the thread private data. */
+
+    private = Rivet_ExecutionThreadInit();
+
+    /* A bridge creates and stores in private-&gt;ext its own thread private
+     * data. The lazy bridge is no exception. We just need a flag controlling 
+     * the execution and an intepreter control structure */
+
+    private-&gt;ext = apr_pcalloc(private-&gt;pool,sizeof(mpm_bridge_specific));
+    private-&gt;ext-&gt;keep_going = 1;
+    private-&gt;ext-&gt;interp = Rivet_NewVHostInterp(private-&gt;pool,w-&gt;server);
+    private-&gt;ext-&gt;interp-&gt;channel = private-&gt;channel;
+
+    /* The worker thread can respond to a single request at a time therefore 
+     * must handle and register its own Rivet channel */
+
+    Tcl_RegisterChannel(private-&gt;ext-&gt;interp-&gt;interp,*private-&gt;channel);
+
+    /* From the rivet_server_conf structure we determine what scripts we
+     * are using to serve requests */
+
+    private-&gt;ext-&gt;interp-&gt;scripts = 
+            Rivet_RunningScripts (private-&gt;pool,private-&gt;ext-&gt;interp-&gt;scripts,rsc);
+
+    /* This is the standard Tcl interpreter initialization */
+
+    Rivet_PerInterpInit(private-&gt;ext-&gt;interp,private,w-&gt;server,private-&gt;pool);
+    
+    /* The child initialization is fired. Beware of the terminologic 
+     * trap: we inherited from prefork only modules the term 'child'
+     * meaning 'child process'. In this case the child init actually
+     * is a worker thread initialization, because in a threaded module
+     * this is the agent playing the same role a child process plays
+     * with the prefork bridge */
+
+    Lazy_RunConfScript(private,w,child_init);
+
+    /* The thread is now set up to serve request within the the 
+     * do...while loop controlled by private-&gt;keep_going  */
+
+    idx = w-&gt;conf-&gt;idx;
+    apr_thread_mutex_lock(w-&gt;mutex);
+    do 
+    {
+        module_globals-&gt;mpm-&gt;vhosts[idx].idle_threads_cnt++;
+        while ((w-&gt;status != init) &amp;&amp; (w-&gt;status != thread_exit)) {
+            apr_thread_cond_wait(w-&gt;condition,w-&gt;mutex);
+        } 
+        if (w-&gt;status == thread_exit) {
+            private-&gt;ext-&gt;keep_going = 0;
+            continue;
+        }
+
+        w-&gt;status = processing;
+        module_globals-&gt;mpm-&gt;vhosts[idx].idle_threads_cnt--;
+
+        /* Content generation */
+
+        private-&gt;req_cnt++;
+        private-&gt;ctype = w-&gt;ctype;
+
+        w-&gt;ap_sts = Rivet_SendContent(private,w-&gt;r);
+
+        if (module_globals-&gt;mpm-&gt;server_shutdown) continue;
+
+        w-&gt;status = done;
+        apr_thread_cond_signal(w-&gt;condition);
+        while (w-&gt;status == done) {
+            apr_thread_cond_wait(w-&gt;condition,w-&gt;mutex);
+        } 
+ 
+        /* rescheduling itself in the array of idle threads */
+       
+        apr_thread_mutex_lock(module_globals-&gt;mpm-&gt;vhosts[idx].mutex);
+        *(lazy_tcl_worker **) apr_array_push(module_globals-&gt;mpm-&gt;vhosts[idx].array) = w;
+        apr_thread_mutex_unlock(module_globals-&gt;mpm-&gt;vhosts[idx].mutex);
+
+    } while (private-&gt;ext-&gt;keep_going);
+    apr_thread_mutex_unlock(w-&gt;mutex);
+    
+    ap_log_error(APLOG_MARK,APLOG_DEBUG,APR_SUCCESS,w-&gt;server,"processor thread orderly exit");
+    Lazy_RunConfScript(private,w,child_exit);
+
+    apr_thread_mutex_lock(module_globals-&gt;mpm-&gt;vhosts[idx].mutex);
+    (module_globals-&gt;mpm-&gt;vhosts[idx].threads_count)--;
+    apr_thread_mutex_unlock(module_globals-&gt;mpm-&gt;vhosts[idx].mutex);
+
+    apr_thread_exit(thd,APR_SUCCESS);
+    return NULL;
+}</pre><p style="width:90%">
+		The lazy bridge <span style="font-family:monospace"><span class="command"><strong>module_globals-&gt;bridge_jump_table-&gt;mpm_thread_interp</strong></span></span>, which
+		is supposed to return the rivet_thread_interp structure pointer relevant to a given
+		request, has a straightforward task to do since by design each thread has
+		one interpreter
+	</p><pre class="programlisting">rivet_thread_interp* Lazy_MPM_Interp(rivet_thread_private *private,
+                                     rivet_server_conf* conf)
+{
+    return private-&gt;ext-&gt;interp;
+}</pre><p style="width:90%">
+		As already pointed out
+		running this bridge you get separate virtual interpreters and separate channels by default
+		and since by design each threads gets its own Tcl interpreter and Rivet channel you will
+		not be able to revert this behavior in the configuration with 
+	</p><pre class="programlisting">SeparateVirtualInterps Off
+SeparateChannels       Off</pre><p style="width:90%">
+		which are simply ignored
+	</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="internals.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Rivet Internals </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align= [...]
diff --git a/rivet/manual3.1/lempty.html b/rivet/manual3.1/lempty.html
new file mode 100644
index 0000000..8702e53
--- /dev/null
+++ b/rivet/manual3.1/lempty.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lempty</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lassign_array.html" title="lassign_array"><link rel="next" href="lmatch.html" title="lmatch"></head><body bgcol [...]
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::lempty</span>   <span style="font-family:monospace; font-weight: bold;">list</span> </div></div></div><div class="refsect1"><a name="idm1374"></a><h2>Description</h2><p style="width:90%">
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lassign_array.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lmatch.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual3.1/lmatch.html b/rivet/manual3.1/lmatch.html
new file mode 100644
index 0000000..a0a4d7b
--- /dev/null
+++ b/rivet/manual3.1/lmatch.html
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lmatch</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lempty.html" title="lempty"><link rel="next" href="load_cookies.html" title="load_cookies"></head><body bgcolor [...]
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;
+		</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::lmatch</span>  (<span style="font-family:monospace; font-weight: bold;">-exact</span> | <span style="font-family:monospace; font-weight: bold;">-glob</span> | <span style="font-family:monospace; font-weight: bold;">-regexp< [...]
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;.  
+		    This command is a decent replacement for TclX lmatch command when TclX is
+            not available 
+		</p><p style="width:90%">
+		    In the following example a regular expression is matched against
+		    each element in the input list and a list containing the matching
+		    elements is returned
+		</p><p style="width:90%">
+		    </p><pre class="programlisting">::rivet::lmatch -regexp { aaxa bxxb ccxxxxcc } {.+[x]{2}.+}
+bxxb ccxxxxcc</pre><p style="width:90%">
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lempty.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_cookies.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top" [...]
diff --git a/rivet/manual3.1/load_cookies.html b/rivet/manual3.1/load_cookies.html
new file mode 100644
index 0000000..f26b510
--- /dev/null
+++ b/rivet/manual3.1/load_cookies.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_cookies</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lmatch.html" title="lmatch"><link rel="next" href="load_env.html" title="load_env"></head><body bgcolor=" [...]
+		Load the array of cookie variables into the specified
+		array name.  Uses array cookies by
+		default.
+	    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lmatch.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_env.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">lmatch [...]
diff --git a/rivet/manual3.1/load_env.html b/rivet/manual3.1/load_env.html
new file mode 100644
index 0000000..d6ce96a
--- /dev/null
+++ b/rivet/manual3.1/load_env.html
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_env</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_cookies.html" title="load_cookies"><link rel="next" href="load_headers.html" title="load_headers"></head [...]
+		    Load the array of environment variables into the specified
+		    array name.  Uses array ::request::env by
+		    default.
+		</p><p style="width:90%">
+		    As Rivet pages are run in the ::request
+		    namespace, it isn't necessary to qualify the array name
+		    for most uses - it's ok to access it as
+		    env.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_cookies.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_headers.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign [...]
diff --git a/rivet/manual3.1/load_headers.html b/rivet/manual3.1/load_headers.html
new file mode 100644
index 0000000..a61a9d7
--- /dev/null
+++ b/rivet/manual3.1/load_headers.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_headers</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_env.html" title="load_env"><link rel="next" href="load_response.html" title="load_response"></head>< [...]
+		    Load the headers that come from a client request into the
+		    provided array name, or use headers if no
+		    name is provided.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_env.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_response.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="t [...]
diff --git a/rivet/manual3.1/load_response.html b/rivet/manual3.1/load_response.html
new file mode 100644
index 0000000..775ef4c
--- /dev/null
+++ b/rivet/manual3.1/load_response.html
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>load_response</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_headers.html" title="load_headers"><link rel="next" href="lremove.html" title="lremove"></head><bod [...]
+		    Load any form variables passed to this page into an
+		    array. If <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> is called without 
+		    arguments the array response is created in 
+		    the scope of the caller. If the variables var1,var2,var3...
+		    having values val1,val2,val3... are passed to the page, the
+		    resulting array will be a collection mapping var1,var2,var3...
+		    to their corresponding values. <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span>
+		    was inspired by the same NeoWebScript procedure in the way
+		    it deals with multiple assignments: if a variable 
+		    is assigned more than once the corresponding array element will be a 
+		    list of the values for the variable. This can be useful in the case 
+		    of forms with checkbox options that are given the same name.
+            This condition is signalled by the presence of an auxiliary array 
+            variable. 
+        </p><p style="width:90%">
+            Example: if a group of checkboxes are associated to the var1
+            variable then <span style="font-family:monospace"><span class="command"><strong>response(var1)</strong></span></span> will store 
+            the list of their values and the array will also have the extra variable 
+            response(__var1) which can be tested with
+            the usual <span style="font-family:monospace"><span class="command"><strong>[info exists response(__var1)]</strong></span></span>
+        </p><p style="width:90%">
+		    Calling <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> several times for the same
+		    array results in adding more values to the array at every call. 
+		    When needed it is left to the caller to empty the array between 
+		    two subsequent calls.  
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_headers.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lremove.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual3.1/lremove.html b/rivet/manual3.1/lremove.html
new file mode 100644
index 0000000..2f14ba3
--- /dev/null
+++ b/rivet/manual3.1/lremove.html
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>lremove</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_response.html" title="load_response"><link rel="next" href="makeurl.html" title="makeurl"></head><body bg [...]
+		  <span style="font-family:monospace"><span class="command"><strong>lremove</strong></span></span> removes from list  ?<span style="font-family:monospace; font-weight: bold;">list</span>? the first occurrence
+		  of an element matching one of the patterns listed in the command line. By specifying the
+		  -all option every occurrence of one the patterns is removed
+	    </p><p style="width:90%">
+	       Pattern matching can be -exact,-glob style or following 
+	       regular expressions (-regexp). These options are globally valid across the 
+	       whole pattern list (default is glob style matching)  
+	    </p><pre class="programlisting">::rivet::lremove -all -regexp {aa e111 bab aa} aa e111 bab
+e111 bab
+::rivet::lremove -all -regexp {aa e111 bab aa} aa "e\\d+"
+bab</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_response.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="makeurl.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign= [...]
diff --git a/rivet/manual3.1/makeurl.html b/rivet/manual3.1/makeurl.html
new file mode 100644
index 0000000..16832cf
--- /dev/null
+++ b/rivet/manual3.1/makeurl.html
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>makeurl</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lremove.html" title="lremove"><link rel="next" href="no_body.html" title="no_body"></head><body bgcolor="white [...]
+		  Create a self referencing URL from a filename. <span style="font-family:monospace"><span class="command"><strong>makeurl</strong></span></span>
+		  can be used in three ways
+		  </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">With no arguments the current script URL is returned</li><li class="listitem"> 
+					The argument is a relative path: the command returns 
+					the argument prefixed with the current script's URL
+		    </li><li class="listitem"> 
+					The argument is an absolute path: the full URL to the resource is returned
+		    </li></ul></div><p style="width:90%">
+		</p><p style="width:90%">
+		    Example with an absolute path:
+		    </p><pre class="programlisting">::rivet::makeurl /tclp.gif</pre><p style="width:90%"> returns
+		    <code class="computeroutput">http://[hostname]:[port]/tclp.gif</code>.
+		    where hostname and port are the hostname and port of the
+		    server in question. The protocol prefix is inferred from the protocol
+		    in the URL referencing the script.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lremove.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="no_body.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">lre [...]
diff --git a/rivet/manual3.1/no_body.html b/rivet/manual3.1/no_body.html
new file mode 100644
index 0000000..860d601
--- /dev/null
+++ b/rivet/manual3.1/no_body.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>no_body</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="makeurl.html" title="makeurl"><link rel="next" href="parray.html" title="parray"></head><body bgcolor="white"  [...]
+          This command is useful for situations where it is necessary
+          to only return HTTP headers and no actual content.  For
+          instance, when returning a 304 redirect.
+        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="makeurl.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="parray.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top [...]
diff --git a/rivet/manual3.1/parray.html b/rivet/manual3.1/parray.html
new file mode 100644
index 0000000..84ffff9
--- /dev/null
+++ b/rivet/manual3.1/parray.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>parray</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="no_body.html" title="no_body"><link rel="next" href="parse.html" title="parse"></head><body bgcolor="white" tex [...]
+		    An html version of the standard Tcl
+		    <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> command.  Displays the entire
+		    contents of an array in a sorted, nicely-formatted way.
+		    Mostly used for debugging purposes.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="no_body.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="parse.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">no_bo [...]
diff --git a/rivet/manual3.1/parse.html b/rivet/manual3.1/parse.html
new file mode 100644
index 0000000..f719eb4
--- /dev/null
+++ b/rivet/manual3.1/parse.html
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>parse</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="parray.html" title="parray"><link rel="next" href="raw_post.html" title="raw_post"></head><body bgcolor="white"  [...]
+		    Like the Tcl <span style="font-family:monospace"><span class="command"><strong>source</strong></span></span> command, but also
+		    parses for Rivet &lt;?  and ?&gt; processing tags.  Using
+		    this command, you can use one .rvt file from another.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parray.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="raw_post.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">par [...]
diff --git a/rivet/manual3.1/processing.html b/rivet/manual3.1/processing.html
new file mode 100644
index 0000000..1a2f235
--- /dev/null
+++ b/rivet/manual3.1/processing.html
@@ -0,0 +1,225 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet HTTP Request Processing</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="directives.html" title="Apache Rivet 3.1 Configuration"><link rel="next" href="request.html" title=" [...]
+			The mod_rivet 2.0,2.1,2.2,2.3 modules handle an HTTP request
+			by running a Tcl script or a Rivet (.rvt file) template 
+			whose path appears encoded in the URI (an alias translation or 
+			URL rewriting might occur to establish the real path). 
+			The execution of such scripts can be preceded and/or 
+			followed by the execution scripts common to every path 
+			configured through the BeforeScript and AfterScript
+			directives. These scripts can be configured on a per virtual host, 
+			per directory or per user basis. Execution of such combined
+			scripts can break because of coding errors (thus triggering the
+			ErrorScript execution) or it can deliberately interrupt 
+			ordinary execution by calling ::rivet::abort_page (triggering
+			the execution of a script defined by the directive AbortScript). 
+			This scheme is in case 
+			terminated by a further configurable script (AfterEveryScript).
+			In mod_rivet 2.x module series 
+			this model of request handling was coded within
+			the module mod_rivet.so itself. 
+		</p><p style="width:90%">
+ 			With Rivet 3.0 we changed this approach and landed to
+ 			a new much simpler and flexible model where each request is 
+ 			by default handled by the following Tcl procedure
+		</p><pre class="programlisting"># -- request_handler.tcl
+#
+# Copyright 2002-2017 The Apache Rivet Team
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#	http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# code of the default handler of HTTP requests
+
+    ::try {
+        ::Rivet::initialize_request
+    } on error {err} {
+        ::rivet::apache_log_error crit \
+            "Rivet request initialization failed: $::errorInfo"
+    }
+
+    ::try {
+
+        set script [::rivet::inspect BeforeScript]
+        if {$script ne ""} {
+            set ::Rivet::script $script
+            eval $script
+        }
+
+        set script [::rivet::url_script]
+        if {$script ne ""} {
+            set ::Rivet::script $script
+            namespace eval ::request $script
+        }
+
+        set script [::rivet::inspect AfterScript]
+        if {$script ne ""} {
+            set ::Rivet::script $script
+            eval $script
+        }
+
+    } trap {RIVET ABORTPAGE} {err opts} {
+        ::Rivet::finish_request $script $err $opts AbortScript
+    } trap {RIVET THREAD_EXIT} {err opts} {
+        ::Rivet::finish_request $script $err $opts AbortScript
+    } on error {err opts} {
+        ::Rivet::finish_request $script $err $opts
+    } finally {
+        ::Rivet::finish_request $script "" "" AfterEveryScript
+    }
+   
+# default_request_handler.tcl ---
+</pre><p style="width:90%">
+			Note the call to new 3.0 command ::rivet::url_script
+			that returns the body of the Tcl script or Rivet template
+			pointed by the URL. 
+		</p><p style="width:90%">
+			This procedure emulates the 2.x scheme
+			and as such works as a fully compatible request handling
+			but opens to the programmers the option of replacing it 
+			with their own	application request handling procedure
+		</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+			Note that if you redefine the core request handler
+			you'll need to handle yourself any error conditions
+			and any code interruption brought about by calling 
+			<span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span>.
+			The current procedure might work as a template to be
+			reworked and used as a template to develop your own
+			request handler.
+		</td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm583"></a>Example: basic OO Rivet Application</h3></div></div></div><p style="width:90%">
+			An applications may have no interest in running
+			a script pointed by the URL as in the traditional approach 
+			followed by rivet inspired to the PHP philosophy of <span class="quote">“<span class="quote">scripting
+			the HTML</span>”</span>. A web based application
+			could be driven entirely by the URL encoded arguments and by the
+			data POSTed with HTML forms, still retaining the ability of exploiting
+			the template engine of Rivet through the <span style="font-family:monospace"><span class="command"><strong>::rivet::parse</strong></span></span>.
+			In other words an application could hinge on a single entry point to
+			handle requests, regardless the complexity of its internal design. 
+		</p><p style="width:90%">This section shows a template for such an application 
+			(let's call it MyRivetApp) based on an Itcl (or TclOO for what 
+			it matters) object instance. In myrivetapp.tcl
+			the application class is defined and an instance of it is
+			created in the global namespace. 
+		</p><pre class="programlisting">## myrivetapp.tcl -- 
+#
+# Application class definition and instance creation
+#
+
+package require Itcl
+
+::itcl::class MyRivetApp {
+
+   private variable application_name
+
+   public method init {}
+   public method request_processing {urlencoded_args}
+
+}
+
+::itcl::body MyRivetApp::init {app_name}{
+
+   # any initialization steps must go here
+   # ....
+
+   set application_name $app_name
+
+}
+
+::itcl::body MyRivetApp::request_processing {urlencoded_args} {
+
+   # the whole application code will run from this method
+   ...
+
+}
+
+set ::theApplication [MyRivetApp #auto]
+
+$::theApplication init [dict get [::rivet::inspect server] hostname]
+
+# -- myrivetapp.tcl
+</pre><p style="width:90%">
+			which provides a very basic interface for both initialization
+			and request processing. Such script will be sourced into the
+			Tcl interpreter at the mod_rivet initialization stage. In the
+			Apache configuration (most likely within a &lt;VirtualHost myrivetapp.com:80&gt;...&lt;/VirtualHost&gt;
+			definition block)
+		</p><pre class="programlisting">&lt;IfModule rivet_module&gt;
+    RivetServerConf ChildInitScript "source myrivetapp.tcl"
+&lt;/IfModule&gt;</pre><p style="width:90%">
+			By running this script when an a thread is started
+			we set it up to respond requests, but we still need to 
+			tell mod_rivet what code will eventually handle requests
+			and how the method MyRivetApp::request_processing will
+			be called with appropriate arguments
+		</p><pre class="programlisting"># -- myapp_request_handler.tcl
+#
+# This script will be read by mod_rivet at the thread initialization
+# stage and its content stored in a Tcl_Obj object. This object will
+# be evaluated calling Tcl_EvalObjExe
+#
+
+::try {
+
+    $::theApplication request_processing [::rivet::var_qs all]
+
+} trap {RIVET ABORTPAGE} {err opts} {
+
+     set abort_code [::rivet::abort_code]
+
+    switch $abort_code {
+       code1 {
+           # handling abort_page with code1
+           ....
+       }
+       code2 {
+           # handling abort_page with code2
+          ....      
+       }
+       # ...
+       default {
+           # default abort handler
+       }
+   }
+
+} trap {RIVET THREAD_EXIT} {err opts} {
+    
+    # myApplication sudden exit handler
+    ...
+
+} on error {err opts} {
+
+    # myApplication error handler
+    ...
+
+} finally {
+
+    # request processing final elaboration
+    
+}
+
+# -- myapp_request_handler.tcl
+</pre></div><p style="width:90%">
+		Finally we have to tell mod_rivet to run this script when a
+		request is delivered to myApplication and we do so
+		using the 3.0 directive <span style="font-family:monospace"><span class="command"><strong>RequestHandler</strong></span></span> 
+	</p><pre class="programlisting">&lt;IfModule rivet_module&gt;
+    RivetServerConf ChildInitScript "source myrivetapp.tcl"
+    RivetServerConf RequestHandler  "myapp_request_handler.tcl"
+&lt;/IfModule&gt;</pre><p style="width:90%">
+		Notice that the argument of the directive <span style="font-family:monospace"><span class="command"><strong>RequestHandler</strong></span></span>
+		is a file name not a Tcl script as for <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span>
+	</p><p style="width:90%">
+		With such approach only the <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span>, <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span>
+		and <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> configuration directives are effective, while 
+		the effect of other handler is devolved to our request handler script.
+	</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="directives.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="request.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Rivet 3.1 Configuration </td><td width="20%" align="center"><a accesskey="h [...]
diff --git a/rivet/manual3.1/raw_post.html b/rivet/manual3.1/raw_post.html
new file mode 100644
index 0000000..57b733b
--- /dev/null
+++ b/rivet/manual3.1/raw_post.html
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>raw_post</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="parse.html" title="parse"><link rel="next" href="redirect.html" title="redirect"></head><body bgcolor="white" [...]
+		Returns the raw POST data from the request.  If the request was 
+		not a POST or there is no data, then "" - an empty string - is returned.
+	    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parse.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="redirect.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">parse < [...]
diff --git a/rivet/manual3.1/read_file.html b/rivet/manual3.1/read_file.html
new file mode 100644
index 0000000..69a2200
--- /dev/null
+++ b/rivet/manual3.1/read_file.html
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>read_file</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="redirect.html" title="redirect"><link rel="next" href="try.html" title="try"></head><body bgcolor="white" te [...]
+			    Read the entire contents of a file and return it as a string.			
+			</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::read_file</span>  ?<span style="font-family:monospace; font-weight: bold;">file name</span>?</div></div></div><div class="refsect1"><a name="idm1594"></a><h2>Description</h2><p style="width:90%">
+		   	This is a utility command which loads the entire content of
+		    	a file and returns it as a result.
+			</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="redirect.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="try.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">redir [...]
diff --git a/rivet/manual3.1/redirect.html b/rivet/manual3.1/redirect.html
new file mode 100644
index 0000000..146a27f
--- /dev/null
+++ b/rivet/manual3.1/redirect.html
@@ -0,0 +1,25 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>redirect</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="raw_post.html" title="raw_post"><link rel="next" href="read_file.html" title="read_file"></head><body bgcolor [...]
+       		<span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> diverts the browser to a new URL and marks
+       		the redirection as either permanent in the browser local cache or
+       		non permanent (default).
+       		Calling <span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> causes the script execution to interrupt
+       		and control passes to <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span>, if such script is 
+       		set, by calling <span style="font-family:monospace"><span class="command"><strong>::rivet::abort_page</strong></span></span> and passing as abort
+       		code a dictionary with 2 keys: 
+       		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>error_code</strong></span></span>: string literal 'redirect'</li><li class="listitem"><span style="font-family:monospace"><span class="command"><strong>location</strong></span></span>: the URL the browser will be redirected to</li></ul></div><p style="width:90%">
+       	</p><p style="width:90%">
+       		<span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> drives the redirection by setting the
+       		301 (permanent = 1: permanent redirect) or 302 (permanent = 0: non permanent redirect) and 
+       		attempts to discard the output the script might have already placed in the
+       		stdout channel buffer. The <span class="quote">“<span class="quote">permanent</span>”</span> argument can also be any of the 
+       		other HTTP status codes. This is handy for returning one the 3xx status codes 
+       		dedicated to the HTTP request redirection 
+       		
+       		The command can fail if
+       		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">A <span style="font-family:monospace"><span class="command"><strong>flush stdout</strong></span></span> was called before <span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span>
+       			thus causing the HTTP headers to be sent and preventing any possibility to 
+       			manipulate them</li><li class="listitem">The channel buffer was filled causing Tcl to
+       			flush the channel</li></ul></div><p style="width:90%">
+				The <span style="font-family:monospace"><span class="command"><strong>stdout</strong></span></span> channel, like any Tcl channels, can be manipulated
+				and if needed its internal buffer stretched.    
+       	</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="raw_post.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="read_file.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign= [...]
diff --git a/rivet/manual3.1/request.html b/rivet/manual3.1/request.html
new file mode 100644
index 0000000..520d72f
--- /dev/null
+++ b/rivet/manual3.1/request.html
@@ -0,0 +1,191 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Child Processes Lifecycle and Request Processing</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="processing.html" title="Apache Rivet HTTP Request Processing"><link rel="next" hr [...]
+            Apache Rivet devolves to the <a class="ulink" href="" target="_top">Multi-Processing Module (MPM)</a>
+            the task of managing the agents responding to network requests. 
+            An MPM is responsible for creating such agents during the start-up, 
+            and is in charge for terminating existing ones and recreating new 
+            agents when the workload is requiring it. 
+       </p><p style="width:90%">
+            Apache Rivet 2.0,2.1,2.2,2.3 supported only the
+            <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork</a>
+            MPM which creates child processes as independent agents responding to network requests. 
+            Starting with 3.0 also the <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/worker.html" target="_top">worker</a> and
+            <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/event.html" target="_top">event</a> MPM are supported. The worker MPM is
+            an hybrid model where forked child processes in turn create threads as real
+            network agents. Also Apache on Windows© is now supported and tested
+            with the <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/mpm_winnt.html" target="_top">winnt</a> MPM, 
+            where a single process creates and manages a large number of thread agents.
+       </p><p style="width:90%">
+	    		Configuration parameters about this critical point can be read in the
+	    		<a class="ulink" href="https://httpd.apache.org/docs/2.4/misc/perf-tuning.html" target="_top">Apache
+	    		documentation</a>. 
+	    </p><p style="width:90%">
+	    		There are 4 stages in the lifetime of an Apache webserver that are relevant
+	    		to Rivet: 
+	    </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><h4><a name="idm620"></a>Server Initialization</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+               Apaches starts up as a single process. During this stage Apache performs 
+               various preliminary tasks including reading and parsing the configuration. 
+					After the configuration has been read Rivet sets up some internal resources
+					and if a Tcl script is set as argument of a <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span>
+					directive the script is executed. 
+					Variables, arrays or dictionaries created during 
+					the execution of this script will be preserved and later replicated in the 
+					child process intepreters if the prefork MPM is loaded (which restricts
+					this feature to the Unix systems). 
+					The prefork MPM creates new child processes with a fork() 
+					system call, which involves only in memory copy of sections of a
+					process address space. Tcl is careful about reproducing an environment
+					across a fork call in order to have a functional interpreter.
+				</div><div style="margin-bottom:1.5ex ; padding .5ex">
+					Still, regardless the OS and loaded MPM <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span>
+		    		is a good place to do global initialization that doesn't involve
+		    		creation of private data. Example of tasks that can be done
+		    		in this context are IPC methods that must be initialized at this stage.
+		    		With the prefork MPM also importing from namespaces and loading packages
+		    		can be done here removing the burden from the child initialization stage. 	
+	    		</div></li><li class="listitem"><h4><a name="idm626"></a>Child Process Initialization</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+					A child process calls the MPM bridge interface function to set up
+					the Tcl run time environment,either creating multiple threads each running its
+					Tcl interpreters or, in the case of the prefork MPM bridge, setting up
+					the environment within a the child process itself as a single Tcl thread.
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+               This is the stage where most likely you want to open I/O channels,
+               database connections or any other resource that has to be private to an 
+               interpreter and has to persist over a whole thread lifespan.
+               When the option <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is 
+               turned off child processes will have a single interpreter regardless
+		    		the number of virtual hosts configured. The
+               <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> is the configuration script 
+               the child process will run once before getting ready to 
+               serve requests
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+	    			When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is turned on 
+	    			each configured virtual host will have its own slave interpreter which
+	    			can will run the <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> directive as
+	    			initialization script. The	    			
+	    			<span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> has to be
+	    			placed within a &lt;VirtualHost...&gt;...&lt;/VirtualHost ...&gt;
+	    			stanza to associate a script to a specific virtual host initialization.
+	    			This scenario of interpreter separation is extremely useful to
+	    			prevent resource conflicts when different virtual hosts are 
+	    			serving different web applications. 
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+	    			<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> has no effect to working interpreters
+	    				when <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is set.
+	    			</td></tr></table></div>
+	    			<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+	    				The lazy MPM bridge implements a model where
+	    				every worker thread has exactly one interpreter and belongs to 
+	    				a single virtual host, therefore <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
+	    				is ignored and you can't share the same interpreter among virtual host
+	    			</td></tr></table></div>
+	    		</div></li><li class="listitem"><h4><a name="idm642"></a>Request Processing and Content Generation</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+			    		<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+			    			This section explain the default request handling procedure which
+			    			was written to let Rivet 3.0 work as a drop in replacement 
+			    			of any 2.x module. For a in-depth understanding of
+			    			the new request processing mechanics please read the
+			    			<a class="link" href="processing.html" title="Apache Rivet HTTP Request Processing">request processing</a> section of the manual
+			    		</td></tr></table></div>
+			   </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                 After a child has been initialized it's ready to serve requests. 
+                 A child process' lifetime is almost entirely spent in this phase, waiting
+                 for connections and responding to requests. At every request the URL 
+                 goes through filter processing and, in case, rewritten
+                 (mod_rewrite, Alias directives, etc). 
+                 Parameter values encoded in the request are made available to the 
+                 environment and finally the script encoded in the URL is run. 
+                 The developer can tell Rivet if optionally the execution has to
+                 be  preceded by a <span style="font-family:monospace"><span class="command"><strong>BeforeScript</strong></span></span> and followed by an
+                 <span style="font-family:monospace"><span class="command"><strong>AfterScript</strong></span></span>. The real script mod_rivet will
+                 execute is the result of the concatenation of the 
+                 <span style="font-family:monospace"><span class="command"><strong>BeforeScript</strong></span></span>,
+                 the script encoded in the URL and the <span style="font-family:monospace"><span class="command"><strong>AfterScript</strong></span></span>.
+                 Thus the whole ensemble of code that makes up a web application might
+                 be running within the same "before" and "after" scripts to which 
+                 the programmer can devolve tasks common to every 
+                 page of an application.
+            </div></li><li class="listitem"><h4><a name="idm652"></a>Child Process Exit</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+                 If no error condition forces the child process to a premature exit, his
+                 life is determined by the Apache configuration parameters. To reduce
+                 the effects of memory leaks in buggy applications the Apache webserver 
+                 forces a child process to exit after a
+                 certain number of requests served. A child process gets replaced 
+                 with a brand new one if the workload of webserver requires so. 
+                 Before the process quits an exit handler can be run
+                 to do some housekeeping, just in case something the could have been 
+                 left behind has to be cleaned up. Like the initialization scripts
+                 <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> too is a "one shot" script.
+             </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                 The Tcl <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command forces an interpreter to
+                 quit, thus removing the ability of the process embedding it 
+                 to run more Tcl scripts. The child process then is forced
+                 to exit and be replaced by a new one when the workload demands it.
+                 This operation implies the <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> be
+                 run before the interpreter is actually deleted.
+             </div></li></ol></div></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm658"></a>Apache Rivet Error and Exception Scripts Directives</h3></div></div></div><p style="width:90%">
+         Rivet is highly configurable and each of the webserver lifecycle stages 
+         can be exploited to control a web application. 
+         Not only the orderly sequence of stages
+         in a child lifecycle can be controlled with Tcl scripts, but also
+         Tcl error or abnormal conditions taking place during
+         the execution can be caught and handled with specific scripts.
+       </p><p style="width:90%">
+	    	Tcl errors (conditions generated when a command exits with code TCL_ERROR) 
+	    	usually result in the printing of a backtrace of the code fragment
+	    	relevant to the error.
+	    	Rivet can set up scripts to trap these errors and run instead
+	    	an <span style="font-family:monospace"><span class="command"><strong>ErrorScript</strong></span></span> to handle it and conceal details
+	    	that usually have no interest for the end user and it
+	    	may show lines of code that ought to remain private. The ErrorScript
+	    	handler might create a polite error page where things
+	    	can be explained in human readable form, thus enabling the end user
+	    	to provide meaningful feedback information. 
+	    </p><p style="width:90%">
+	    	In other cases an unmanageable conditions might take place in the data and
+	    	this could demand an immediate interruption of the content generation. These abort 
+	    	conditions can be fired by the <a class="xref" href="abort_page.html" title="abort_page">abort_page</a> command, which
+	    	in turn fires the execution of an <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> to handle
+	    	the abnormal condition. Starting with Rivet 2.1.0 <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>
+	    	accepts a free form parameter that can be retrieved later with the command 
+	    	<a class="xref" href="abort_code.html" title="abort_code">abort_code</a>
+	    </p></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm668"></a>Tcl Namespaces in Rivet and the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> Namespace</h3></div></div></div><p style="width:90%">
+    		</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+    			This section explain the default request handling procedure which
+    			was written to let Rivet 3.0 work as a drop in replacement 
+    			of any 2.x module. For a in-depth understanding of
+    			the new request processing mechanics please read the
+    			<a class="link" href="processing.html" title="Apache Rivet HTTP Request Processing">request processing</a> section of the manual
+    		</td></tr></table></div><p style="width:90%">
+	   </p><p style="width:90%">
+			With the sole exception of .rvt templates, mod_rivet runs pure Tcl scripts 
+			at the global namespace. That means that every variable or procedure 
+			created in Tcl scripts resides by default in the 
+			"::" namespace (just like in traditional Tcl scripting) and they
+			are persistent across different requests until explicitly unset or
+			until the interpreter is deleted.
+			You can create your own application namespaces to store data but
+			it is important to remember that subsequent requests will in general be served 
+			by different child processes. Your application can rely on the fact that 
+			certain application data will be in the interpreter, but you shouldn't 
+			assume the state of a transaction spanning several pages 
+			can be stored in this way and be safely kept available to a 
+			specific client. Sessions exist for this purpose and Rivet ships its own 
+			session package with support for most of popular DBMS. Nonetheless 
+			storing data in the global namespace can be useful, even though scoping 
+			data in a namespace is recommended. I/O channels and
+			database connections are examples of information usually specific 
+			to a process for which you don't want to pay the overhead of creating them
+			at every request, probably causing a dramatic loss in the application
+			performance.
+		</p><p style="width:90%">
+			A special role in the interpreter is played by the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> 
+			namespace.	The <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> namespace is deleted and recreated
+			at every request and Rivet templates (.rvt files) are executed within it.
+		</p><p style="width:90%"> 
+			Unless you're fully qualifying variable names outside the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> 
+			namespace, every variable and procedure created in .rvt files is by default placed in
+			it and deleted before any other requests gets processed. It is therefore safe to
+			create variables or object instances in template files and foresake about them: Rivet
+			will take care of cleaning the namespace up and everything created inside the namespace
+			will be destroyed.
+		</p><div class="table"><table align="center" title="Apache Rivet Scripts" class="namespaces"><thead><td>Stage</td><td>Script</td><td>Namespace</td></thead><tbody><tr class="init"><td>Apache Initialization</td><td>ServerInitScript</td><td>::</td></tr><tr class="childinit"><td rowspan="2">Child Initialization</td><td>GlobalInitScript</td><td>::</td></tr><tr class="childinit"><td>ChildInitScript</td><td>::</td></tr><tr class="processing"><td rowspan="6">Request Processing</td><td>BeforeSc [...]
diff --git a/rivet/manual3.1/rivet.css b/rivet/manual3.1/rivet.css
new file mode 100644
index 0000000..b40b308
--- /dev/null
+++ b/rivet/manual3.1/rivet.css
@@ -0,0 +1,391 @@
+BODY
+{
+        font-family: verdana;
+        background-color: #fbfcfc;
+}
+
+DIV.ABSTRACT
+{
+        border: solid 2px;
+        padding-left: 10pt;
+        padding-right: 10pt;
+}
+PRE.SCREEN
+{
+        font-family:monospace;
+        white-space: pre;
+        width: 100%;
+        background-color: #ffffcc;
+        border:solid;
+        color: #000000;
+        border-color: #009999;
+        border-left: solid #009999 2px;
+        border-right: solid #009999 2px;
+        border-top: solid #009999 2px;
+        border-bottom: solid #009999 2px;
+        padding-left: 15pt;
+}
+
+PRE.PROGRAMLISTING
+{
+        font-family: monospace;
+        white-space: pre;
+        width:  95%;
+        background-color: #e8ecf2;
+        border: solid;
+        color:  #000000;
+        border-color: #a3b1bc;
+        border-left: solid #a3b1bc 1px;
+        border-right: solid #a3b1bc 1px;
+        border-top: solid #a3b1bc 1px;
+        border-bottom: solid #a3b1bc 1px;
+        font-size:  normal;
+        padding-top:    1em;
+        padding-left:   1em;
+        padding-bottom: 1em;
+        font-size:  0.9em;
+}
+
+H1
+{
+        color: #ffffff;
+        border: solid 3px #1d252b;
+        background-color: #a3b1bc;
+        font-variant: small-caps;
+        width: 100%;
+}
+
+H1.TITLE
+{
+        color: #ffffff;
+        border: solid 3px #1d252b;
+        background-color: #a3b1bc;
+        font-variant: small-caps;
+        width: 100%;
+}
+
+.TITLE a {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+.TITLE a:active {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+.TITLE a:visited {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+H2
+{       
+        COLOR: #ffffff ;
+        font-style: italic;
+        border: solid 3px #1d252b;
+        background-color: #a3b1bc;
+        PADDING: 0.5em;
+}
+
+TABLE.IMPORTANT
+{
+        font-style:italic;
+        border: solid 2px #ff0000;
+        width: 70%;
+        margin-left: 15%;       
+}
+TABLE.CAUTION
+{
+        font-style:italic;
+        border: ridge 2px #ffff00;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+TABLE.NOTE
+{
+        font-style:italic;
+        border: solid 1px #000000;
+        width: 70%;
+        margin-left: 15%;       
+}
+TABLE.TIP
+{
+        font-style:italic;
+        border: solid 1px #000000;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+TABLE.WARNING
+{
+        font-style:italic;
+        font-weight: bold;
+        border: ridge 4px #ff0000;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+DIV.VARIABLELIST {
+        font-family: sans-serif;
+        font-style: normal;
+        font-weight: normal;
+        padding-left: 20px;
+        font-size: small;
+}
+
+.VARLISTENTRY {
+        font-weight: bold;
+        margin-top: 10px;
+        color: #ffffff ;
+        background-color: #e8ecf2;
+        border: solid 1px #a3b1bc;
+        padding: 1px
+}
+
+/*
+ * See http://diveintoaccessibility.org/day_26_using_relative_font_sizes.html
+ * for an explanation of the following few commands.
+ * They are really too complicated to explain here in all depth. ;-)
+*/
+
+P {
+        font-size: 12px;
+}
+
+/*/*/A{}
+BODY P {
+
+/*      font-size: x-small; */
+        voice-family: "\"}\"";
+        voice-family: inherit;
+        font-size: normal;
+}
+
+HTML>BODY P {
+        font-size: normal;
+}
+/* */
+
+/* Add an external-link icon to absolute links */
+a[href^="http:"] {
+        background: url(images/remote.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href^="http:"]:hover {
+        background: url(images/remote.png) right center no-repeat;
+}
+
+/* Add a note icon to footnote links */
+a[href^="#FTN"] {
+        background: url(images/qbullet-note.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href^="#FTN"]:hover {
+        background: url(images/qbullet-note.png) right center no-repeat;
+}
+
+/* ...and a back icon to the backlinks in the footnotes themselves */
+a[name^="FTN"] {
+        background: url(images/scrollup.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[name^="FTN"]:hover {
+        background: url(images/scrollup.png) right center no-repeat;
+}
+
+/* Add a download icon to .gz links */
+a[href$=".gz"],a[href$=".tar"],a[href$=".zip"] {
+        background: url(images/disk.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+
+/* Add an Acrobat Reader icon to PDF links */
+a[href$=".pdf"] {
+        background: url(images/acrobat.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href$=".pdf"]:hover {
+        background: url(images/acrobat.png) right center no-repeat;
+}
+
+/* Add a Word icon to RTF links */
+a[href$=".rtf"] {
+        background: url(images/word.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+
+/* ...but not to absolute links in this domain... */
+a[href^="http://www.karakas-online.de"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+a[href^="http://www.karakas-online.de"]:hover {
+        background: transparent;
+}
+
+/* ...or to the translation links on each page */
+DIV.translatelink > a[href^="http:"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+DIV.translatelink > a[href^="http:"]:hover {
+        background: transparent;
+}
+
+/* ...or to any images  */
+DIV.imagelink  a[href^="http:"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+DIV.imagelink  a[href^="http:"]:hover {
+        background: transparent;
+}
+
+
+P.C2 {
+    COLOR: #ffffff ;
+    BACKGROUND-color: #a0a0d0;
+    BORDER: solid 1px #606090;
+    PADDING: 1px
+}
+
+
+DIV.NAVFOOTER {
+        color: #000000;
+        background-color: #e8ecf2;
+        padding: 5px;
+        margin-top: 10px;
+        width: 100%;
+        border: 2px solid #a3b1bc;
+}
+
+DIV.NUKEFOOTER {
+        color: #000000;
+        background-color: #e8ecf2;
+        padding: 5px;
+        margin-top: 10px;
+        width: 100%;
+        border: thin solid #a3b1bc;
+}
+
+DIV.NAVHEADER {
+        color: #000000;
+        background-color: #e8ecf2;
+        padding: 5px;
+        margin-bottom: 10px;
+        width: 100%;
+        border: 2px solid #a3b1bc;
+}
+
+DIV.SECT1,DIV.SECT2,DIV.SECT3 {
+        margin-left: 20px;
+}
+
+DIV.EXAMPLE,DIV.TOC {
+        border: thin dotted #4e5f6e;
+        padding-left: 10px;
+        padding-right: 10px;
+        color: #000000;
+        background-color: #e8ecf2;
+}
+DIV.EXAMPLE {
+        border: thin dotted #22AA22;
+        background-color: #EEE;
+}
+
+DIV.TOC {
+        margin-left: 20px;
+        margin-right: 20px;
+        width: 95%;
+}
+
+UL  {
+     /*    list-style: url("images/tux-bullet.png") disc; */
+    }
+
+.namespaces {
+	border: 1px solid black;
+}
+
+.namespaces td {
+	padding:	0.2em 1em;
+	/* font-weight: bold; */
+}
+
+.namespaces thead {
+	background-color: #aaf;
+}
+
+.namespaces tr.init {
+	background-color: #e88;	
+}
+
+.namespaces tr.childinit {
+	background-color: #eee;		
+}
+
+.namespaces tr.processing {
+	background-color: #e88;	
+}
+	
+.namespaces tr.childexit {
+	background-color: #eee;		
+}
+
+table.directives {
+	border-collapse: collapse;
+}
+.directives thead {
+    background-color:   #bbf;
+    font-size:          1em;
+    text-decoration:    none;
+}
+
+.directives thead td {
+    padding:            8px;
+}
+
+.directives tbody tr > :first-child {
+    background-color:   #eee;
+    padding-left:       2em;
+    padding-right:      2em;
+    text-align:         left;
+}
+
+.directives tbody tr > :last-child {
+   text-decoration:    	    none;
+   font-weight: 			normal;
+	font-size: 				small;
+	border-left:			1px solid black;
+	text-align:         	left;
+}
+
+.directives tbody tr td {
+   text-align:          center;
+   text-decoration:     none;
+   font-weight: 		normal;
+	padding-left:		1em;
+	padding-right: 		1em;
+	padding-bottom: 	4px;
+	padding-top: 		4px;
+	border-bottom:		1px solid black;
+}
+
+.note td {
+    font-size:          small;
+}
+
+li.listitem {
+    font-size:          small;
+}
diff --git a/rivet/manual3.1/session_package.html b/rivet/manual3.1/session_package.html
new file mode 100644
index 0000000..9a69c59
--- /dev/null
+++ b/rivet/manual3.1/session_package.html
@@ -0,0 +1,182 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Session Package</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.1"><link rel="up" href="index.html" title="Apache Rivet 3.1"><link rel="prev" href="diodisplay_package.html" title="DIODisplay"><link rel="next" href="form.html" title="Form: An HTML Form Fields Generation [...]
+	This is session management code.  It provides an interface
+	to allow you to generate and track a browser's visit as a
+	"session", giving you a unique session ID and an interface
+	for storing and retrieving data for that session on the
+	server.
+      </p><p style="width:90%">
+	This is an alpha/beta release -- documentation is not in
+	final form, but everything you need should be in this file.
+      </p><p style="width:90%">
+	Using sessions and their included ability to store and
+	retrieve session-related data on the server, programmers can
+	generate more secure and higher-performance websites.  For
+	example, hidden fields do not have to be included in forms
+	(and the risk of them being manipulated by the user
+	mitigated) since data that would be stored in hidden fields
+	can now be stored in the session cache on the server.  Forms
+	are then faster since no hidden data is transmitted --
+	hidden fields must be sent twice, once in the form to the
+	broswer and once in the response from it.
+      </p><p style="width:90%">
+	Robust login systems, etc, can be built on top of this code.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="requirements"></a>Requirements</h3></div></div></div><p style="width:90%">
+	  Currently has only been tested with Postgresql, MySql and Oracle.
+	  All DB interfacing is done through DIO, though, so it
+	  should be relatively easy to add support for other
+	  databases.
+	</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3259"></a>Preparing To Use It</h3></div></div></div><p style="width:90%">Create the tables in your SQL server.  With Postgres,
+	  do a <span style="font-family:monospace"><span class="command"><strong>psql www</strong></span></span> or whatever DB you
+	  connect as, then a backslash-i on
+	  <code class="filename">session-create.sql</code></p><p style="width:90%">(If you need to delete the tables, use <code class="filename">session-drop.sql</code>)</p><p style="width:90%">The session code by default requires a DIO handle
+	  called <code class="varname">DIO</code> (the name of which can be
+	  overridden).  We get it by doing a</p><pre class="programlisting">RivetServerConf ChildInitScript "package require DIO"
+RivetServerConf ChildInitScript "::DIO::handle Postgresql DIO -user www"</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3269"></a>Example Usage</h3></div></div></div><p style="width:90%">In your httpd.conf, add:</p><pre class="programlisting">RivetServerConf ChildInitScript "package require Session; Session SESSION"</pre><p style="width:90%">
+	  This tells Rivet you want to create a session object named
+	  SESSION in every child process Apache creates.</p><p style="width:90%">
+	  You can configure the session at this point using numerous
+	  key-value pairs (which are defined later in this doc).
+	  Here's a quick example:</p><pre class="programlisting">RivetServerConf ChildInitScript "package require Session; Session SESSION \
+  -cookieLifetime 120 -debugMode 1"</pre><p style="width:90%">
+	  Turn debugging on -debugMode 1 to figure
+	  out what's going on -- it's really useful, if
+	  verbose.</p><p style="width:90%">
+	  In your .rvt file, when you're generating the &lt;HEAD&gt;
+	  section:
+	</p><pre class="programlisting">SESSION activate</pre><p style="width:90%">
+	  Activate handles everything for you with respect to
+	  creating new sessions, and for locating, validating, and
+	  updating existing sessions.  Activate will either locate
+	  an existing session, or create a new one.  Sessions will
+	  automatically be refreshed (their lifetimes extended) as
+	  additional requests are received during the session, all
+	  under the control of the key-value pairs controlling the
+	  session object.
+	</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3281"></a>Using Sessions From Your Code</h3></div></div></div><p style="width:90%">The main methods your code will use are:</p><div class="variablelist"><dl class="variablelist"><dt></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spac [...]
+		After doing a <span style="font-family:monospace"><span class="command"><strong>SESSION activate</strong></span></span>,
+		this will return a 32-byte ASCII-encoded random
+		hexadecimal string.  Every time this browser comes
+		to us with a request within the timeout period, this
+		same string will be returned (assuming they have
+		cookies enabled).
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION</span> <span style="font-weight:bold ; font-family:monospace">is_new_session</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">return [...]
+		previously existed (i.e. it's a zero if this request
+		represents a "return" or subsequent visit to a
+		current session.)</div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION new_session_reason</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		This will return why this request is the first
+		request of a new session, either "no_cookie" saying
+		the browser didn't give us a session cookie,
+		"no_session" indicating we got a cookie but couldn't
+		find it in our session table, or "timeout" where
+		they had a cookie and we found the matching session
+		but the session has timed out.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION store</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>packageName</code></em></span>? ?<span style="fon [...]
+		Given the name of a package, a key, and some data.
+		Stores the data in the rivet session cache table.
+	      </div></div></dd><dt><span class="term"></span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION fetch</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>packageName</code></em></span>? ?<span style="fon [...]
+		Given a package name and a key, return the data
+		stored by the store method, or an empty string if
+		none was set.  (Status is set to the DIO error that
+		occurred, it can be fetched using the status
+		method.)
+	      </div></div></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3327"></a>Session Configuration Options</h3></div></div></div><p style="width:90%">The following key-value pairs can be specified when a
+	  session object (like SESSION above) is created:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">sessionLifetime</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">how many seconds the session will live for.
+		7200 == 2 hours
+	      </div></div></dd><dt><span class="term">sessionRefreshInterval</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+		If a request is processed for a browser that
+		currently has a session and this long has elapsed
... 505 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: site-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: site-cvs-help@tcl.apache.org