update website for release of rivet 3.2.0
diff --git a/rivet/html/about.html b/rivet/html/about.html
index 9f0964e..895a188 100644
--- a/rivet/html/about.html
+++ b/rivet/html/about.html
@@ -84,7 +84,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 11-07-2018 14:48:59 UTC</div>
                 </div>
             </div>
 
@@ -97,16 +97,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -114,13 +114,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -128,10 +128,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -142,7 +142,7 @@
     <h4>Acknowledgments</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
+            <a class="navitem" title="ASF Sponsorship" href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/ajax.html b/rivet/html/ajax.html
index a612efb..9c075b0 100644
--- a/rivet/html/ajax.html
+++ b/rivet/html/ajax.html
@@ -174,7 +174,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 28-11-2018 15:39:22 UTC</div>
                 </div>
             </div>
 
@@ -184,16 +184,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -201,13 +201,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -215,10 +215,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -229,25 +229,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/calendar.html b/rivet/html/calendar.html
index 29e8e71..03904f9 100644
--- a/rivet/html/calendar.html
+++ b/rivet/html/calendar.html
@@ -82,7 +82,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 28-11-2018 15:39:22 UTC</div>
                 </div>
             </div>
 
@@ -92,16 +92,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -109,13 +109,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -123,10 +123,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -137,25 +137,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/colorful_table.html b/rivet/html/colorful_table.html
index 0706353..e473ab3 100644
--- a/rivet/html/colorful_table.html
+++ b/rivet/html/colorful_table.html
@@ -71,7 +71,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 04-11-2020 00:10:39 UTC</div>
                 </div>
             </div>
 
@@ -81,16 +81,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -98,13 +98,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -112,10 +112,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -126,25 +126,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/download.html b/rivet/html/download.html
index 534f80a..e81cfbc 100644
--- a/rivet/html/download.html
+++ b/rivet/html/download.html
@@ -101,7 +101,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 17-10-2018 09:54:31 UTC</div>
                 </div>
             </div>
 
@@ -114,16 +114,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -131,13 +131,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -145,10 +145,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -159,7 +159,7 @@
     <h4>Acknowledgments</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
+            <a class="navitem" title="ASF Sponsorship" href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/file_download.html b/rivet/html/file_download.html
index fb424d2..c663297 100644
--- a/rivet/html/file_download.html
+++ b/rivet/html/file_download.html
@@ -115,7 +115,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 28-11-2018 15:39:22 UTC</div>
                 </div>
             </div>
 
@@ -125,16 +125,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -142,13 +142,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -156,10 +156,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -170,25 +170,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/file_upload.html b/rivet/html/file_upload.html
index 7a1cbe8..79b1d54 100644
--- a/rivet/html/file_upload.html
+++ b/rivet/html/file_upload.html
@@ -75,7 +75,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 28-11-2018 15:39:22 UTC</div>
                 </div>
             </div>
 
@@ -85,16 +85,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -102,13 +102,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -116,10 +116,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -130,25 +130,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/hello_world.html b/rivet/html/hello_world.html
index 894eba8..0514b49 100644
--- a/rivet/html/hello_world.html
+++ b/rivet/html/hello_world.html
@@ -75,7 +75,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 26-11-2018 17:48:19 UTC</div>
                 </div>
             </div>
 
@@ -85,16 +85,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -102,13 +102,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -116,10 +116,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -130,25 +130,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/manuals.html b/rivet/html/manuals.html
index e9fe6eb..47ac84b 100644
--- a/rivet/html/manuals.html
+++ b/rivet/html/manuals.html
@@ -27,6 +27,9 @@
     <li>
         <a href="http://tcl.apache.org/rivet/manual3.1/">Rivet 3.1</a>
     </li>
+    <li>
+        <a href="http://tcl.apache.org/rivet/manual3.2/">Rivet 3.2</a>
+    </li>
 </ul>
 
 <p>
@@ -40,12 +43,6 @@
     <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>
 
 
@@ -61,16 +58,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -78,13 +75,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -92,10 +89,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -109,10 +106,13 @@
     <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>
+            <a class="navitem" title="Rivet 3.2" target="rivetman3.2" href="http://tcl.apache.org/rivet/manual3.2/">Rivet 3.2</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>
+            <a class="navitem" title="Rivet 3.1" target="rivetman3.1" href="http://tcl.apache.org/rivet/manual3.1/">Rivet 3.1</a>
+        </li>
+        <li class="navitem">
+            <a class="navitem" title="Rivet 2.4" target="rivetman2.4" href="http://tcl.apache.org/rivet/manual2.4/">Rivet 2.4</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/release-notes.html b/rivet/html/release-notes.html
index fa6fea7..c50a3bc 100644
--- a/rivet/html/release-notes.html
+++ b/rivet/html/release-notes.html
@@ -16,7 +16,94 @@
         <div id="body">
             <div id="content">
                 <h2>Apache Rivet Release Notes</h2>
-                <p>Apache Rivet current stable version is 3.1.1</p>
+                <p>Apache Rivet current stable version is 3.2.0</p>
+
+<dl>
+    <dt>Rivet 3.2.0 release notes</dt>
+    <dd>
+        <p>
+            <h4>Rivet 3.2.0</h4>
+
+
+      			This version fully embraces threads as the fundamental agents that run Tcl interpreters and
+      			respond to HTTP requests as content generators. As such threads now by default individually 
+      			terminate and release their resources when the <b>exit</b>
+
+ is called. 
+      			This policy change is relevant to the worker and lazy bridges which were
+      			developed to match the requirements imposed by the worker and event MPMs. The prefork bridge
+      			(which is bound to work with the prefork MPM) is unaffected.                    </p>
+        <p>The previous policy of forcing all threads to terminate before a child process calls Tcl_Exit
+      			can be reestablished setting the <b>SingleThreadExit</b>
+
+ boolean directive to <i>Off</i>
+
+. This is
+      			demanded in cases where calling Tcl_DeleteInterp is not safe because,for instance, not properly
+      			designed third-party extensions fail to correctly release their resources and can cause process crashes. 
+      			<!--Nonetheless this setting is discouraged because in case of high workload the <b>exit</b> command 
+      			can cause 505 internal server errors. -->
+        </p>
+        <p>
+		      		Even though Tcl's <b>exit</b>
+
+ command regular usage should be avoided in the design of code,
+		      		it can be useful in the development process as a tool to escape irreversible conditions 
+		      		thay may occur. The <b>exit</b>
+
+ command causes the deletion of a thread with its interpreters 
+		      		making possible to a bridge to replace it with a pristine one. 
+		      	                    </p>
+        <p>If you need to use unsafe extensions that may cause crashes when Tcl_DeleteInterp is called 
+		      	the recommended option is to select the prefork MPM in your server configuration</p>
+        <h4>New commands</h4>
+        <ul>
+            <li>The new <b>::rivet::thread_id</b>
+
+ command has been introduced. 
+		      		<b>::rivet::thread_id</b>
+
+ returns the hexadecimal thread id printed 
+		      		in the very same format adopted by the <b>::thread::id</b>
+
+ command (package Thread). 
+		      		Therefore if you need this information for debugging or logging you don't need to
+		      		require package Thread for that. <p>
+                    <b>[::rivet::thread_id -decimal]</b>
+
+ 
+		      		returns a decimal id that can be matched with the thread id printed in the
+						apache logs                                    </p>
+            </li>
+        </ul>
+        <h4>Fixed bugs</h4>
+        <ul>
+            <li>The <b>::rivet::upload</b>
+
+ command argument checking has been rewritten in order to have a terse
+						code for handling the several sub-command/argument combinations and also with the purpose
+						of fixing a bug that caused server crashes                            </li>
+        </ul>
+        <h4>Test suite extended</h4>
+        <ul>
+            <li>The server utility now handles the supplementary switches -mpm and -bridge<ul>
+                    <li>The first selects a specific MPM to run the tests</li>
+                    <li>The second selects a bridge different from the default. The only cases when the use of
+							both of them is meaningful is to test the worker or lazy bridge with the prefork MPM or the
+							lazy bridge with the worker MPM</li>
+                </ul>
+
+
+						e.g.:<pre>  ./runtests.tcl &lt;path-to-httpd&gt; -mpm worker</pre>
+            </li>
+        </ul>
+        <h4>Internals</h4>
+        <p>Modifications to the internal code that are transparent to the Tcl development include
+					an expansion of mod_rivet's global data structure that now contain all the server-wide configurable options
+					previously stored in the configuration records
+					</p>
+    </dd>
+</dl>
 
 <dl>
     <dt>Rivet 3.1 release notes</dt>
@@ -249,16 +336,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -266,13 +353,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -280,10 +367,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -294,7 +381,7 @@
     <h4>Acknowledgments</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
+            <a class="navitem" title="ASF Sponsorship" href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/html/var_access.html b/rivet/html/var_access.html
index 9b66344..eef722f 100644
--- a/rivet/html/var_access.html
+++ b/rivet/html/var_access.html
@@ -129,7 +129,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 28-11-2018 15:39:22 UTC</div>
                 </div>
             </div>
 
@@ -139,16 +139,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -156,13 +156,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" 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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -170,10 +170,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -184,25 +184,25 @@
     <h4>Examples</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="hello%5fworld.html">Hello world!</a>
+            <a class="navitem" title="Hello world!" href="hello%5fworld.html">Hello world!</a>
         </li>
         <li class="navitem">
-            <a href="colorful%5ftable.html">A colorful table</a>
+            <a class="navitem" title="A colorful table" href="colorful%5ftable.html">A colorful table</a>
         </li>
         <li class="navitem">
-            <a href="var%5faccess.html">Variable Access</a>
+            <a class="navitem" title="Variable Access" href="var%5faccess.html">Variable Access</a>
         </li>
         <li class="navitem">
-            <a href="file%5fupload.html">File Upload</a>
+            <a class="navitem" title="File Upload" href="file%5fupload.html">File Upload</a>
         </li>
         <li class="navitem">
-            <a href="file%5fdownload.html">File Download</a>
+            <a class="navitem" title="File Download" href="file%5fdownload.html">File Download</a>
         </li>
         <li class="navitem">
-            <a href="ajax.html">XML and Ajax</a>
+            <a class="navitem" title="XML and Ajax" href="ajax.html">XML and Ajax</a>
         </li>
         <li class="navitem">
-            <a href="calendar.html">Calendar</a>
+            <a class="navitem" title="Calendar" href="calendar.html">Calendar</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/index.html b/rivet/index.html
index ddf3e36..4916032 100644
--- a/rivet/index.html
+++ b/rivet/index.html
@@ -89,7 +89,7 @@
 
 
                 <div class="contentbottom">
-                    
+                    <div id="last_modified">Last Modified: 28-11-2018 15:39:22 UTC</div>
                 </div>
             </div>
 
@@ -99,16 +99,16 @@
     <h4>Rivet &amp; Tcl</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="The Rivet development team" href="html/about.html">About Us - Contact</a>
+            <a class="navitem" 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>
+            <a class="navitem" 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>
+            <a class="extern" title="The Tcl Developer Xchange" target="tclxchange" 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>
+            <a class="extern" title="Tcl community wiki site" target="tclwiki" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
         </li>
     </ul>
 </li>
@@ -116,13 +116,13 @@
     <h4>Getting Rivet to Work</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Getting Rivet" href="html/download.html">Getting Rivet</a>
+            <a class="navitem" title="Getting Rivet" href="html/download.html">Getting Rivet</a>
         </li>
         <li class="navitem">
-            <a href="html/release%2dnotes.html">Release Notes</a>
+            <a class="navitem" title="Release Notes" href="html/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>
+            <a class="extern" title="Apache Rivet Bugzilla" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
         </li>
     </ul>
 </li>
@@ -130,10 +130,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="html/hello%5fworld.html">Examples</a>
+            <a class="navitem" title="Examples" href="html/hello%5fworld.html">Examples</a>
         </li>
         <li class="navitem">
-            <a href="html/manuals.html">Manuals</a>
+            <a class="navitem" title="Manuals" href="html/manuals.html">Manuals</a>
         </li>
     </ul>
 </li>
@@ -147,7 +147,7 @@
     <h4>Acknowledgments</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
+            <a class="navitem" title="ASF Sponsorship" href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
         </li>
     </ul>
 </li>
diff --git a/rivet/manual3.2/abort_code.html b/rivet/manual3.2/abort_code.html
new file mode 100644
index 0000000..f825122
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">abort_code</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="shorthand.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="abort_page.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="abort_code"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>abort_code — 
+				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="idm790"></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="top">&lt;?= ... ?&gt; </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="right" valign="top"> abort_page</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/abort_page.html b/rivet/manual3.2/abort_page.html
new file mode 100644
index 0000000..b2ecb77
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">abort_page</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abort_code.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="apache_log_error.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="abort_page"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>abort_page — 
+		    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>-aborting</code></em></span>)</div></div></div><div class="refsect1"><a name="idm808"></a><h2>Description</h2><p style="width:90%">
+		    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.2 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.2 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" valign="top">abort_code </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="right" valign="top"> apache_log_error</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/apache_log_error.html b/rivet/manual3.2/apache_log_error.html
new file mode 100644
index 0000000..39fb6af
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">apache_log_error</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abort_page.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="apache_table.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="apache_log_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>apache_log_error — log messages to the Apache error log</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::apache_log_error</span>  ?<span style="font-family:monospace; font-weight: bold;">priority</span>? ?<span style="font-family:monospace; font-weight: bold;">message</span>?</div></div></div><div class="refsect1"><a name="idm829"></a><h2>Description</h2><p style="width:90%">
+		    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="top">abort_page </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="right" valign="top"> apache_table</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/apache_table.html b/rivet/manual3.2/apache_table.html
new file mode 100644
index 0000000..6fe9ab4
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">apache_table</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apache_log_error.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="catch.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="apache_table"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>apache_table — access and manipulate Apache tables in the request structure.</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::apache_table</span>  (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">set</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">unset</span> | <span style="font-family:monospace; font-weight: bold;">names</span> | <span style="font-family:monospace; font-weight: bold;">array_get</span> | <span style="font-family:monospace; font-weight: bold;">clear</span>)</div></div></div><div class="refsect1"><a name="idm857"></a><h2>Description</h2><p style="width:90%">
+		    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="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">
+				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="replaceable"><code>key</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></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 "><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="replaceable"><code>list</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">
+				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 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">
+				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 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">
+				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="40%" align="left" valign="top">apache_log_error </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="right" valign="top"> catch</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/asciiglyphs.html b/rivet/manual3.2/asciiglyphs.html
new file mode 100644
index 0000000..0b3c13d
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="decode.html" title="decode"><link rel="next" href="toglyphs.html" title="toGlyphs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AsciiGlyphs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="decode.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="toglyphs.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="asciiglyphs"></a>AsciiGlyphs</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4203"></a>Introduction</h3></div></div></div><p style="width:90%">
+				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="idm4219"></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"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> toGlyphs</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/calendar.html b/rivet/manual3.2/calendar.html
new file mode 100644
index 0000000..5191b58
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Calendar</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="calendar_package.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Calendar Package</th><td width="20%" align="right"> <a accesskey="n" href="xml_calendar.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="calendar"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>Calendar — Utility class the builds and prints a calendar table</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">Calendar</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>calendar_name</code></em></span> </div></div></div><div class="refsect1"><a name="idm3977"></a><h2>Calendar object subcommands</h2><p style="width:90%">
+				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="idm3981"></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></td></tr><tr><td width="40%" align="left" valign="top">Calendar Package </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="right" valign="top"> XmlCalendar</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/calendar_package.html b/rivet/manual3.2/calendar_package.html
new file mode 100644
index 0000000..c26d28f
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="form_package.html" title="form"><link rel="next" href="calendar.html" title="Calendar"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Calendar Package</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="form_package.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="calendar.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="calendar_package"></a>Calendar Package</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3957"></a>Introduction</h3></div></div></div><p style="width:90%">
+      	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 accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Calendar</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/catch.html b/rivet/manual3.2/catch.html
new file mode 100644
index 0000000..400c87c
--- /dev/null
+++ b/rivet/manual3.2/catch.html
@@ -0,0 +1,19 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">catch</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apache_table.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="clock_to_rfc.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="catch"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>catch — wraps core command <span style="font-family:monospace"><span class="command"><strong>catch</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>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>error_code_var_name</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>options_var_name</code></em></span>?</div></div></div><div class="refsect1"><a name="idm988"></a><h2>Description</h2><p style="width:90%">
+		    	<span style="font-family:monospace"><span class="command"><strong>::rivet::catch</strong></span></span> wraps the core language <span style="font-family:monospace"><span class="command"><strong>catch</strong></span></span>
+		    	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%" align="left" valign="top">apache_table </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="right" valign="top"> clock_to_rfc850_gmt</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/clock_to_rfc.html b/rivet/manual3.2/clock_to_rfc.html
new file mode 100644
index 0000000..505e254
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">clock_to_rfc850_gmt</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="catch.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="cookie.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="clock_to_rfc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>clock_to_rfc850_gmt — create a rfc850 time from [clock seconds].</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::clock_to_rfc850_gmt</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>seconds</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1011"></a><h2>Description</h2><p style="width:90%">
+		    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 </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="right" valign="top"> cookie</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/cmake.html b/rivet/manual3.2/cmake.html
new file mode 100644
index 0000000..8d5fc0e
--- /dev/null
+++ b/rivet/manual3.2/cmake.html
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Building Rivet 3.2 with CMake</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="installation.html" title="Apache Rivet 3.2 Installation"><link rel="next" href="directives.html" title="Apache Rivet 3.2 Configuration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Building Rivet 3.2 with CMake</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="installation.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="directives.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="cmake"></a>Building Rivet 3.2 with CMake</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm185"></a>CMake build procedure and examples</h3></div></div></div><p style="width:90%">
+				Starting with 3.2 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.2 Installation </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="right" valign="top"> Apache Rivet 3.2 Configuration</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/commands.html b/rivet/manual3.2/commands.html
new file mode 100644
index 0000000..7cd88e2
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="request.html" title="Apache Child Processes Lifecycle and Request Processing"><link rel="next" href="shorthand.html" title="&lt;?= ... ?&gt;"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Rivet Tcl Commands and Variables</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="request.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="shorthand.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="commands"></a>Rivet Tcl Commands and Variables</h2></div></div></div><div class="section"><div class="titlepage"></div><p style="width:90%">
+			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%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> &lt;?= ... ?&gt;</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/cookie.html b/rivet/manual3.2/cookie.html
new file mode 100644
index 0000000..272c410
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">cookie</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="clock_to_rfc.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="debug.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>cookie — get, set and delete cookies.</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::cookie</span>  ?<span style="font-family:monospace; font-weight: bold;">set</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>cookieName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">cookiValue</span>?</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-days <em class="replaceable"><code>expireInDays</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-hours <em class="replaceable"><code>expireInHours</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-minutes <em class="replaceable"><code>expireInMinutes</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-expires <em class="replaceable"><code>Wdy, DD-Mon-YYYY HH:MM:SS GMT</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-path <em class="replaceable"><code>uriPathCookieAppliesTo</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-secure <em class="replaceable"><code>1/0</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-HttpOnly <em class="replaceable"><code>1/0</code></em></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 "><span style="font-weight:bold ; font-family:monospace">::rivet::cookie</span>  ?<span style="font-family:monospace; font-weight: bold;">get</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>cookieName</code></em></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 "><span style="font-weight:bold ; font-family:monospace">::rivet::cookie</span>  ?<span style="font-family:monospace; font-weight: bold;">delete</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>cookieName</code></em></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 "><span style="font-weight:bold ; font-family:monospace">::rivet::cookie</span>  ?<span style="font-family:monospace; font-weight: bold;">unset</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>cookieName</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1056"></a><h2>Description</h2><p style="width:90%">
+			    <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">clock_to_rfc850_gmt </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="right" valign="top"> debug</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/debug.html b/rivet/manual3.2/debug.html
new file mode 100644
index 0000000..497b635
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">debug</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cookie.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="env.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="debug"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>debug — 
+		    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;">-separator</span>  ?<span style="font-family:monospace; font-weight: bold;">&lt;string&gt;</span>?  <span style="font-family:monospace; font-weight: bold;">-option</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>&lt;value&gt;</code></em></span>?  <span style="font-family:monospace; font-weight: bold;">-option</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>&lt;value&gt;</code></em></span>?  <span style="font-family:monospace; font-weight: bold;">...</span> </div></div></div><div class="refsect1"><a name="idm1083"></a><h2>Description</h2><p style="width:90%">
+		    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 </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="right" valign="top"> env</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/decode.html b/rivet/manual3.2/decode.html
new file mode 100644
index 0000000..62da022
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">decode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="encode.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">RivetEntities</th><td width="20%" align="right"> <a accesskey="n" href="asciiglyphs.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="decode"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>decode — 
+                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>?</div></div></div><div class="refsect1"><a name="idm4195"></a><h2>Description</h2><p style="width:90%">
+                    <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" valign="top">encode </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="right" valign="top"> AsciiGlyphs</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/dio.html b/rivet/manual3.2/dio.html
new file mode 100644
index 0000000..0063d3e
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="tcl_packages.html" title="Rivet Tcl Packages"><link rel="next" href="dio_package.html" title="DIO"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DIO - Database Interface Objects</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="tcl_packages.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="dio_package.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="dio"></a>DIO - Database Interface Objects</h2></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tcl_packages.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="dio_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Rivet Tcl Packages </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="right" valign="top"> DIO</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/dio_package.html b/rivet/manual3.2/dio_package.html
new file mode 100644
index 0000000..a95a9ca
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 Interface Objects Display Class"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DIO</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dio.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">DIO - Database Interface Objects</th><td width="20%" align="right"> <a accesskey="n" href="diodisplay.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="dio_package"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>DIO — Database Interface Objects</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">::DIO::handle</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>interface</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div></div><div class="refsect1"><a name="idm2093"></a><h2>Description</h2><p style="width:90%">
+	  <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="idm2106"></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="replaceable"><code>hostname</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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 ; padding .5ex">The port number to connect to on hostname.</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;">-user</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>username</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">The username you wish to login to the server as.</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;">-pass</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>password</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">The password to login to the server with.</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;">-db</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>database</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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 ; padding .5ex">
+		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="margin-bottom:1.5ex ; padding .5ex">
+		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</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+				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="margin-bottom:1.5ex ; padding .5ex">
+				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="idm2176"></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>objectName</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">array</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>request</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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:monospace; font-weight: bold;">value</span> | <span style="font-family:monospace; font-weight: bold;">boolean</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="margin-bottom:1.5ex ; padding .5ex">	      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 .5ex">	      Return a count of the number of rows in the
+		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:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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:1.5ex ; padding .5ex">
+		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-weight: bold;">value</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">errorinfo contains the value of
+		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; font-weight: bold;"><em class="replaceable"><code>request</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>key</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>request</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>body</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+	       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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>table</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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 ; padding .5ex">
+		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-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>pattern</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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 ; padding .5ex">
+		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: bold;">request</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>arrayName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>keyfield</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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 ; padding .5ex">Increment sequence and return the
+		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 ; padding .5ex">Open the connection to the current database.  This
+		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:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">Return the current port value.  If value is
+		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 style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>string</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">Return the specified string quoted in
+	      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: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>arrayName</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>request</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">Return the current table.  If
+		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:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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>resultObj</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">autocache</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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 ; padding .5ex">
+		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-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>-type</code></em></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="replaceable"><code>body</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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:monospace; font-weight: bold;"><em class="replaceable"><code>-type</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varName</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="left" valign="top">DIO - Database Interface Objects </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="right" valign="top"> DIODisplay - Database Interface Objects Display Class</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/diodisplay.html b/rivet/manual3.2/diodisplay.html
new file mode 100644
index 0000000..48e77ae
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="dio_package.html" title="DIO"><link rel="next" href="diodisplay_package.html" title="DIODisplay"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DIODisplay - Database Interface Objects Display Class</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dio_package.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="diodisplay_package.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="diodisplay"></a>DIODisplay - Database Interface Objects Display Class</h2></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dio_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="diodisplay_package.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">DIO </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="right" valign="top"> DIODisplay</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/diodisplay_package.html b/rivet/manual3.2/diodisplay_package.html
new file mode 100644
index 0000000..5b87fc0
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="next" href="session_package.html" title="Session Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DIODisplay</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="diodisplay.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">DIODisplay - Database Interface Objects Display Class</th><td width="20%" align="right"> <a accesskey="n" href="session_package.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="diodisplay_package"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>DIODisplay — Database Interface Objects Display Class</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">DIODisplay</span>  (<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span> | <span style="font-family:monospace; font-weight: bold;">#auto</span>) (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div></div><div class="refsect1"><a name="idm2713"></a><h2>Description</h2><p style="width:90%">
+	  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="idm2716"></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="idm2819"></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-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">
+		  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; font-weight: bold;">-arg</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arg</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">
+		  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="idm3132"></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="idm3213"></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:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span>...)</div></div><p style="width:90%">
+	    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="idm3271"></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="left" valign="top">DIODisplay - Database Interface Objects Display Class </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="right" valign="top"> Session Package</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/directives.html b/rivet/manual3.2/directives.html
new file mode 100644
index 0000000..11bc27e
--- /dev/null
+++ b/rivet/manual3.2/directives.html
@@ -0,0 +1,306 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.2 Configuration</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="cmake.html" title="Building Rivet 3.2 with CMake"><link rel="next" href="processing.html" title="Apache Rivet HTTP Request Processing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Rivet 3.2 Configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmake.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="processing.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="directives"></a>Apache Rivet 3.2 Configuration</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm200"></a>Apache Rivet Configuration lines</h3></div></div></div><p style="width:90%">
+	      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>This directive is meaningful with the default request handler. In order
+					to have this triggered by calling ::rivet::abort_page or ::rivet::exit
+					any special request handler should explicitly read this script from the configuration
+					using ::rivet::inspect and evaluate it (see <a class="xref" href="request.html" title="Apache Child Processes Lifecycle and Request Processing">the section called “Apache Child Processes Lifecycle and Request Processing”</a>)</td>
+				</tr><tr><td>AfterScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td>Special request handler scripts
+				should read it from the configuration calling ::rivet::inspect and evaluate it</td></tr><tr><td>AfterEveryScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td>See notes for the AfterScript directive</td></tr><tr><td>BeforeScript</td><td>X</td><td>X</td><td>X</td><td>X</td>
+					 <td>See notes for the AfterScript directive</td></tr><tr><td>CacheSize</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>ChildExitScript</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>ChildInitScript</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>ErrorScript</td><td>X</td><td>X</td><td>X</td><td>X</td>
+					<td>Rivet provides a default error handler. In case you are writing your own request
+					handling procedure you need to call this error handler yourself or develop your
+					application specific error handler to be integrated into the RequestHandler script.
+					See also the notes for the AbortScript and AfterScript directives</td></tr><tr><td>ExportRivetNS</td><td></td><td></td><td>X</td><td>X</td><td>It can be set in a virtual host
+				configuration if SeparateVirtualInterps is On, otherwise this directive can be safely used at the global level only</td></tr><tr><td>GlobalInitScript</td><td></td><td></td><td>X</td><td></td>
+				    <td>effective only when SeparateVirtualInterps is Off (default)</td></tr><tr><td>ImportRivetNS</td><td></td><td></td><td>X</td><td>X</td><td>It can be set in a virtual host
+				configuration if SeparateVirtualInterps is On, otherwise this directive can be safely used at the global level only</td></tr><tr><td>HonorHeaderOnlyRequests</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>MpmBridge</td><td></td><td></td><td>X</td><td></td><td>global only</td></tr><tr><td>RequestHandler</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>SeparateChannels</td><td></td><td></td><td>X</td><td></td><td>global only (DEPRECATED: will be
+				replaced in future versions of Rivet)</td></tr><tr><td>SeparateVirtualInterps</td><td></td><td></td><td>X</td><td></td><td>global only</td></tr><tr><td>ServerInitScript</td><td></td><td></td><td>X</td><td></td><td>global only</td></tr><tr><td>SingleThreadExit</td><td></td><td></td><td>X</td><td></td><td>global only</td></tr><tr><td>UploadDirectory</td><td>X</td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>UploadFilesToVar</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>UploadMaxSize</td><td></td><td></td><td>X</td><td>X</td><td></td></tr></tbody></table></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;">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 mod_rivet places the whole command set on
+						the export list of the ::rivet 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 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 mod_rivet is told to place the whole command set on
+						the export list of the ::rivet namespace (implicitly forcing also ExportRivetNS)
+						and then importing the commands 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 could be removed in
+						future versions of Rivet. This option is 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 module attempt to interpolate the argument value
+						<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 configure switch <span style="font-family:monospace"><span class="command"><strong>--with-rivet-target-dir=DIR</strong></span></span>.
+						For example 
+						<pre class="programlisting">RivetServerConf MpmBridge lazy</pre> will cause the
+						rivet_lazy_mpm.so library module to be loaded.
+					</div><div style="margin-bottom:1.5ex ; padding .5ex">
+						If such library does not exists mod_rivet tries to check if such definition is actually
+						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;">SingleThreadExit</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">
+						The Tcl <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command has a simple implementation that
+						eventually calls Tcl_Exit (which in turn calls stdlib's exit) that forces
+						the immediate deletion of all threads in a process. This behavior would be
+		   			unacceptable with the worker MPM and worker bridge which are fundamentally
+		   			threaded. 
+		   			Therefore Rivet shadows the Tcl <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command with
+		   			<span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> which calls a designated function in
+		   			the running bridge. The prefork bridge simply prepares the child process
+		   			to terminate, whereas the worker bridge is behavior controlled by this option.
+		   			<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">If SingleThreadExit is set (default) each thread behaves
+		   				individually and terminates after running the ChildExitScript and deleting 
+		   				its Tcl interpreters</li><li class="listitem">If SingleThreadExit is <span style="font-family:monospace"><span class="command"><strong>No</strong></span></span> the worker bridge notifies all threads
+		   				to exit and then calls Tcl_Exit</li></ol></div>
+		   			The latter option might be useful in cases where an application is using
+		   			an improperly developed Tcl extension which might cause a child process to crash when
+		   			calling Tcl_DeleteInterp.
+					</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 default is <span style="font-family:monospace"><span class="command"><strong>No</strong></span></span> for the prefork bridge (loaded by default if the server
+						runs the prefork MPM) and <span style="font-family:monospace"><span class="command"><strong>true</strong></span></span> for the worker and lazy bridges
+					</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;">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.2 with CMake </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="right" valign="top"> Apache Rivet HTTP Request Processing</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/encode.html b/rivet/manual3.2/encode.html
new file mode 100644
index 0000000..ec6264c
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">encode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="entities.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">RivetEntities</th><td width="20%" align="right"> <a accesskey="n" href="decode.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="encode"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>encode — 
+                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>?</div></div></div><div class="refsect1"><a name="idm4178"></a><h2>Description</h2><p style="width:90%">
+                <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></td></tr><tr><td width="40%" align="left" valign="top">RivetEntities </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="right" valign="top"> decode</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/entities.html b/rivet/manual3.2/entities.html
new file mode 100644
index 0000000..27c82b7
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="html_calendar.html" title="HtmlCalendar"><link rel="next" href="encode.html" title="encode"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">RivetEntities</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="html_calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="encode.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="entities"></a>RivetEntities</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4163"></a>Introduction</h3></div></div></div><p style="width:90%">
+				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" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> encode</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/env.html b/rivet/manual3.2/env.html
new file mode 100644
index 0000000..9b76004
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">env</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="escape_sgml_chars.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>env — 
+		    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="idm1096"></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="top">debug </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="right" valign="top"> escape_sgml_chars</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/escape_sgml_chars.html b/rivet/manual3.2/escape_sgml_chars.html
new file mode 100644
index 0000000..73a7e49
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">escape_sgml_chars</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="env.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="escape_shell_command.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="escape_sgml_chars"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_sgml_chars — escape special SGML characters in 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::escape_sgml_chars</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1"><a name="idm1107"></a><h2>Description</h2><p style="width:90%">
+		    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="top">env </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="right" valign="top"> escape_shell_command</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/escape_shell_command.html b/rivet/manual3.2/escape_shell_command.html
new file mode 100644
index 0000000..21f7611
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="escape_string"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">escape_shell_command</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="escape_sgml_chars.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="escape_string.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="escape_shell_command"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_shell_command — escape shell metacharacters in 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::escape_shell_command</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1"><a name="idm1118"></a><h2>Description</h2><p style="width:90%">
+		    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" valign="top">escape_sgml_chars </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="right" valign="top"> escape_string</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/escape_string.html b/rivet/manual3.2/escape_string.html
new file mode 100644
index 0000000..db8de62
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">escape_string</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="escape_shell_command.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="exit.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="escape_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_string — convert a string into escaped 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::escape_string</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1"><a name="idm1130"></a><h2>Description</h2><p style="width:90%">
+		    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="top">escape_shell_command </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="right" valign="top"> exit</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/examples.html b/rivet/manual3.2/examples.html
new file mode 100644
index 0000000..a090871
--- /dev/null
+++ b/rivet/manual3.2/examples.html
@@ -0,0 +1,512 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="xml.html" title="xml"><link rel="next" href="tcl_packages.html" title="Rivet Tcl Packages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Examples and Usage</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="xml.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="tcl_packages.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="examples"></a>Examples and Usage</h2></div></div></div><p style="width:90%">
+        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="idm1967"></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 colortable.rvt and put the following code in it
+	  	</p><pre class="programlisting">&lt;html&gt;&lt;head&gt;
+    &lt;style&gt;
+        td { 
+            font-size: 12px;
+            font-family: monospace;
+            text-align: center;
+            padding-left: 3px;
+            padding-right: 3px
+        }
+        td.bright { color: #eee; }
+        td.dark   { color: #222; }
+    &lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;table&gt;
+&lt;?
+# 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 + $j - $i) / 16)]
+        set b [expr int(255 * (abs (4 - $i) + abs(4 - $j)) / 8)]
+
+# 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; 148.0} {
+            set cssclass "dark"
+        } else {
+            set cssclass "bright"
+        }
+
+        set cell [format "%3d %3d %3d" $r $g $b]
+
+        puts [format \
+            "&lt;td bgcolor=\"%02x%02x%02x\" class=\"%s\"&gt;%s&lt;/td&gt;" \
+                                            $r $g $b $cssclass $cell]
+    }
+    puts "&lt;/tr&gt;"
+}
+?&gt;
+    &lt;/table&gt;
+&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 accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Rivet Tcl Packages</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/exit.html b/rivet/manual3.2/exit.html
new file mode 100644
index 0000000..e8ba7af
--- /dev/null
+++ b/rivet/manual3.2/exit.html
@@ -0,0 +1,39 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">exit</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="escape_string.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="headers.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="exit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>exit — terminate execution and child process</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::exit</span>  ?<span style="font-family:monospace; font-weight: bold;">code</span>?</div></div></div><div class="refsect1"><a name="idm1142"></a><h2>Description</h2><p style="width:90%">
+				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 eventually 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%">
+				Rivet's specific implementation prevents any abrupt process termination
+				that otherwise the <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command would bring about deferring
+				the call to Tcl_Exit to a later stage when the request processing has finished.
+				This is always true if the mod_rivet runs the prefork bridge. The behavior with
+				the worker bridge depends on the <span style="font-family:monospace"><span class="command"><strong>SingleThreadExit</strong></span></span> configuration
+				directive. By default all the threads of a single process are requested to exit
+				before the child process exits. Starting with version 3.2
+				by setting the <span style="font-family:monospace"><span class="command"><strong>SingleThreadExit</strong></span></span> option directive 
+				calling <span style="font-family:monospace"><span class="command"><strong>::rivet::exit</strong></span></span> causes a single thread termination. 
+				Though always accepted this directive is meaningful only if used with the worker
+				or lazy bridges.
+			</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.4/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%" align="left" valign="top">escape_string </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="right" valign="top"> headers</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/fb.html b/rivet/manual3.2/fb.html
new file mode 100644
index 0000000..9c00edc
--- /dev/null
+++ b/rivet/manual3.2/fb.html
@@ -0,0 +1,263 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">FormBroker</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="formbroker.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">The Form Broker</th><td width="20%" align="right"> <a accesskey="n" href="help.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="fb"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>FormBroker — 
+               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; font-weight: bold;">variable1 descriptor</span>? ?<span style="font-family:monospace; font-weight: bold;">variable2 descriptor</span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div></div><div class="refsect1"><a name="idm4249"></a><h2>Description</h2><p style="width:90%">
+               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 method <span style="font-family:monospace"><span class="command"><strong>create</strong></span></span>. Each descriptor
+               is a list of parameter or parameter-value pairs that must
+               begin with the <span style="font-family:monospace"><span class="command"><strong>{variable_name variable_type}</strong></span></span> pair as only
+               requirement. A formbroker object provide native support for
+               integer, unsigned integer, string, boolean and email data types.
+               The programmer can defined new data types and provide in the descriptor a
+               reference to a validation procedure for that type.
+            </p><p style="width:90%">
+               The optional  ?<span style="font-family:monospace; font-weight: bold;">-quoting quoting_procedure</span>? switch defines an
+               external procedure to quote or reformat the 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="idm4276"></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>  ?<span style="font-family:monospace; font-weight: bold;">-forcequote</span>?  <span style="font-family:monospace; font-weight: bold;">response</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>response copy</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        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">% package require formbroker
+% 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-bottom:1.5ex ; padding .5ex">
+                        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">% package require formbroker
+% 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:monospace; font-weight: bold;">response_array_name</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+                        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.5ex ; padding .5ex">
+                     	The method resets the object to its initial defaults
+                     </div></div></dd></dl></div></div><div class="refsect1"><a name="idm4341"></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%" align="left" valign="top">The Form Broker </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="right" valign="top"> Resources - How to Get Help</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/form.html b/rivet/manual3.2/form.html
new file mode 100644
index 0000000..146b7e1
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="session_package.html" title="Session Package"><link rel="next" href="form_package.html" title="form"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Form: An HTML Form Fields Generation Utility</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="session_package.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="form_package.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="form"></a>Form: An HTML Form Fields Generation Utility</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3493"></a>Introduction</h3></div></div></div><p style="width:90%">
+			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="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> form</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/form_package.html b/rivet/manual3.2/form_package.html
new file mode 100644
index 0000000..7432b9d
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" title="Calendar Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">form</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="form.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Form: An HTML Form Fields Generation Utility</th><td width="20%" align="right"> <a accesskey="n" href="calendar_package.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="form_package"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>form —  a Tcl command object for creating HTML forms</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">form</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>form_name</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">-option1 <em class="replaceable"><code>value_1</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-option2 <em class="replaceable"><code>value_2</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div></div><div class="refsect1"><a name="idm3517"></a><p style="width:90%">
+	                        creates and returns a new Tcl command named <em class="replaceable"><code>form_name</code></em>.
+			</p><div class="refsect2"><a name="idm3521"></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>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+			      			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 ; padding .5ex">
+		      				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.5ex ; padding .5ex">
+								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="idm3553"></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></div></dd></dl></div><p style="width:90%">			
+				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="idm3576"></a><h2>Subcommands</h2><div class="refsect2"><a name="idm3578"></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-family:monospace; font-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">-method <em class="replaceable"><code>get | post</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-name <em class="replaceable"><code>form_name</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-defaults <em class="replaceable"><code>default_values</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-action <em class="replaceable"><code>URL</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3599"></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;">-method</span>  ?<span style="font-family:monospace; font-weight: bold;">post|get</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+    				      			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="margin-bottom:1.5ex ; padding .5ex">
+    			      				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><div style="margin-bottom:1.5ex ; padding .5ex">
+									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-bottom:1.5ex ; padding .5ex">
+									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="idm3631"></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="idm3638"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">type</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">	
+		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="idm3652"></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;">-opt1</span>  ?<span style="font-family:monospace; font-weight: bold;">val1</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+				      			Option description
+				      		</div></div></dd></dl></div></div></div><div class="refsect2"><a name="idm3661"></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; font-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">-values <em class="replaceable"><code>values</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-labels <em class="replaceable"><code>labels</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3676"></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</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>values_list</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+												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="margin-bottom:1.5ex ; padding .5ex">
+												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="idm3703"></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: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">-label <em class="replaceable"><code>label</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-value <em class="replaceable"><code>value</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3721"></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-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">-labels <em class="replaceable"><code>labels_list</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-values <em class="replaceable"><code>values_list</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3739"></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</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>values_list</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+												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="margin-bottom:1.5ex ; padding .5ex">
+												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="idm3760"></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-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3769"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3778"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3791"></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: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="idm3802"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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="idm3811"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an image input field
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3820"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits a radiobutton input field
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3829"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "color" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3838"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "date" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3847"></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: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "datetime" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3856"></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-weight: bold;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "datetime_local" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3865"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "email" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3874"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "file" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3883"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "month" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3892"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "number" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3901"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "range" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3910"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "search" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3919"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "tel" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3928"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "time" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3937"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								Emits an HTML 5 "url" form field						
+							</div></div></dd></dl></div></div><div class="refsect2"><a name="idm3946"></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;">name</span>? ?<span style="font-family:monospace; font-weight: bold;">args</span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+								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 width="40%" align="left" valign="top">Form: An HTML Form Fields Generation Utility </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="right" valign="top"> Calendar Package</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/formbroker.html b/rivet/manual3.2/formbroker.html
new file mode 100644
index 0000000..370bd86
--- /dev/null
+++ b/rivet/manual3.2/formbroker.html
@@ -0,0 +1,18 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="toglyphs.html" title="toGlyphs"><link rel="next" href="fb.html" title="FormBroker"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The Form Broker</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="toglyphs.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="fb.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="formbroker"></a>The Form Broker</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4224"></a>Introduction</h3></div></div></div><p style="width:90%">
+         The <span style="font-family:monospace"><span class="command"><strong>FormBroker</strong></span></span> package creates instances of 
+         form data description objects. These objects instances have
+         a simple set of methods to validate and control data
+         as typically posted by HTML forms,
+         thus data represented as the map of form variables
+         to their values. In Rivet this association can be obtained either
+         calling <a class="xref" href="load_response.html" title="load_response">load_response</a> or
+         <a class="xref" href="var.html" title="var">var, </a> (form variables can be selectively
+         read also calling <span style="font-family:monospace"><span class="command"><strong>::rivet::var_post</strong></span></span> or
+         <span style="font-family:monospace"><span class="command"><strong>::rivet::var_qs</strong></span></span>)
+      </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
+			will likely need design improvements.
+      </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="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> FormBroker</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/headers.html b/rivet/manual3.2/headers.html
new file mode 100644
index 0000000..748d8c6
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">headers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="exit.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="html.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>headers — set and parse HTTP headers.</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::headers</span>  (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">set</span> | <span style="font-family:monospace; font-weight: bold;">redirect</span> | <span style="font-family:monospace; font-weight: bold;">add</span> | <span style="font-family:monospace; font-weight: bold;">type</span> | <span style="font-family:monospace; font-weight: bold;">numeric</span>)</div></div></div><div class="refsect1"><a name="idm1179"></a><h2>Description</h2><p style="width:90%">
+		  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="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">
+							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="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">
+					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="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">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="left" valign="top">exit </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="right" valign="top"> html</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/help.html b/rivet/manual3.2/help.html
new file mode 100644
index 0000000..70a739b
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="fb.html" title="FormBroker"><link rel="next" href="internals.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Resources - How to Get Help</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="fb.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="internals.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="help"></a>Resources - How to Get Help</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4354"></a>Mailing Lists</h3></div></div></div><p style="width:90%">
+	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="idm4361"></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="idm4381"></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="idm4385"></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="idm4388"></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.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Rivet Internals</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/html.html b/rivet/manual3.2/html.html
new file mode 100644
index 0000000..06e417f
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">html</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="headers.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="http_accept.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="html"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>html — construct html tagged text.</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::html</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>string</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arg</code></em></span>...?</div></div></div><div class="refsect1"><a name="idm1265"></a><h2>Description</h2><p style="width:90%">
+		    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">headers </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="right" valign="top"> http_accept</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/html_calendar.html b/rivet/manual3.2/html_calendar.html
new file mode 100644
index 0000000..e4117b5
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">HtmlCalendar</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="xml_calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Calendar Package</th><td width="20%" align="right"> <a accesskey="n" href="entities.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="html_calendar"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>HtmlCalendar — Concrete class derived from XmlCalendar</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">HtmlCalendar</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>calendar_name</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">-option1 <em class="replaceable"><code>option_list</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-option2 <em class="replaceable"><code>option_list</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div></div><div class="refsect1"><a name="idm4154"></a><p style="width:90%">
+				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="idm4157"></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" valign="top">XmlCalendar </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="right" valign="top"> RivetEntities</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/http_accept.html b/rivet/manual3.2/http_accept.html
new file mode 100644
index 0000000..1176ae9
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">http_accept</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="html.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="import_keyvalue_pairs.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="http_accept"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>http_accept — Parse HTTP Accept header lines</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::http_accept
+                 ?<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="idm1283"></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)]
+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="left" valign="top">html </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="right" valign="top"> import_keyvalue_pairs</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/images/acrobat.png b/rivet/manual3.2/images/acrobat.png
new file mode 100644
index 0000000..6907b4e
--- /dev/null
+++ b/rivet/manual3.2/images/acrobat.png
Binary files differ
diff --git a/rivet/manual3.2/images/blank.png b/rivet/manual3.2/images/blank.png
new file mode 100644
index 0000000..764bf4f
--- /dev/null
+++ b/rivet/manual3.2/images/blank.png
Binary files differ
diff --git a/rivet/manual3.2/images/calendar.png b/rivet/manual3.2/images/calendar.png
new file mode 100644
index 0000000..54f9f33
--- /dev/null
+++ b/rivet/manual3.2/images/calendar.png
Binary files differ
diff --git a/rivet/manual3.2/images/caution.png b/rivet/manual3.2/images/caution.png
new file mode 100644
index 0000000..5b7809c
--- /dev/null
+++ b/rivet/manual3.2/images/caution.png
Binary files differ
diff --git a/rivet/manual3.2/images/color-table.png b/rivet/manual3.2/images/color-table.png
new file mode 100644
index 0000000..f9eaf3d
--- /dev/null
+++ b/rivet/manual3.2/images/color-table.png
Binary files differ
diff --git a/rivet/manual3.2/images/disk.png b/rivet/manual3.2/images/disk.png
new file mode 100644
index 0000000..772566e
--- /dev/null
+++ b/rivet/manual3.2/images/disk.png
Binary files differ
diff --git a/rivet/manual3.2/images/draft.png b/rivet/manual3.2/images/draft.png
new file mode 100644
index 0000000..0084708
--- /dev/null
+++ b/rivet/manual3.2/images/draft.png
Binary files differ
diff --git a/rivet/manual3.2/images/home.png b/rivet/manual3.2/images/home.png
new file mode 100644
index 0000000..eb904c8
--- /dev/null
+++ b/rivet/manual3.2/images/home.png
Binary files differ
diff --git a/rivet/manual3.2/images/important.png b/rivet/manual3.2/images/important.png
new file mode 100644
index 0000000..12c90f6
--- /dev/null
+++ b/rivet/manual3.2/images/important.png
Binary files differ
diff --git a/rivet/manual3.2/images/next.png b/rivet/manual3.2/images/next.png
new file mode 100644
index 0000000..0f4d18a
--- /dev/null
+++ b/rivet/manual3.2/images/next.png
Binary files differ
diff --git a/rivet/manual3.2/images/note.png b/rivet/manual3.2/images/note.png
new file mode 100644
index 0000000..d0c3c64
--- /dev/null
+++ b/rivet/manual3.2/images/note.png
Binary files differ
diff --git a/rivet/manual3.2/images/prev.png b/rivet/manual3.2/images/prev.png
new file mode 100644
index 0000000..dd3b6a2
--- /dev/null
+++ b/rivet/manual3.2/images/prev.png
Binary files differ
diff --git a/rivet/manual3.2/images/qbullet-note.png b/rivet/manual3.2/images/qbullet-note.png
new file mode 100644
index 0000000..88c30c0
--- /dev/null
+++ b/rivet/manual3.2/images/qbullet-note.png
Binary files differ
diff --git a/rivet/manual3.2/images/remote.png b/rivet/manual3.2/images/remote.png
new file mode 100644
index 0000000..d76b0f1
--- /dev/null
+++ b/rivet/manual3.2/images/remote.png
Binary files differ
diff --git a/rivet/manual3.2/images/scrollup.png b/rivet/manual3.2/images/scrollup.png
new file mode 100644
index 0000000..336232a
--- /dev/null
+++ b/rivet/manual3.2/images/scrollup.png
Binary files differ
diff --git a/rivet/manual3.2/images/table.png b/rivet/manual3.2/images/table.png
new file mode 100644
index 0000000..6ec425e
--- /dev/null
+++ b/rivet/manual3.2/images/table.png
Binary files differ
diff --git a/rivet/manual3.2/images/tip.png b/rivet/manual3.2/images/tip.png
new file mode 100644
index 0000000..5c4aab3
--- /dev/null
+++ b/rivet/manual3.2/images/tip.png
Binary files differ
diff --git a/rivet/manual3.2/images/toc-blank.png b/rivet/manual3.2/images/toc-blank.png
new file mode 100644
index 0000000..6ffad17
--- /dev/null
+++ b/rivet/manual3.2/images/toc-blank.png
Binary files differ
diff --git a/rivet/manual3.2/images/toc-minus.png b/rivet/manual3.2/images/toc-minus.png
new file mode 100644
index 0000000..abbb020
--- /dev/null
+++ b/rivet/manual3.2/images/toc-minus.png
Binary files differ
diff --git a/rivet/manual3.2/images/toc-plus.png b/rivet/manual3.2/images/toc-plus.png
new file mode 100644
index 0000000..941312c
--- /dev/null
+++ b/rivet/manual3.2/images/toc-plus.png
Binary files differ
diff --git a/rivet/manual3.2/images/up.png b/rivet/manual3.2/images/up.png
new file mode 100644
index 0000000..f9f8312
--- /dev/null
+++ b/rivet/manual3.2/images/up.png
Binary files differ
diff --git a/rivet/manual3.2/images/warning.png b/rivet/manual3.2/images/warning.png
new file mode 100644
index 0000000..1c33db8
--- /dev/null
+++ b/rivet/manual3.2/images/warning.png
Binary files differ
diff --git a/rivet/manual3.2/images/word.png b/rivet/manual3.2/images/word.png
new file mode 100644
index 0000000..4189771
--- /dev/null
+++ b/rivet/manual3.2/images/word.png
Binary files differ
diff --git a/rivet/manual3.2/import_keyvalue_pairs.html b/rivet/manual3.2/import_keyvalue_pairs.html
new file mode 100644
index 0000000..425f041
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">import_keyvalue_pairs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="http_accept.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="include.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="import_keyvalue_pairs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>import_keyvalue_pairs — Import an argument list into the named array</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::import_keyvalue_pairs</span>  ?<span style="font-family:monospace; font-weight: bold;">arrayName</span>? ?<span style="font-family:monospace; font-weight: bold;">argsList</span>?</div></div></div><div class="refsect1"><a name="idm1304"></a><h2>Description</h2><p style="width:90%">
+		    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">http_accept </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="right" valign="top"> include</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/include.html b/rivet/manual3.2/include.html
new file mode 100644
index 0000000..5e51721
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="inspect.html" title="inspect"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">include</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="import_keyvalue_pairs.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="inspect.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="include"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>include — includes a file into the output stream without modification.</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::include</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename_name</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1320"></a><h2>Description</h2><p style="width:90%">
+		    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="inspect.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">import_keyvalue_pairs </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="right" valign="top"> inspect</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/index.html b/rivet/manual3.2/index.html
new file mode 100644
index 0000000..89a74d3
--- /dev/null
+++ b/rivet/manual3.2/index.html
@@ -0,0 +1,106 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.2</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="next" href="installation.html" title="Apache Rivet 3.2 Installation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Rivet 3.2</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="installation.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="article"><div class="titlepage"><div><div><h2 class="title"><a name="idm1"></a>Apache Rivet 3.2</h2></div><div><div class="author"><h3 class="author"><span class="firstname">The Rivet Team</span></h3><div class="affiliation"><span class="orgname">The Apache Software Foundation<br></span><div class="address"><p><br>
+	            <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-2020 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.2</a></span></dt><dt><span class="section"><a href="installation.html">Apache Rivet 3.2 Installation</a></span></dt><dt><span class="section"><a href="cmake.html">Building Rivet 3.2 with CMake</a></span></dt><dd><dl><dt><span class="section"><a href="cmake.html#idm185">CMake build procedure and examples</a></span></dt></dl></dd><dt><span class="section"><a href="directives.html">Apache Rivet 3.2 Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="directives.html#idm200">Apache Rivet Configuration lines</a></span></dt><dt><span class="section"><a href="directives.html#idm212">Configuration Directives</a></span></dt></dl></dd><dt><span class="section"><a href="processing.html">Apache Rivet HTTP Request Processing</a></span></dt><dd><dl><dt><span class="section"><a href="processing.html#idm602">Tcl Scripts Processing</a></span></dt><dt><span class="section"><a href="processing.html#idm612">Example: basic OO Rivet Application</a></span></dt></dl></dd><dt><span class="section"><a href="request.html">Apache Child Processes Lifecycle and Request Processing</a></span></dt><dt><span class="section"><a href="commands.html">Rivet Tcl Commands and Variables</a></span></dt><dd><dl><dt><span class="section"><a href="commands.html#idm755"></a></span></dt><dt><span class="refentrytitle"><a href="shorthand.html">&lt;?= ... ?&gt;</a></span><span class="refpurpose"> — 
+				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="font-family:monospace"><span class="command"><strong>catch</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></span><span class="refpurpose"> — 
+		    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 string into escaped characters.</span></dt><dt><span class="refentrytitle"><a href="exit.html">exit</a></span><span class="refpurpose"> — terminate execution and child process</span></dt><dt><span class="refentrytitle"><a href="headers.html">headers</a></span><span class="refpurpose"> — set and parse HTTP headers.</span></dt><dt><span class="refentrytitle"><a href="html.html">html</a></span><span class="refpurpose"> — construct html tagged text.</span></dt><dt><span class="refentrytitle"><a href="http_accept.html">http_accept</a></span><span class="refpurpose"> — Parse HTTP Accept header lines</span></dt><dt><span class="refentrytitle"><a href="import_keyvalue_pairs.html">import_keyvalue_pairs</a></span><span class="refpurpose"> — Import an argument list into the named array</span></dt><dt><span class="refentrytitle"><a href="include.html">include</a></span><span class="refpurpose"> — includes a file into the output stream without modification.</span></dt><dt><span class="refentrytitle"><a href="inspect.html">inspect</a></span><span class="refpurpose"> — Introspection command for Rivet configuration</span></dt><dt><span class="refentrytitle"><a href="lassign_array.html">lassign_array</a></span><span class="refpurpose"> — Assign a list of values to array variables</span></dt><dt><span class="refentrytitle"><a href="lempty.html">lempty</a></span><span class="refpurpose"> — 
+		    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><span class="refentrytitle"><a href="load_response.html">load_response</a></span><span class="refpurpose"> — load form variables into an array.</span></dt><dt><span class="refentrytitle"><a href="lremove.html">lremove</a></span><span class="refpurpose"> — remove from a list elements matching one or more patterns</span></dt><dt><span class="refentrytitle"><a href="makeurl.html">makeurl</a></span><span class="refpurpose"> — construct url's based on hostname, port.</span></dt><dt><span class="refentrytitle"><a href="no_body.html">no_body</a></span><span class="refpurpose"> — Prevents Rivet from sending any content.</span></dt><dt><span class="refentrytitle"><a href="parray.html">parray</a></span><span class="refpurpose"> — Tcl's <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> with html formatting.</span></dt><dt><span class="refentrytitle"><a href="parse.html">parse</a></span><span class="refpurpose"> — parses a Rivet template file.</span></dt><dt><span class="refentrytitle"><a href="raw_post.html">raw_post</a></span><span class="refpurpose"> — get the unmodified body of a POST request sent by the client.</span></dt><dt><span class="refentrytitle"><a href="redirect.html">redirect</a></span><span class="refpurpose"> — Interrupt processing and divert to a new URL</span></dt><dt><span class="refentrytitle"><a href="read_file.html">read_file</a></span><span class="refpurpose"> — 
+			    Read the entire contents of a file and return it as a string.			
+			</span></dt><dt><span class="refentrytitle"><a href="thread_id.html">thread_id</a></span><span class="refpurpose"> — Returns the Tcl interpreter current thread id</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 template</span></dt><dt><span class="refentrytitle"><a href="var.html">var</a></span><span class="refpurpose"> — get the value of a form variable.</span></dt><dt><span class="refentrytitle"><a href="wrap.html">wrap</a></span><span class="refpurpose"> — 
+		    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="diodisplay.html">DIODisplay - Database Interface Objects Display Class</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="diodisplay_package.html">DIODisplay</a></span><span class="refpurpose"> — Database Interface Objects Display Class</span></dt></dl></dd><dt><span class="section"><a href="session_package.html">Session Package</a></span></dt><dd><dl><dt><span class="section"><a href="session_package.html#idm3276">Introduction</a></span></dt><dt><span class="section"><a href="session_package.html#requirements">Requirements</a></span></dt><dt><span class="section"><a href="session_package.html#idm3285">Preparing To Use It</a></span></dt><dt><span class="section"><a href="session_package.html#idm3295">Example Usage</a></span></dt><dt><span class="section"><a href="session_package.html#idm3307">Using Sessions From Your Code</a></span></dt><dt><span class="section"><a href="session_package.html#idm3353">Session Configuration Options</a></span></dt><dt><span class="section"><a href="session_package.html#idm3431">Session Methods</a></span></dt><dt><span class="section"><a href="session_package.html#idm3487">Getting Additional Randomness From The Entropy File</a></span></dt></dl></dd><dt><span class="section"><a href="form.html">Form: An HTML Form Fields Generation Utility</a></span></dt><dd><dl><dt><span class="section"><a href="form.html#idm3493">Introduction</a></span></dt><dt><span class="refentrytitle"><a href="form_package.html">form</a></span><span class="refpurpose"> —  a Tcl command object for creating HTML forms</span></dt></dl></dd><dt><span class="section"><a href="calendar_package.html">Calendar Package</a></span></dt><dd><dl><dt><span class="section"><a href="calendar_package.html#idm3957">Introduction</a></span></dt><dt><span class="refentrytitle"><a href="calendar.html">Calendar</a></span><span class="refpurpose"> — Utility class the builds and prints a calendar table</span></dt><dt><span class="refentrytitle"><a href="xml_calendar.html">XmlCalendar</a></span><span class="refpurpose"> — Prints XML formatted calendar tables</span></dt><dt><span class="refentrytitle"><a href="html_calendar.html">HtmlCalendar</a></span><span class="refpurpose"> — Concrete class derived from XmlCalendar</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#idm4163">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="asciiglyphs.html">AsciiGlyphs</a></span></dt><dd><dl><dt><span class="section"><a href="asciiglyphs.html#idm4203">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#idm4219">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#idm4224">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#idm4354">Mailing Lists</a></span></dt><dt><span class="section"><a href="help.html#idm4361">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#idm4381">Bug Tracking System</a></span></dt><dt><span class="section"><a href="help.html#idm4385">IRC</a></span></dt><dt><span class="section"><a href="help.html#idm4388">Editing Rivet Template Files</a></span></dt></dl></dd><dt><span class="section"><a href="internals.html">Rivet Internals</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#idm4400">Rivet approach to Apache Multiprocessing Models</a></span></dt><dt><span class="section"><a href="internals.html#idm4413">mod_rivet MPM Bridge callbacks</a></span></dt><dt><span class="section"><a href="internals.html#idm4447">Server Initialization and MPM Bridge</a></span></dt><dt><span class="section"><a href="internals.html#idm4450">RivetChan</a></span></dt><dt><span class="section"><a href="internals.html#idm4455">The <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> Command</a></span></dt><dt><span class="section"><a href="internals.html#idm4463">Page Parsing, Execution and Caching</a></span></dt><dt><span class="section"><a href="internals.html#idm4471">Extending Rivet by developing C code procedures</a></span></dt><dt><span class="section"><a href="internals.html#idm4495">Debugging Rivet and Apache</a></span></dt></dl></dd><dt><span class="section"><a href="lazybridge.html">Example: the <span class="quote">“<span class="quote">Lazy</span>”</span> bridge</a></span></dt><dd><dl><dt><span class="section"><a href="lazybridge.html#idm4525">The rationale of threaded bridges</a></span></dt><dt><span class="section"><a href="lazybridge.html#idm4529">Lazy bridge data structures</a></span></dt><dt><span class="section"><a href="lazybridge.html#idm4545">Handling Tcl's exit core command</a></span></dt><dt><span class="section"><a href="lazybridge.html#idm4564">HTTP request processing with the lazy bridge</a></span></dt></dl></dd></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>1. <a href="examples.html#hello_world">Hello World</a></dt><dt>2. <a href="examples.html#idm1967">Generate a Colorful Table</a></dt><dt>3. <a href="examples.html#variable_access">Variable Access</a></dt><dt>4. <a href="examples.html#file_upload">File Upload</a></dt><dt>5. <a href="examples.html#file_download">File Download</a></dt><dt>6. <a href="examples.html#ajax_xml_messaging">XML Messages and Ajax</a></dt><dt>7. <a href="examples.html#calendar_example">A Calendar Utility</a></dt></dl></div><p style="width:90%">
+    	This manual is released as part of Apache/Rivet 3.2.0 (Tuesday 2020-11-03 00:35:08+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.2</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.2 is a successor to Rivet 3.0, a major rewriting of mod_rivet,
+				the Apache HTTP Websever module at the core of Rivet. Unlike in 2.x of
+				mod_rivet, which only supported the
+				<a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/prefork.html" target="_top">prefork MPM</a>
+				(<a class="ulink" href="https://httpd.apache.org/docs/2.4/mpm.html" 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="https://httpd.apache.org/docs/2.4/mpm.html" 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.2 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.2 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.
+		</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.2 Installation</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/inspect.html b/rivet/manual3.2/inspect.html
new file mode 100644
index 0000000..f3383f2
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="include.html" title="include"><link rel="next" href="lassign_array.html" title="lassign_array"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">inspect</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="include.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="lassign_array.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="inspect"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>inspect — Introspection command for Rivet configuration</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::inspect</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>configuration_section</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>configuration_parameter</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1334"></a><h2>Description</h2><p style="width:90%">
+             <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"><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="lassign_array.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">include </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="right" valign="top"> lassign_array</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/installation.html b/rivet/manual3.2/installation.html
new file mode 100644
index 0000000..2cc3053
--- /dev/null
+++ b/rivet/manual3.2/installation.html
@@ -0,0 +1,169 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.2 Installation</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="index.html" title="Apache Rivet 3.2"><link rel="next" href="cmake.html" title="Building Rivet 3.2 with CMake"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Rivet 3.2 Installation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="cmake.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="installation"></a>Apache Rivet 3.2 Installation</h2></div></div></div><div class="procedure"><p style="width:90%"> 
+            Rivet 3.2 runs with the Apache 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%">
+				Rivet 2.x was restricted to work with the 
+				<a class="ulink" href="https://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.2 is now able to run with the 
+				<a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/worker.html" target="_top">worker</a> 
+            and the
+            <a class="ulink" href="https://httpd.apache.org/docs/2.4/mod/event.html" target="_top">event</a> 
+            MPMs. Rivet 3.2 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="https://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.2.0.tar.gz
+tar -xvf rivet-3.2.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.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="Apache Rivet 3.2 Configuration">the section called “Apache Rivet 3.2 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.2 </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="right" valign="top"> Building Rivet 3.2 with CMake</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/internals.html b/rivet/manual3.2/internals.html
new file mode 100644
index 0000000..ed1c7e9
--- /dev/null
+++ b/rivet/manual3.2/internals.html
@@ -0,0 +1,316 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="help.html" title="Resources - How to Get Help"><link rel="next" href="lazybridge.html" title="Example: the “Lazy” bridge"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Rivet Internals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="help.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="lazybridge.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="internals"></a>Rivet Internals</h2></div></div></div><p style="width:90%">
+      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="idm4400"></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. Currently 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 suit
+    		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="idm4413"></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, 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 is needed. 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 a valid function pointer to the content generator
+					implemented by the bridge. If the pointer is not defined the Apache
+					web server will stop at 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 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="idm4447"></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="idm4450"></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="idm4455"></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="idm4463"></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="idm4471"></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 carrying 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="idm4495"></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.2 Installation">the section called “Apache Rivet 3.2 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 accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Example: the <span class="quote">“<span class="quote">Lazy</span>”</span> bridge</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/lassign_array.html b/rivet/manual3.2/lassign_array.html
new file mode 100644
index 0000000..f6634f1
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">lassign_array</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="inspect.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="lempty.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="lassign_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lassign_array — Assign a list of values to array variables</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::lassign_array</span>  ?<span style="font-family:monospace; font-weight: bold;">value_list</span>? ?<span style="font-family:monospace; font-weight: bold;">array_name</span>? ?<span style="font-family:monospace; font-weight: bold;">array_variables</span>?</div></div></div><div class="refsect1"><a name="idm1369"></a><h2>Description</h2><p style="width:90%">
+                <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">inspect </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="right" valign="top"> lempty</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/lazybridge.html b/rivet/manual3.2/lazybridge.html
new file mode 100644
index 0000000..a32b79c
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="internals.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Example: the <span class="quote">“<span class="quote">Lazy</span>”</span> bridge</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="internals.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="lazybridge"></a>Example: the <span class="quote">“<span class="quote">Lazy</span>”</span> bridge</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm4525"></a>The rationale of threaded bridges</h3></div></div></div><p style="width:90%">    	
+	    	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="idm4529"></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="idm4545"></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="idm4564"></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="right" valign="top"> </td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/lempty.html b/rivet/manual3.2/lempty.html
new file mode 100644
index 0000000..44b2976
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">lempty</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lassign_array.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="lmatch.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="lempty"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lempty — 
+		    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="idm1385"></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">lassign_array </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="right" valign="top"> lmatch</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/lmatch.html b/rivet/manual3.2/lmatch.html
new file mode 100644
index 0000000..0d5d9ce
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">lmatch</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lempty.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_cookies.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="lmatch"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lmatch — 
+		    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</span>)  <span style="font-family:monospace; font-weight: bold;">list</span>   <span style="font-family:monospace; font-weight: bold;">pattern</span> </div></div></div><div class="refsect1"><a name="idm1401"></a><h2>Description</h2><p style="width:90%">
+		    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">lempty </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="right" valign="top"> load_cookies</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/load_cookies.html b/rivet/manual3.2/load_cookies.html
new file mode 100644
index 0000000..51bace4
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_cookies</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lmatch.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_env.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="load_cookies"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_cookies — get any cookie variables sent by the client.</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::load_cookies</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1416"></a><h2>Description</h2></div><p style="width:90%">
+		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 </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="right" valign="top"> load_env</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/load_env.html b/rivet/manual3.2/load_env.html
new file mode 100644
index 0000000..ae11b39
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_env</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_cookies.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_headers.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="load_env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_env — get the request's environment variables.</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::load_env</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1429"></a><h2>Description</h2><p style="width:90%">
+		    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="top">load_cookies </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="right" valign="top"> load_headers</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/load_headers.html b/rivet/manual3.2/load_headers.html
new file mode 100644
index 0000000..d420406
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_headers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_env.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_response.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="load_headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_headers — get client request's headers.</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::load_headers</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1445"></a><h2>Description</h2><p style="width:90%">
+		    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="top">load_env </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="right" valign="top"> load_response</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/load_response.html b/rivet/manual3.2/load_response.html
new file mode 100644
index 0000000..0664347
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_response</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_headers.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="lremove.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="load_response"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_response — load form variables into an array.</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::load_response</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1458"></a><h2>Description</h2><p style="width:90%">
+		    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">load_headers </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="right" valign="top"> lremove</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/lremove.html b/rivet/manual3.2/lremove.html
new file mode 100644
index 0000000..1020e9f
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">lremove</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_response.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="makeurl.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="lremove"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lremove — remove from a list elements matching one or more patterns</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><span style="font-family:monospace"><span class="command"><strong>::rivet::lremove</strong></span></span> (<span style="font-family:monospace; font-weight: bold;">-regexp | -glob | -exact</span>)  <span style="font-family:monospace; font-weight: bold;">list</span>   <span style="font-family:monospace; font-weight: bold;">pattern</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>pattern</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>pattern</code></em></span>?</div><div class="refsect1"><a name="idm1486"></a><h2>Description</h2><p style="width:90%">
+		  <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="top">load_response </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="right" valign="top"> makeurl</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/makeurl.html b/rivet/manual3.2/makeurl.html
new file mode 100644
index 0000000..8d33d25
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">makeurl</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lremove.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="no_body.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="makeurl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>makeurl — construct url's based on hostname, port.</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::makeurl</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1506"></a><h2>Description</h2><p style="width:90%">
+		  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">lremove </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="right" valign="top"> no_body</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/no_body.html b/rivet/manual3.2/no_body.html
new file mode 100644
index 0000000..e77f2c2
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">no_body</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="makeurl.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="parray.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="no_body"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>no_body — Prevents Rivet from sending any content.</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::no_body</span> </div></div></div><div class="refsect1"><a name="idm1524"></a><h2>Description</h2><p style="width:90%">
+          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">makeurl </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="right" valign="top"> parray</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/parray.html b/rivet/manual3.2/parray.html
new file mode 100644
index 0000000..5aa2fa1
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">parray</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="no_body.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="parse.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="parray"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parray — Tcl's <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> with html formatting.</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::parray</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">pattern</span>?</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1540"></a><h2>Description</h2><p style="width:90%">
+		    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_body </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="right" valign="top"> parse</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/parse.html b/rivet/manual3.2/parse.html
new file mode 100644
index 0000000..ab085fe
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">parse</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parray.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="raw_post.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="parse"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parse — parses a Rivet template file.</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::parse</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1553"></a><h2>Description</h2><p style="width:90%">
+		    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">parray </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="right" valign="top"> raw_post</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/processing.html b/rivet/manual3.2/processing.html
new file mode 100644
index 0000000..f903897
--- /dev/null
+++ b/rivet/manual3.2/processing.html
@@ -0,0 +1,226 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="directives.html" title="Apache Rivet 3.2 Configuration"><link rel="next" href="request.html" title="Apache Child Processes Lifecycle and Request Processing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Rivet HTTP Request Processing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="directives.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="request.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="processing"></a>Apache Rivet HTTP Request Processing</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm602"></a>Tcl Scripts Processing</h3></div></div></div><p style="width:90%">
+			Until 2.x versions Rivet handled requests
+			following the vision that inspired the original design
+			which was summarized in the definition <span style="color: red">&lt;q&gt;Web programming
+			like in PHP, but with Tcl&lt;/q&gt;</span>. HTTP requests triggered the
+			execution of Tcl scripts or a Rivet (.rvt file) templates
+			whose path is 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 of scripts common to a whole web site
+			or to a hierarchy of directories 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 (which triggers
+			the execution of a script defined by the directive AbortScript). 
+			This scheme is in case terminated by a further configurable script 
+			(AfterEveryScript). 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.x 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 into your own request handler.
+		</td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm612"></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 during the process/thread 
+# initialization stage and its content stored in a Tcl_Obj object. 
+# This object is evaluated internally by mod_rivet
+#
+
+::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.2 Configuration </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="right" valign="top"> Apache Child Processes Lifecycle and Request Processing</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/raw_post.html b/rivet/manual3.2/raw_post.html
new file mode 100644
index 0000000..410d588
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">raw_post</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parse.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="redirect.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="raw_post"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>raw_post — get the unmodified body of a POST request sent by the client.</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::raw_post</span> </div></div></div><div class="refsect1"><a name="idm1564"></a><h2>Description</h2></div><p style="width:90%">
+		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 </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="right" valign="top"> redirect</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/read_file.html b/rivet/manual3.2/read_file.html
new file mode 100644
index 0000000..335b085
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="redirect.html" title="redirect"><link rel="next" href="thread_id.html" title="thread_id"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">read_file</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="redirect.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="thread_id.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="read_file"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>read_file — 
+			    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="idm1606"></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="thread_id.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">redirect </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="right" valign="top"> thread_id</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/redirect.html b/rivet/manual3.2/redirect.html
new file mode 100644
index 0000000..bc9a1b3
--- /dev/null
+++ b/rivet/manual3.2/redirect.html
@@ -0,0 +1,24 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">redirect</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="raw_post.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="read_file.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="redirect"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>redirect — Interrupt processing and divert to a new URL</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::redirect</span>  ?<span style="font-family:monospace; font-weight: bold;">URL</span>? ?<span style="font-family:monospace; font-weight: bold;">permanent</span>?</div></div></div><div class="refsect1"><a name="idm1576"></a><h2>Description</h2><p style="width:90%">
+       		<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> has already been called before
+       			<span style="font-family:monospace"><span class="command"><strong>::rivet::redirect</strong></span></span> thus causing the HTTP headers to be sent</li><li class="listitem">The channel buffer has been flushed already by calling <span style="font-family:monospace"><span class="command"><strong>flush stdout</strong></span></span>
+       			or because the Rivet channel internal buffer was full</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="top">raw_post </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="right" valign="top"> read_file</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/request.html b/rivet/manual3.2/request.html
new file mode 100644
index 0000000..8df747c
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="processing.html" title="Apache Rivet HTTP Request Processing"><link rel="next" href="commands.html" title="Rivet Tcl Commands and Variables"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Child Processes Lifecycle and Request Processing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="processing.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="commands.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="request"></a>Apache Child Processes Lifecycle and Request Processing</h2></div></div></div><div class="simplesect"><div class="titlepage"><div><div><h3 class="title"><a name="idm635"></a>Apache Child Process Lifecycle</h3></div></div></div><p style="width:90%">
+            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.x 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="idm649"></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="idm655"></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="idm671"></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="idm681"></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="idm687"></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="idm697"></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>BeforeScript</td><td>::</td></tr><tr class="processing"><td>.rvt</td><td>::request</td></tr><tr class="processing"><td>.tcl</td><td>::</td></tr><tr class="processing"><td>AfterScript</td><td>::</td></tr><tr class="processing"><td>AbortScript</td><td>::</td></tr><tr class="processing"><td>AfterEveryScript</td><td>::</td></tr><tr class="childexit"><td>Child Termination</td><td>ChildExitScript</td><td>::</td></tr><tr class="processing"><td>Error Handling</td><td>ErrorScript</td><td>::</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="processing.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 Rivet HTTP Request Processing </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="right" valign="top"> Rivet Tcl Commands and Variables</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/rivet.css b/rivet/manual3.2/rivet.css
new file mode 100644
index 0000000..c407a8c
--- /dev/null
+++ b/rivet/manual3.2/rivet.css
@@ -0,0 +1,400 @@
+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{
+    color: maroon;
+}
+
+A:visited {
+    color: darkgreen;
+}
+*/
+
+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.2/session_package.html b/rivet/manual3.2/session_package.html
new file mode 100644
index 0000000..cd3959d
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="diodisplay_package.html" title="DIODisplay"><link rel="next" href="form.html" title="Form: An HTML Form Fields Generation Utility"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Session Package</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="diodisplay_package.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="form.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="session_package"></a>Session Package</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm3276"></a>Introduction</h3></div></div></div><p style="width:90%">
+	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="idm3285"></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="idm3295"></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="idm3307"></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-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">SESSION</span> <span style="font-weight:bold ; font-family:monospace">id</span> </div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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">returns 1 if it's a new session or 0 if it has
+		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="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>data</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="idm3353"></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="idm3431"></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="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>data</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>?</div></div><div style="margin-bottom:1.5ex ; padding .5ex">
+		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="idm3487"></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" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Form: An HTML Form Fields Generation Utility</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/shorthand.html b/rivet/manual3.2/shorthand.html
new file mode 100644
index 0000000..078ec19
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="abort_code"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">&lt;?= ... ?&gt;</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="commands.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="abort_code.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="shorthand"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>&lt;?= ... ?&gt; — 
+				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="idm772"></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">Rivet Tcl Commands and Variables </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="right" valign="top"> abort_code</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/tcl_packages.html b/rivet/manual3.2/tcl_packages.html
new file mode 100644
index 0000000..ea9a22a
--- /dev/null
+++ b/rivet/manual3.2/tcl_packages.html
@@ -0,0 +1,4 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="index.html" title="Apache Rivet 3.2"><link rel="prev" href="examples.html" title="Examples and Usage"><link rel="next" href="dio.html" title="DIO - Database Interface Objects"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Rivet Tcl Packages</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="examples.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="dio.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="tcl_packages"></a>Rivet Tcl Packages</h2></div></div></div><p style="width:90%">
+      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">dio is a database abstraction layer.</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">calendar - a package providing a simple configurable calendar generator</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">rivet entities - an UTF-8 / HTML entities converter</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">formbroker - a form data validators broker</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">ASCII Glyphs - prints most of the ASCII character set as large ASCII art glyphs</div></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="examples.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="dio.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Examples and Usage </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="right" valign="top"> DIO - Database Interface Objects</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/thread_id.html b/rivet/manual3.2/thread_id.html
new file mode 100644
index 0000000..a4ca216
--- /dev/null
+++ b/rivet/manual3.2/thread_id.html
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>thread_id</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="try.html" title="try"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">thread_id</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="read_file.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="try.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="thread_id"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>thread_id — Returns the Tcl interpreter current thread id</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::thread_id</span>  ?<span style="font-family:monospace; font-weight: bold;">-decimal | -hex</span>?</div></div></div><div class="refsect1"><a name="idm1617"></a><h2>Description</h2><p style="width:90%">
+				<span style="font-family:monospace"><span class="command"><strong>::rivet::threadid</strong></span></span> returns is either hexadecimal 
+				(default) or decimal representation the current thread id. This command
+				is useful because allows for precise identification of an execution thread
+				when Apache runs a threaded MPM. Calling the command with  ?<span style="font-family:monospace; font-weight: bold;">-decimal</span>?
+				prints the thread id in a form that makes it comparable with the <span style="font-family:monospace"><span class="command"><strong>tid</strong></span></span>
+				information printed in the error log. 
+			</p></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="try.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">read_file </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="right" valign="top"> try</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/toglyphs.html b/rivet/manual3.2/toglyphs.html
new file mode 100644
index 0000000..a6d194d
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="asciiglyphs.html" title="AsciiGlyphs"><link rel="prev" href="asciiglyphs.html" title="AsciiGlyphs"><link rel="next" href="formbroker.html" title="The Form Broker"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">toGlyphs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="asciiglyphs.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">AsciiGlyphs</th><td width="20%" align="right"> <a accesskey="n" href="formbroker.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><a name="toglyphs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>toGlyphs — 
+	            	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="idm4215"></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="formbroker.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">AsciiGlyphs </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="right" valign="top"> The Form Broker</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/try.html b/rivet/manual3.2/try.html
new file mode 100644
index 0000000..3afc9cb
--- /dev/null
+++ b/rivet/manual3.2/try.html
@@ -0,0 +1,58 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="thread_id.html" title="thread_id"><link rel="next" href="unescape_string.html" title="unescape_string"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">try</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="thread_id.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="unescape_string.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="try"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>try — 
+				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="replaceable"><code>handlers</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>finally script</code></em></span>?</div></div></div><div class="refsect1"><a name="idm1636"></a><h2>Description</h2><p style="width:90%">
+				<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><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 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><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="Apache Rivet 3.2 Configuration">the section called “Apache Rivet 3.2 Configuration”</a>
+			</p><pre class="programlisting">&lt;html&gt;&lt;?
+::rivet::try {
+	if {[::rivet::var_qs exists exit]} {
+	    ::rivet::exit [::rivet::var_qs get exit]
+	} elseif {[::rivet::var_qs exists abort]} {
+	    ::rivet::abort_page [::rivet::var_qs get abort]
+	} 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="thread_id.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="40%" align="left" valign="top">thread_id </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="right" valign="top"> unescape_string</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/unescape_string.html b/rivet/manual3.2/unescape_string.html
new file mode 100644
index 0000000..3f117ea
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">unescape_string</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="try.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="upload.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="unescape_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>unescape_string — unescape escaped characters in 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::unescape_string</span>  ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1"><a name="idm1673"></a><h2>Description</h2><p style="width:90%">
+		    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><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> upload</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/upload.html b/rivet/manual3.2/upload.html
new file mode 100644
index 0000000..feb56a5
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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_script.html" title="url_script"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">upload</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="unescape_string.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="url_script.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="upload"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>upload — handle a file uploaded by a client.</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::upload</span>  (<span style="font-family:monospace; font-weight: bold;">channel</span> | <span style="font-family:monospace; font-weight: bold;">save</span> | <span style="font-family:monospace; font-weight: bold;">data</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">size</span> | <span style="font-family:monospace; font-weight: bold;">type</span> | <span style="font-family:monospace; font-weight: bold;">filename</span>)</div></div></div><div class="refsect1"><a name="idm1692"></a><h2>Description</h2><p style="width:90%">
+				    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="replaceable"><code>filename</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">
+							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_script.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">unescape_string </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="right" valign="top"> url_script</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/url_script.html b/rivet/manual3.2/url_script.html
new file mode 100644
index 0000000..247773c
--- /dev/null
+++ b/rivet/manual3.2/url_script.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>url_script</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">url_script</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="upload.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="var.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="url_script"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>url_script — get the code of the URL referenced Tcl script or Rivet template</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::url_script</span> </div></div></div><div class="refsect1"><a name="idm1792"></a><h2>Description</h2><p style="width:90%">
+				This command is used internally by the rivet central Tcl
+				procedure (::Rivet::request_handling) executed by
+				the default traditional code for HTTP requests processing.
+				Unless you're implementing your own ::Rivet::request_handling
+				procedure it's unlikely it can be of any use.
+			</p></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%" align="left" valign="top">upload </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="right" valign="top"> var</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/var.html b/rivet/manual3.2/var.html
new file mode 100644
index 0000000..b275932
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="url_script.html" title="url_script"><link rel="next" href="wrap.html" title="wrap"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">var</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="url_script.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="wrap.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="var"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>var, var_qs, var_post — get the value of a form 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::var</span>  (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</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 "><span style="font-weight:bold ; font-family:monospace">::rivet::var_qs</span>  (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</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 "><span style="font-weight:bold ; font-family:monospace">::rivet::var_post</span>  (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</span>)</div></div></div><div class="refsect1"><a name="idm1826"></a><h2>Description</h2><p style="width:90%">
+			    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="replaceable"><code>?<span class="optional">default</span>?</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 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_script.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="wrap.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">url_script </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="right" valign="top"> wrap</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/wrap.html b/rivet/manual3.2/wrap.html
new file mode 100644
index 0000000..d134698
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">wrap</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="var.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="wrapline.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="wrap"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>wrap — 
+		    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></div></div></div><div class="refsect1"><a name="idm1901"></a><h2>Description</h2><p style="width:90%">			
+		    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 </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="right" valign="top"> wrapline</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/wrapline.html b/rivet/manual3.2/wrapline.html
new file mode 100644
index 0000000..14b32b5
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">wrapline</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="wrap.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="xml.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="wrapline"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>wrapline — 
+		    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</span></div></div></div><div class="refsect1"><a name="idm1915"></a><h2>Description</h2><p style="width:90%">
+		    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><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> xml</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/xml.html b/rivet/manual3.2/xml.html
new file mode 100644
index 0000000..be94878
--- /dev/null
+++ b/rivet/manual3.2/xml.html
@@ -0,0 +1,28 @@
+<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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">xml</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="wrapline.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="examples.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="xml"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xml — 
+                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: bold;">tag descriptor</span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div></div><div class="refsect1"><a name="idm1930"></a><h2>Description</h2><p style="width:90%">
+                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 namme 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 specify the tags attributes by replacing a tag specification
+                with a odd-length list containing the tag name and a series of
+                attribute-value pairs
+            </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><p style="width:90%">
+					A single argument is interpreted as a list of tag name and attributes to be 
+					coded as a self closing element
+				</p><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml [list b a1 v1 a2 v2]</strong></span></span>
+&lt;== &lt;b a1="v1" a2="v2" /&gt;</pre><p style="width:90%">
+					Unless the string is literally an empty string
+				</p><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml "" [list b a1 v1 a2 v2]</strong></span></span>
+&lt;== &lt;b a1="v1" a2="v2"&gt;&lt;/b&gt;</pre><p style="width:90%">which is useful for generating 'script' elements in an HTML page header that wouldn't be understood 
+				as single closing element</p><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml "" [list script type "text/javascript" src js/myscripts.js]</strong></span></span>
+&lt;== &lt;script type="text/javascript" src="js/myscripts.js"&gt;&lt;/script&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="examples.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">wrapline </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="right" valign="top"> Examples and Usage</td></tr></table></div></body></html>
diff --git a/rivet/manual3.2/xml_calendar.html b/rivet/manual3.2/xml_calendar.html
new file mode 100644
index 0000000..459d7e0
--- /dev/null
+++ b/rivet/manual3.2/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 Vsnapshot"><link rel="home" href="index.html" title="Apache Rivet 3.2"><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="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">XmlCalendar</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="calendar.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Calendar Package</th><td width="20%" align="right"> <a accesskey="n" href="html_calendar.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refentry"><div class="refentry.separator"><hr></div><a name="xml_calendar"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>XmlCalendar — Prints XML formatted calendar tables</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">XmlCalendar</span>   <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>calendar_name</code></em></span>  ?<span style="font-family:monospace; font-weight: bold;">-option1 <em class="replaceable"><code>option_list</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-option2 <em class="replaceable"><code>option_list</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">...</span>?</div></div></div><div class="refsect1"><a name="idm4013"></a><p style="width:90%">
+				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="idm4019"></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="idm4038"></a><div class="refsect2"><a name="idm4039"></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">-container  (tag_name 
+								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><tr><td width="40%" align="left" valign="top">Calendar </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="right" valign="top"> HtmlCalendar</td></tr></table></div></body></html>