You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by mx...@apache.org on 2012/05/04 10:23:08 UTC

svn commit: r1333806 [2/7] - in /tcl/rivet/branches/apreq-multipart: ./ doc/ doc/examples-sgml/ doc/examples/ doc/xml/ m4/ rivet/ rivet/packages/entities/ rivet/packages/form/ rivet/packages/simpledb/ rivet/packages/tclrivet/ rivet/rivet-tcl/ src/ src/...

Modified: tcl/rivet/branches/apreq-multipart/doc/xml/commands.xml
URL: http://svn.apache.org/viewvc/tcl/rivet/branches/apreq-multipart/doc/xml/commands.xml?rev=1333806&r1=1333805&r2=1333806&view=diff
==============================================================================
--- tcl/rivet/branches/apreq-multipart/doc/xml/commands.xml (original)
+++ tcl/rivet/branches/apreq-multipart/doc/xml/commands.xml Fri May  4 08:23:05 2012
@@ -1,6 +1,31 @@
 <section id="commands">
-    <title>Rivet Tcl Commands and Variables</title>
-
+	<title>Rivet Tcl Commands and Variables</title>
+	<section>
+		<para>
+			Starting with version 2.1.0 Rivet command set moved into the 
+			<command>::rivet</command> namespace.
+		</para>
+		<para>
+			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 <command>--disable-rivet-commands-export</command> 
+			to 'configure'. In the future we may change this option's default.
+		</para>
+		<para>
+			Commands must be imported into another namespace with the
+			command:
+		</para>
+		<para>
+			<command>namespace import -force ::rivet::*</command>
+		</para>
+		<para>
+			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.
+		</para>
+	</section>
 	<refentry id="abort_code">
 		<refnamediv>
 			<refname>abort_code</refname>
@@ -11,959 +36,988 @@
 		</refnamediv>
 		<refsynopsisdiv>
 			<cmdsynopsis>
-			  <command>abort_code</command>
+			  <command>::rivet::abort_code</command>
 			</cmdsynopsis>
-      </refsynopsisdiv>
-      <refsect1>
+		</refsynopsisdiv>
+		<refsect1>
 			<title>Description</title> 
 			<para>
-				Usage of this command is meaningful only in scripts run as
+				Usage of this command is meaningful only in code that runs as
 				AbortScript or AfterEveryScript. 
 				<command>abort_code</command> returns the value of the optional 
-				parameter passed to <command>abort_page</command> earlier during
+				parameter passed to <command>abort_page</command> earlier in
 				the same request processing.
 			</para>
-      </refsect1>
+		</refsect1>
+	</refentry>
+	<refentry id="abort_page">
+	    <refnamediv>
+		<refname>abort_page</refname>
+		<refpurpose>
+		    Stops outputting data to web page, similar in
+		    purpose to PHP's <command>die</command> command.
+		</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::abort_page</command>
+		    <group choice="req">
+			<arg><replaceable>abort code</replaceable></arg>
+			<arg><replaceable>-aborting</replaceable></arg>
+		    </group>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+	    <refsect1>
+		<title>Description</title> 
+		<para>
+		    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
+		    <command>exit</command> command, but that cannot be used in
+		    Rivet without actually exiting the apache child
+		    process!
+		    <command>abort_page</command> triggers
+		    the execution of an optional AbortScript that has to be
+		    specified in the configuration. The value of the
+		    argument <arg>abort code</arg> can be retrieved with the 
+		    <command>abort_code</command> command during the
+		    execution of AbortScript or AfterEveryScript, allowing 
+		    the script to take appropriate actions in order to deal
+		    with the cause of the abort. 
+		</para>
+		<para>
+		    When passed the argument <option>-aborting</option> the
+		    command returns 1 if <option>abort_page</option>
+		    had been called earlier in the request processing, thus
+		    providing a tool for code in AfterEveryScript to tell
+		    if the an abort condition took place.
+		</para>
+	  </refsect1>
 	</refentry>
-    <refentry id="abort_page">
-        <refnamediv>
-			<refname>abort_page</refname>
-			<refpurpose>
-				Stops outputing data to web page, similar in
-			  	purpose to PHP's <command>die</command> command.
-			</refpurpose>
-        </refnamediv>
-
-        <refsynopsisdiv>
-			<cmdsynopsis>
-			  	<command>abort_page</command>
-			  	<group choice="req">
-					<arg><replaceable>abort code</replaceable></arg>
-					<arg><replaceable>-aborting</replaceable></arg>
-				</group>
-			</cmdsynopsis>
-        </refsynopsisdiv>
-
-        <refsect1>
-			<title>Description</title> 
-			<para>
-				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
-				<command>exit</command> command, but that cannot be used in
-				Rivet without actually exiting the apache child
-				process!
-				<command>abort_page</command> triggers
-				the execution of an optional AbortScript that has to be
-				specified in the configuration. The value of the
-				argument <arg>abort code</arg> can be retrieved with the 
-				<command>abort_code</command> command during the
-				execution of AbortScript or AfterEveryScript, allowing 
-				the script to take appropriate actions in order to deal
-				with the cause of the abort. 
-			</para>
-			<para>
-				When passed the argument <command>-aborting</command> the
-				command returns 1 if <option>abort_page</option>
-				had been called earlier in the request processing, thus
-				providing a tool for code in AfterEveryScript to tell
-				if the an abort condition took place.
-			</para>
-        </refsect1>
-    </refentry>
 
-    <refentry id="apache_log_error">
-      <refnamediv>
-	<refname>apache_log_error</refname>
-	<refpurpose>log messages to the Apache error log</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-	<cmdsynopsis>
-	  <command>apache_log_error</command>
-	    <arg>priority</arg>
-	    <arg>message</arg>
-	</cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-	<title>Description</title>
-	<para>The apache_log_error command logs a message to the 
-	  Apache error log, whose name and location have been
-	  set by the <option>ErrorLog</option> directive.
-	</para>
-	<para>
-	Priority must be one of
-	    <option>debug</option>,
-	    <option>info</option>,
-	    <option>notice</option>,
-	    <option>warning</option>,
-	    <option>err</option>,
-	    <option>crit</option>,
-	    <option>alert</option>, or
-	    <option>emerg</option>.
-	</para>
-      </refsect1>
-    </refentry>
 
-    <refentry id="apache_table">
-      <refnamediv>
-        <refname>apache_table</refname>
-        <refpurpose>access and manipulate Apache tables in the request structure.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>apache_table</command>
-          <group choice="req">
-            <arg>get</arg>
-            <arg>set</arg>
-            <arg>exists</arg>
-            <arg>unset</arg>
-            <arg>names</arg>
-            <arg>array_get</arg>
-            <arg>clear</arg>
-          </group>
-        </cmdsynopsis>
-    </refsynopsisdiv>
-
-    <refsect1>
-    <title>Description</title>
-        <para>The apache_table command is for accessing and manipulating
-          Apache tables in the request structure.
-        </para>
-        <para>
-        The table name must be one of
-            <option>notes</option>,
-            <option>headers_in</option>,
-            <option>headers_out</option>,
-            <option>err_headers_out</option>, or
-            <option>subprocess_env</option>.
-        </para>
+	<refentry id="apache_log_error">
+	    <refnamediv>
+		<refname>apache_log_error</refname>
+		<refpurpose>log messages to the Apache error log</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::apache_log_error</command>
+		    <arg>priority</arg>
+		    <arg>message</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    The apache_log_error command logs a message to the 
+		    Apache error log, whose name and location have been
+		    set by the <option>ErrorLog</option> directive.
+		</para>
+		<para>
+		    Priority must be one of
+			    <option>debug</option>,
+			    <option>info</option>,
+			    <option>notice</option>,
+			    <option>warning</option>,
+			    <option>err</option>,
+			    <option>crit</option>,
+			    <option>alert</option>, or
+			    <option>emerg</option>.
+		</para>
+	    </refsect1>
+	</refentry>
 
-	<variablelist>
-	  <varlistentry>
-	    <term>
-	        <cmdsynopsis>
-                <command>apache_table</command>
-                <arg choice="plain">get</arg>
-                <arg><replaceable>tablename</replaceable></arg>
-                <arg><replaceable>key</replaceable></arg>
-            </cmdsynopsis>
-        </term>
-        <listitem>
-            <para>
-                When given the name of an Apache table
-                <option><replaceable>tablename</replaceable></option>
-                and the name of a key
-                <option><replaceable>tablename</replaceable></option>,
-                returns the value of the key in the table, or an empty
-                string.
-            </para>
-        </listitem>
-        </varlistentry>
-        <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>apache_table</command>
-            <arg choice="plain">set</arg>
-            <arg><replaceable>tablename</replaceable></arg>
-            <arg><replaceable>key</replaceable></arg>
-            <arg><replaceable>value</replaceable></arg>
-	      </cmdsynopsis>
-	      <cmdsynopsis>
-		<command>apache_table</command>
-		<arg choice="plain">set</arg>
-		<arg><replaceable>tablename</replaceable></arg>
-		<arg><replaceable>list</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Stores the
-		<option><replaceable>value</replaceable></option> in
-		the table
-		<option><replaceable>tablename</replaceable></option>
-		under the key
-		<option><replaceable>key</replaceable></option>.
-	      </para>
-	      <para>
-	            For the list form,
-                <option><replaceable>list</replaceable></option> contains
-                a list of zero or more pairs of key-value pairs to be
-                set into the table
-                <option><replaceable>tablename</replaceable></option>.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>apache_table</command>
-		<arg choice="plain">exists</arg>
-		<arg><replaceable>tablename</replaceable></arg>
-		<arg><replaceable>key</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Returns 1 if the specified key,
-		<option><replaceable>key</replaceable></option>,
-		exists in table
-		<option><replaceable>tablename</replaceable></option>,
-		else 0.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>apache_table</command>
-		<arg choice="plain">unset</arg>
-		<arg><replaceable>tablename</replaceable></arg>
-		<arg><replaceable>key</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-	        Removes the key-value pair referenced by
-		<option><replaceable>key</replaceable></option>
-		from the table
-		<option><replaceable>tablename</replaceable></option>.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>apache_table</command>
-		<arg choice="plain">names</arg>
-		<arg><replaceable>tablename</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Returns a list of all of the keys present in the table
-		<option><replaceable>tablename</replaceable></option>.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>apache_table</command>
-		<arg choice="plain">array_get</arg>
-		<arg><replaceable>tablename</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-	        Returns a list of key-value pairs from the table
-		<option><replaceable>tablename</replaceable></option>.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>apache_table</command>
-		<arg choice="plain">clear</arg>
-		<arg><replaceable>tablename</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Clears the contents of the specified table.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	</variablelist>
-      </refsect1>
-    </refentry>
 
-    <refentry id="clock_to_rfc">
-      <refnamediv>
-	<refname>clock_to_rfc850_gmt</refname>
-	<refpurpose>create a rfc850 time from [clock seconds].</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-	<cmdsynopsis>
-	  <command>clock_to_rfc850_gmt</command>
-	  <arg><replaceable>seconds</replaceable></arg>
-	</cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-	<title>Description</title>
-	<para>
-	  Convert an integer-seconds-since-1970 click value to
-	  RFC850 format, with the additional requirement that it be
-	  GMT only.
-	</para>
-      </refsect1>
-    </refentry>
+	<refentry id="apache_table">
+	    <refnamediv>
+		<refname>apache_table</refname>
+		<refpurpose>access and manipulate Apache tables in the request structure.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::apache_table</command>
+		    <group choice="req">
+			<arg>get</arg>
+			<arg>set</arg>
+			<arg>exists</arg>
+			<arg>unset</arg>
+			<arg>names</arg>
+			<arg>array_get</arg>
+			<arg>clear</arg>
+		    </group>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    The apache_table command is for accessing and manipulating
+		    Apache tables in the request structure.
+		</para>
+		<para>
+		    The table name must be one of
+		    <option>notes</option>,
+		    <option>headers_in</option>,
+		    <option>headers_out</option>,
+		    <option>err_headers_out</option>, or
+		    <option>subprocess_env</option>.
+		</para>
+
+		<variablelist>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">get</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+				<arg><replaceable>key</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				When given the name of an Apache table
+				<option><replaceable>tablename</replaceable></option>
+				and the name of a key
+				<option><replaceable>tablename</replaceable></option>,
+				returns the value of the key in the table, or an empty
+				string.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">set</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+				<arg><replaceable>key</replaceable></arg>
+				<arg><replaceable>value</replaceable></arg>
+			    </cmdsynopsis>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">set</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+				<arg><replaceable>list</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Stores the <option><replaceable>value</replaceable></option> in
+				the table <option><replaceable>tablename</replaceable></option>
+				under the key <option><replaceable>key</replaceable></option>.
+			    </para>
+			    <para>
+				For the list form,
+				<option><replaceable>list</replaceable></option> contains
+				a list of zero or more pairs of key-value pairs to be
+				set into the table
+				<option><replaceable>tablename</replaceable></option>.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">exists</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+				<arg><replaceable>key</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns 1 if the specified key,
+				<option><replaceable>key</replaceable></option>,
+				exists in table
+				<option><replaceable>tablename</replaceable></option>,
+				else 0.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">unset</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+				<arg><replaceable>key</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Removes the key-value pair referenced by
+				<option><replaceable>key</replaceable></option>
+				from the table
+				<option><replaceable>tablename</replaceable></option>.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">names</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns a list of all of the keys present in the table
+				<option><replaceable>tablename</replaceable></option>.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">array_get</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns a list of key-value pairs from the table
+				<option><replaceable>tablename</replaceable></option>.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::apache_table</command>
+				<arg choice="plain">clear</arg>
+				<arg><replaceable>tablename</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Clears the contents of the specified table.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		</variablelist>
+	    </refsect1>
+	</refentry>
+    <!-- Reference page for command 'clock_to_rfc' -->
+	<refentry id="clock_to_rfc">
+	    <refnamediv>
+		<refname>clock_to_rfc850_gmt</refname>
+		<refpurpose>create a rfc850 time from [clock seconds].</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::clock_to_rfc850_gmt</command>
+		    <arg><replaceable>seconds</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Convert an integer-seconds-since-1970 click value to
+		    RFC850 format, with the additional requirement that it be
+		    GMT only.
+		</para>
+	    </refsect1>
+	</refentry>
 
-    <refentry id="cookie">
-      <refnamediv>
-	<refname>cookie</refname>
-	<refpurpose>get and set cookies.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-	<cmdsynopsis>
-	  <command>cookie</command>
-	  <arg>set</arg>
-	  <arg><replaceable>cookieName</replaceable></arg>
-	  <arg><replaceable><optional>cookiValue</optional></replaceable></arg>
-	  <arg>-days <replaceable>expireInDays</replaceable></arg>
-	  <arg>-hours <replaceable>expireInHours</replaceable></arg>
-	  <arg>-minutes <replaceable>expireInMinutes</replaceable></arg>
-	  <arg>-expires <replaceable>Wdy, DD-Mon-YYYY HH:MM:SS GMT</replaceable></arg>
-	  <arg>-path <replaceable>uriPathCookieAppliesTo</replaceable></arg>
-	  <arg>-secure <replaceable>1/0</replaceable></arg>
-	</cmdsynopsis>
-	<cmdsynopsis>
-	  <command>cookie</command>
-	  <arg>get</arg>
-	  <arg><replaceable>cookieName</replaceable></arg>
-	</cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-	<title>Description</title>
-	<para>
-	  <command>cookie</command> gets or sets a cookie.  When you
-	  get a cookie, the command returns the value of the cookie,
-	  or an empty string if no cookie exists.
-	</para>
-      </refsect1>
-    </refentry>
+    <!-- Reference page for command 'cookie' -->
+	<refentry id="cookie">
+	    <refnamediv>
+		<refname>cookie</refname>
+		<refpurpose>get, set and delete cookies.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::cookie</command>
+		    <arg>set</arg>
+		    <arg><replaceable>cookieName</replaceable></arg>
+		    <arg><replaceable><optional>cookiValue</optional></replaceable></arg>
+		    <arg>-days <replaceable>expireInDays</replaceable></arg>
+		    <arg>-hours <replaceable>expireInHours</replaceable></arg>
+		    <arg>-minutes <replaceable>expireInMinutes</replaceable></arg>
+		    <arg>-expires <replaceable>Wdy, DD-Mon-YYYY HH:MM:SS GMT</replaceable></arg>
+		    <arg>-path <replaceable>uriPathCookieAppliesTo</replaceable></arg>
+		    <arg>-secure <replaceable>1/0</replaceable></arg>
+		</cmdsynopsis>
+		<cmdsynopsis>
+		    <command>::rivet::cookie</command>
+		    <arg>get</arg>
+		    <arg><replaceable>cookieName</replaceable></arg>
+		</cmdsynopsis>
+		<cmdsynopsis>
+		    <command>::rivet::cookie</command>
+		    <arg>delete</arg>
+		    <arg><replaceable>cookieName</replaceable></arg>
+		</cmdsynopsis>
+		<cmdsynopsis>
+		    <command>::rivet::cookie</command>
+		    <arg>unset</arg>
+		    <arg><replaceable>cookieName</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    <command>cookie</command> 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.
+		</para>
+		<para>
+		    <command>cookie delete</command> will set the timeout value to -1 minutes - 
+		    deleting the cookie in the browser.
+		</para>
+		<para>
+		    <command>cookie unset</command> will remove the defined cookie in the server 
+		    (perhaps preparatory to checking/resetting the cookie).
+		</para>
+	    </refsect1>
+	</refentry>
 
 	<refentry id="debug">
-		<refnamediv>
-			<refname>debug</refname>
-			<refpurpose>
-				A command to print strings, arrays
-    			and the values of variables as specified by the arguments.
-    		</refpurpose>
-    	</refnamediv>
-    	<refsynopsisdiv>
-    		<cmdsynopsis>
-    			<command>debug</command>
-    			<arg choice="plain">-subst</arg><arg>&lt;on|off&gt;</arg>
-    			<arg choice="plain">-separator</arg><arg>&lt;string&gt;</arg>
-    			<arg choice="plain">-option</arg><arg><replaceable>&lt;value&gt;</replaceable></arg>
-    			<arg choice="plain">-option</arg><arg><replaceable>&lt;value&gt;</replaceable></arg>
-    			<arg choice="plain">...</arg>
-    		</cmdsynopsis>
-    	</refsynopsisdiv>    	
-    	
-    	<refsect1>
-    		<title>Description</title>
-    		<para>
-    			A command to make debugging more convenient print strings, arrays
-				and the values of variables as specified by the arguments.
-			</para>
-			<para>
-				Also allows the setting of an array called debug which will pick up
-				options for all debug commands.
-			</para>
-    	</refsect1>
+	    <refnamediv>
+		<refname>debug</refname>
+		<refpurpose>
+		    A command to print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</refpurpose>
+	    </refnamediv>
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::debug</command>
+		    <arg choice="plain">-subst</arg><arg>&lt;on|off&gt;</arg>
+		    <arg choice="plain">-separator</arg><arg>&lt;string&gt;</arg>
+		    <arg choice="plain">-option</arg><arg><replaceable>&lt;value&gt;</replaceable></arg>
+		    <arg choice="plain">-option</arg><arg><replaceable>&lt;value&gt;</replaceable></arg>
+		    <arg choice="plain">...</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    A command to make debugging more convenient print strings, arrays
+		    and the values of variables as specified by the arguments.
+		</para>
+		<para>
+		    Also allows the setting of an array called debug which will pick up
+		    options for all debug commands.
+		</para>
+	    </refsect1>
 	</refentry>
 
-    <refentry id="env">
-      <refnamediv>
-	    <refname>env</refname> <refpurpose>Loads a single
-	        "environmental variable" into a Tcl variable.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-	    <cmdsynopsis>
-	        <command>env</command>
-	        <arg><replaceable>varName</replaceable></arg>
-	    </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-	    <title>Description</title>
-
-        <para>
-          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.
-        </para>
-      </refsect1>
-    </refentry>
-
-    <refentry id="escape_sgml_chars">
-      <refnamediv>
-        <refname>escape_sgml_chars</refname>
-        <refpurpose>escape special SGML characters in a string.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>escape_sgml_chars</command>
-          <arg>string</arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-        <para>
-          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.
-        </para>
-        <note> 
-            You must require the Rivet package in order to gain access to this command
-        </note>
-      </refsect1>
-    </refentry>
-
-    <refentry id="escape_shell_command">
-      <refnamediv>
-        <refname>escape_shell_command</refname>
-        <refpurpose>escape shell metacharacters in a string.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>escape_shell_command</command>
-          <arg>string</arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-        <para>
-          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. 	
-        </para>
-        <para>
-          For each metacharacter found, it is quoted in the result by
-          prepending it with a backslash, returning the result.
-        </para>
-        <note> 
-            You must require the Rivet package in order to gain access to this command
-        </note>
-
-      </refsect1>
-    </refentry>
 
-    <refentry id="escape_string">
-      <refnamediv>
-			<refname>escape_string</refname>
-			<refpurpose>convert a string into escaped characters.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-	    <cmdsynopsis>
-            <command>escape_string</command>
-            <arg>string</arg>
-	    </cmdsynopsis>
-      </refsynopsisdiv>
+	<refentry id="env">
+	    <refnamediv>
+		<refname>env</refname> 
+		<refpurpose>
+		    Loads a single "environmental variable" into a Tcl variable.
+		</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::env</command>
+		    <arg><replaceable>varName</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.
+		</para>
+	    </refsect1>
+	</refentry>
 
-      <refsect1>
-        <title>Description</title>
-        <para>
-            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.
-        </para>
-        <para>
-            This is useful for quoting strings that are going to be
-            part of a URL.
-        </para>
-        <note> 
-            You must require the Rivet package in order to gain access to this command
-        </note>
-      </refsect1>
-    </refentry>
+	<refentry id="escape_sgml_chars">
+	    <refnamediv>
+		<refname>escape_sgml_chars</refname>
+		<refpurpose>escape special SGML characters in a string.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::escape_sgml_chars</command>
+		    <arg>string</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.
+		</para>
+		<!--note> 
+		    You must require the <command>rivetlib</command> package in order to gain access to this command
+		</note -->
+	    </refsect1>
+	</refentry>
 
-    <refentry id="headers">
-      <refnamediv>
-        <refname>headers</refname>
-        <refpurpose>set and parse HTTP headers.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>headers</command>
-          <group choice="req">
-            <arg>set</arg>
-            <arg>redirect</arg>
-            <arg>add</arg>
-            <arg>type</arg>
-            <arg>numeric</arg>
-          </group>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-	<title>Description</title>
-	<para>
-	  The <command>headers</command> command is for setting and
-	  parsing HTTP headers.
-	</para>
-
-	<variablelist>
-
-	  <varlistentry>
-	    <term><cmdsynopsis>
-		<command>headers</command>
-		<arg choice="plain">set</arg>
-		<arg><replaceable>headername</replaceable></arg>
-		<arg><replaceable>value</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Set arbitrary header names and values.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>headers</command>
-		<arg choice="plain">redirect</arg>
-		<arg><replaceable>uri</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Redirect from the current page to a new
-		URI. <emphasis>Must</emphasis> be done in the first block
-		of TCL code.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>headers</command>
-		<arg choice="plain">add</arg>
-		<arg><replaceable>headername</replaceable></arg>
-		<arg><replaceable>value</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>Add text to header
-		<varname>headername</varname>.</para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term><cmdsynopsis>
-		<command>headers</command>
-		<arg choice="plain">type</arg>
-		<arg><replaceable>content-type</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		This command sets the <constant>Content-type</constant>
-		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.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>headers</command>
-		<arg choice="plain">numeric</arg>
-		<arg><replaceable>response code</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>Set a numeric response code, such as 200, 404 or 500.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	</variablelist>
-      </refsect1>
-    </refentry>
+	<refentry id="escape_shell_command">
+	    <refnamediv>
+		<refname>escape_shell_command</refname>
+		<refpurpose>escape shell metacharacters in a string.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::escape_shell_command</command>
+		    <arg>string</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.	
+		</para>
+		<para>
+		    For each metacharacter found, it is quoted in the result by
+		    prepending it with a backslash, returning the result.
+		</para>
+		<!-- note>
+		    You must require the <command>rivetlib</command> package in order to gain access to this command
+		</note -->
+	    </refsect1>
+	</refentry>
+	
+	<refentry id="escape_string">
+	    <refnamediv>
+		<refname>escape_string</refname>
+		<refpurpose>convert a string into escaped characters.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::escape_string</command>
+		    <arg>string</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.
+		</para>
+		<para>
+		    This is useful for quoting strings that are going to be
+		    part of a URL.
+		</para>
+		<!-- note> 
+		    You must require the <command>rivetlib</command> package in order to gain access 
+		    to this command
+		</note -->
+	    </refsect1>
+	</refentry>
 
-    <refentry id="html">
-      <refnamediv>
-        <refname>html</refname>
-        <refpurpose>construct html tagged text.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>html</command>
-          <arg><replaceable>string</replaceable></arg>
-          <arg rep="repeat"><replaceable>arg</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
+	
+	<refentry id="headers">
+	    <refnamediv>
+		<refname>headers</refname>
+		<refpurpose>set and parse HTTP headers.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::headers</command>
+		    <group choice="req">
+			<arg>set</arg>
+			<arg>redirect</arg>
+			<arg>add</arg>
+			<arg>type</arg>
+			<arg>numeric</arg>
+		    </group>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		  The <command>headers</command> command is for setting and
+		  parsing HTTP headers.
+		</para>
+		
+		<variablelist>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::headers</command>
+				<arg choice="plain">set</arg>
+				<arg><replaceable>headername</replaceable></arg>
+				<arg><replaceable>value</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Set arbitrary header names and values.
+			    </para>
+			</listitem>
+		    </varlistentry>
+
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::headers</command>
+				<arg choice="plain">redirect</arg>
+				<arg><replaceable>uri</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Redirect from the current page to a new
+				URI. <emphasis>Must</emphasis> be done in the first block
+				of TCL code.
+			    </para>
+			</listitem>
+		    </varlistentry>
+
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::headers</command>
+				<arg choice="plain">add</arg>
+				<arg><replaceable>headername</replaceable></arg>
+				<arg><replaceable>value</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>Add text to header
+				<varname>headername</varname>.
+			    </para>
+			</listitem>
+		    </varlistentry>
+
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::headers</command>
+				<arg choice="plain">type</arg>
+				<arg><replaceable>content-type</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				This command sets the <constant>Content-type</constant>
+				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.
+			    </para>
+			</listitem>
+		    </varlistentry>
+
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::headers</command>
+				<arg choice="plain">numeric</arg>
+				<arg><replaceable>response code</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Set a numeric response code, such as 200, 404 or 500.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		</variablelist>
+	    </refsect1>
+	</refentry>
 
-      <refsect1>
-        <title>Description</title>
-        <para>
-          Print text with the added ability to pass HTML tags
-          following the string.  Example:
-          <programlisting>html "Test" b i</programlisting>
-          produces: <computeroutput>&lt;b&gt;&lt;i&gt;Test&lt;/i&gt;&lt;/b&gt;</computeroutput>
-        </para>
-      </refsect1>
-    </refentry>
+	<refentry id="html">
+	    <refnamediv>
+		<refname>html</refname>
+		<refpurpose>construct html tagged text.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::html</command>
+		    <arg><replaceable>string</replaceable></arg>
+		    <arg rep="repeat"><replaceable>arg</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Print text with the added ability to pass HTML tags
+		    following the string.  Example:
+		    <programlisting>::rivet::html "Test" b i</programlisting>
+		    produces: <computeroutput>&lt;b&gt;&lt;i&gt;Test&lt;/i&gt;&lt;/b&gt;</computeroutput>
+		</para>
+	    </refsect1>
+	</refentry>
 
 	<refentry id="import_keyvalue_pairs">
-		<refnamediv>
-			<refname>import_keyvalue_pairs</refname>
-			<refpurpose>Import an argument list into the named array</refpurpose>
-		</refnamediv>
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>import_keyvalue_pairs</command>
-				<arg>arrayName</arg>
-				<arg>argsList</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>
-				key-value pairs, like "-foo bar" are stored in the array <arg>arrayName</arg>.  
-				In that case, the value "bar" would be stored in the element "foo"
-			</para>
-			<para>
-				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.
-			</para>
-			<para>
-				Example:
-				<programlisting>import_keyvalue_pairs keyvalue_map [list -a1 v1 -a2 v2 -a3 v3 -- 1 2 3 4 5]
+	    <refnamediv>
+		<refname>import_keyvalue_pairs</refname>
+		<refpurpose>Import an argument list into the named array</refpurpose>
+	    </refnamediv>
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::import_keyvalue_pairs</command>
+		    <arg>arrayName</arg>
+		    <arg>argsList</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    key-value pairs, like "-foo bar" are stored in the array <arg>arrayName</arg>.  
+		    In that case, the value "bar" would be stored in the element "foo"
+		</para>
+		<para>
+		    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.
+		</para>
+		<para>
+		    Example:
+		    <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</programlisting>
-			</para>
-		</refsect1>
+		</para>
+	    </refsect1>
 	</refentry>
-    <refentry id="include">
-      <refnamediv>
-        <refname>include</refname>
-        <refpurpose>includes a file into the output stream without modification.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>include</command>
-          <arg><replaceable>filename_name</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
 
-      <refsect1>
-        <title>Description</title>
-        <para>
-          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.
-        </para>
-      </refsect1>
-    </refentry>
-
-    <refentry id="incr0">
-      <refnamediv>
-        <refname>incr0</refname>
-        <refpurpose>increment a variable or set it to 1 if nonexistant.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>incr0</command>
-          <arg><replaceable>varname</replaceable></arg>
-          <arg><replaceable>num</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
+	<refentry id="include">
+	    <refnamediv>
+		<refname>include</refname>
+		<refpurpose>includes a file into the output stream without modification.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::include</command>
+		    <arg><replaceable>filename_name</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.
+		</para>
+	    </refsect1>
+	</refentry>
 
-      <refsect1>
-        <title>Description</title>
-        <para>
-          Increment a variable
-          <option><replaceable>varname</replaceable></option> by
-          <option><replaceable>num</replaceable></option>.  If the
-          variable doesn't exist, create it instead of returning an
-          error.
-        </para>
-      </refsect1>
-    </refentry>
+	<refentry id="incr0">
+	    <refnamediv>
+		<refname>incr0</refname>
+		<refpurpose>increment a variable or set it to 1 if nonexistent.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>incr0</command>
+		    <arg><replaceable>varname</replaceable></arg>
+		    <arg><replaceable>num</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Increment a variable
+		    <option><replaceable>varname</replaceable></option> by
+		    <option><replaceable>num</replaceable></option>.  If the
+		    variable doesn't exist, create it instead of returning an
+		    error.
+		</para>
+
+		<note> 
+		    incr0 functionality is now provided by <command>incr</command>, 
+		    therefore this command is obsolete and it's kept 
+		    only for compatibility. It will be removed in future versions of Rivet
+		</note>
+	    </refsect1>
+	</refentry>
 
 	<refentry id="lassign">
-		<refnamediv>
-			<refname>lassign</refname>
-			<refpurpose>Assign a list of values to a list of variables</refpurpose>
-		</refnamediv>	
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>lassign</command>
-				<arg>value_list</arg>
-				<arg>variables</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>
-				<command>lassign</command> emulates the TclX lassign command. It accepts
-				a list variables and treats the rest as a list of variable names that will
-				be assigned with the values in the caller's scope
-			</para>
-			<para>
-				<programlisting># lassign {1 2 3} a b c
+	    <refnamediv>
+		<refname>lassign</refname>
+		<refpurpose>Assign a list of values to a list of variables</refpurpose>
+	    </refnamediv>	
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::lassign</command>
+		    <arg>value_list</arg>
+		    <arg>variables</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    <command>lassign</command> emulates the TclX lassign command. It accepts
+		    a list variables and treats the rest as a list of variable names that will
+		    be assigned with the values in the caller's scope
+		</para>
+		<para>
+		    <programlisting># ::rivet::lassign {1 2 3} a b c
 # set a
 1
 # set b
 2
 # set c
 3</programlisting>
-			</para>
-		</refsect1>
+		</para>
+	    </refsect1>
 	</refentry>
-
+		
 	<refentry id="lempty">
-      <refnamediv>
-			<refname>lempty</refname>
-			<refpurpose>Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
-			This command emulates the TclX lempty command.
-			</refpurpose>
-      </refnamediv>
+	    <refnamediv>
+		<refname>lempty</refname>
+		<refpurpose>
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</refpurpose>
+	    </refnamediv>
 		
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>lempty</command>
-				<arg>list</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>
-				Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
-				This command emulates the TclX lempty command.
-			</para>
-		</refsect1>
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::lempty</command>
+		    <arg>list</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</para>
+	    </refsect1>
 	</refentry>	
 
 	<refentry id="lmatch">
-      <refnamediv>
-			<refname>lmatch</refname>
-			<refpurpose>
-				Look for elements in &lt;list&gt; that match &lt;pattern&gt;
-			</refpurpose>
-      </refnamediv>
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>lmatch</command>
-				<group choice="req">
-					<arg>-exact</arg>
-					<arg>-glob</arg>
-					<arg>-regexp</arg>
-				</group>
-				<arg>list</arg>
-				<arg>pattern</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>
-				Look for elements in &lt;list&gt; that match &lt;pattern&gt;.  
-				This command emulates the TclX lmatch command, but if TclX isn't 
-				available, it's a decent substitute.
-			</para>
-			<para>
-				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
-			</para>
-			<para>
-				<programlisting># lmatch -regexp lmatch -regexp { aaxa bxxb ccxxxxcc } {.+[x]{2}.+}
-bxxb ccxxxxcc
-				</programlisting>
-			</para>
-		</refsect1>
+	    <refnamediv>
+		<refname>lmatch</refname>
+		<refpurpose>
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;
+		</refpurpose>
+	    </refnamediv>
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::lmatch</command>
+		    <group choice="req">
+			<arg>-exact</arg>
+			<arg>-glob</arg>
+			<arg>-regexp</arg>
+		    </group>
+		    <arg>list</arg>
+		    <arg>pattern</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;.  
+		    This command emulates the TclX lmatch command, but if TclX isn't 
+		    available, it's a decent substitute.
+		</para>
+		<para>
+		    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
+		</para>
+		<para>
+		    <programlisting>::rivet::lmatch -regexp { aaxa bxxb ccxxxxcc } {.+[x]{2}.+}
+bxxb ccxxxxcc</programlisting>
+		</para>
+	    </refsect1>
 	</refentry>	
 
 
-    <refentry id="load_cookies">
-      <refnamediv>
-        <refname>load_cookies</refname>
-        <refpurpose>get any cookie variables sent by the client.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>load_cookies</command>
-          <arg choice="opt"><replaceable>array_name</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-      </refsect1>
-      <para>
-        Load the array of cookie variables into the specified
-        array name.  Uses array <option>cookies</option> by
-        default.
-      </para>
-    </refentry>
-
-    <refentry id="load_env">
-      <refnamediv>
-        <refname>load_env</refname>
-        <refpurpose>get the request's environment variables.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>load_env</command>
-          <arg choice="opt"><replaceable>array_name</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-
-        <para>
-          Load the array of environment variables into the specified
-          array name.  Uses array <option>::request::env</option> by
-          default.
-        </para>
-        <para>
-          As Rivet pages are run in the <option>::request</option>
-          namespace, it isn't necessary to qualify the array name
-          for most uses - it's ok to access it as
-          <option>env</option>.
-        </para>
-      </refsect1>
-    </refentry>
-
-    <refentry id="load_headers">
-      <refnamediv>
-			<refname>load_headers</refname>
-			<refpurpose>get client request's headers.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>load_headers</command>
-          <arg><replaceable>array_name</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-	  <refsect1>
-        <title>Description</title>
-        <para>
-          Load the headers that come from a client request into the
-          provided array name, or use <option>headers</option> if no
-          name is provided.
-        </para>
-      </refsect1>
-    </refentry>
-
-    <refentry id="load_response">
-      <refnamediv>
-        <refname>load_response</refname>
-        <refpurpose>load form variables into an array.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>load_response</command>
-          <arg><replaceable>arrayName</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-			<title>Description</title>
-			<para>
-				Load any form variables passed to this page into an
-				array. If <command>load_response</command> is called without 
-				arguments the array <option>response</option> 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. <command>load_response</command>
-				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.
-				Calling <command>load_response</command> 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.  
-			</para>
-      </refsect1>
-    </refentry>
-
-    <refentry id="makeurl">
-      <refnamediv>
-        <refname>makeurl</refname>
-        <refpurpose>construct url's based on hostname, port.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>makeurl</command>
-          <arg><replaceable>filename</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-        <para>
-          Create a self referencing URL from a filename. <command>makeurl</command>
-          can be used in three ways
-          <itemizedlist> 
-            <listitem> No argument is passed to the command (returns the current script URL)</listitem>
-            <listitem> 
-                A relative style path is passed (returns the argument prepended with the
-                current script's URL)
-            </listitem>
-            <listitem> 
-                An absolute path is passed to the command: (returns the full URL to the
-                resource)
-            </listitem>
+	<refentry id="load_cookies">
+	    <refnamediv>
+		<refname>load_cookies</refname>
+		<refpurpose>get any cookie variables sent by the client.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::load_cookies</command>
+		    <arg choice="opt"><replaceable>array_name</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+	    </refsect1>
+	    <para>
+		Load the array of cookie variables into the specified
+		array name.  Uses array <option>cookies</option> by
+		default.
+	    </para>
+	</refentry>
+		
+	<refentry id="load_env">
+	    <refnamediv>
+		<refname>load_env</refname>
+		<refpurpose>get the request's environment variables.</refpurpose>
+	    </refnamediv>
+		
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::load_env</command>
+		    <arg choice="opt"><replaceable>array_name</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Load the array of environment variables into the specified
+		    array name.  Uses array <option>::request::env</option> by
+		    default.
+		</para>
+		<para>
+		    As Rivet pages are run in the <option>::request</option>
+		    namespace, it isn't necessary to qualify the array name
+		    for most uses - it's ok to access it as
+		    <option>env</option>.
+		</para>
+	    </refsect1>
+	</refentry>
 
-          </itemizedlist>
-        </para>
-        <para>
-            Example of absolute path: <programlisting>makeurl /tclp.gif</programlisting> returns
-            <computeroutput>http://[hostname]:[port]/tclp.gif</computeroutput>.
-            where hostname and port are the hostname and port of the
-            server in question.
-        </para>
-      </refsect1>
-    </refentry>
+	<refentry id="load_headers">
+	    <refnamediv>
+		<refname>load_headers</refname>
+		<refpurpose>get client request's headers.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::load_headers</command>
+		    <arg><replaceable>array_name</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Load the headers that come from a client request into the
+		    provided array name, or use <option>headers</option> if no
+		    name is provided.
+		</para>
+	    </refsect1>
+	</refentry>
+	
+	<refentry id="load_response">
+	    <refnamediv>
+		<refname>load_response</refname>
+		<refpurpose>load form variables into an array.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::load_response</command>
+		    <arg><replaceable>arrayName</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Load any form variables passed to this page into an
+		    array. If <command>load_response</command> is called without 
+		    arguments the array <option>response</option> 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. <command>load_response</command>
+		    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.
+		    Calling <command>load_response</command> 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.  
+		</para>
+	    </refsect1>
+	</refentry>
 
-   <refentry id="no_body">
-      <refnamediv>
-        <refname>no_body</refname>
-        <refpurpose>Prevents Rivet from sending any content.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>no_body</command>
-        </cmdsynopsis>
-      </refsynopsisdiv>
+	<refentry id="makeurl">
+	    <refnamediv>
+		<refname>makeurl</refname>
+		<refpurpose>construct url's based on hostname, port.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::makeurl</command>
+		    <arg><replaceable>filename</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		  Create a self referencing URL from a filename. <command>makeurl</command>
+		  can be used in three ways
+		  <itemizedlist> 
+		    <listitem> No argument is passed to the command (returns the current script URL)</listitem>
+		    <listitem> 
+			A relative style path is passed (returns the argument prepended with the
+			current script's URL
+		    </listitem>
+		    <listitem> 
+			An absolute path is passed to the command: (returns the full URL to the
+			resource)
+		    </listitem>
+
+		  </itemizedlist>
+		</para>
+		<para>
+		    Example of absolute path: <programlisting>::rivet::makeurl /tclp.gif</programlisting> returns
+		    <computeroutput>http://[hostname]:[port]/tclp.gif</computeroutput>.
+		    where hostname and port are the hostname and port of the
+		    server in question.
+		</para>
+	    </refsect1>
+	</refentry>
 
-      <refsect1>
+	<refentry id="no_body">
+	    <refnamediv>
+		<refname>no_body</refname>
+		<refpurpose>Prevents Rivet from sending any content.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::no_body</command>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+		<refsect1>
         <title>Description</title>
         <para>
           This command is useful for situations where it is necessary
@@ -971,494 +1025,508 @@ bxxb ccxxxxcc
           instance, when returning a 304 redirect.
         </para>
       </refsect1>
-    </refentry>
-
-    <refentry id="parray">
-      <refnamediv>
-	<refname>parray</refname>
-	<refpurpose>Tcl's <command>parray</command> with html formatting.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-	<cmdsynopsis>
-	  <command>parray</command>
-	  <arg><replaceable>arrayName</replaceable></arg>
-	  <arg><replaceable><optional>pattern</optional></replaceable></arg>
-	</cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-	<title>Description</title>
-	<para>
-	  An html version of the standard Tcl
-	  <command>parray</command> command.  Displays the entire
-	  contents of an array in a sorted, nicely-formatted way.
-	  Mostly used for debugging purposes.
-	</para>
 
-      </refsect1>
-    </refentry>
+	</refentry>
+	<refentry id="parray">
+	    <refnamediv>
+		<refname>parray</refname>
+		<refpurpose>Tcl's <command>parray</command> with html formatting.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::parray</command>
+		    <arg><replaceable>arrayName</replaceable></arg>
+		    <arg><replaceable><optional>pattern</optional></replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    An html version of the standard Tcl
+		    <command>parray</command> command.  Displays the entire
+		    contents of an array in a sorted, nicely-formatted way.
+		    Mostly used for debugging purposes.
+		</para>
+	    </refsect1>
+	</refentry>
 
-    <refentry id="parse">
-      <refnamediv>
-        <refname>parse</refname>
-        <refpurpose>parses a Rivet template file.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>parse</command>
-          <arg><replaceable>filename</replaceable></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
+	<refentry id="parse">
+	    <refnamediv>
+		<refname>parse</refname>
+		<refpurpose>parses a Rivet template file.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::parse</command>
+		    <arg><replaceable>filename</replaceable></arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    Like the Tcl <command>source</command> command, but also
+		    parses for Rivet &lt;?  and ?&gt; processing tags.  Using
+		    this command, you can use one .rvt file from another.
+		</para>
+	    </refsect1>
+	</refentry>
 
-      <refsect1>
-        <title>Description</title>
-        <para>
-          Like the Tcl <command>source</command> command, but also
-          parses for Rivet &lt;?  and ?&gt; processing tags.  Using
-          this command, you can use one .rvt file from another.
-        </para>
-      </refsect1>
-    </refentry>
+	<refentry id="raw_post">
+	    <refnamediv>
+		<refname>raw_post</refname>
+		<refpurpose>get the unmodified body of a POST request sent by the client.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::raw_post</command>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+	    </refsect1>
+	    <para>
+		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.
+	    </para>
+	</refentry>
 
 	<refentry id="read_file">
-        <refnamediv>
-			<refname>read_file</refname>
-			<refpurpose>
-				Read the entire contents of a file and return it as a string.			
-			</refpurpose>
-        </refnamediv>
+	    <refnamediv>
+		<refname>read_file</refname>
+		<refpurpose>
+		    Read the entire contents of a file and return it as a string.			
+		</refpurpose>
+	    </refnamediv>
 		
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>read_file</command>
-				<arg>file name</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>
-				This is a utility command which loads the entire content of
-				a file and returns it as a result.
-			</para>
-		</refsect1>
+	    <refsynopsisdiv>
+	    	<cmdsynopsis>
+		    <command>::rivet::read_file</command>
+		    <arg>file name</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    This is a utility command which loads the entire content of
+		    a file and returns it as a result.
+		</para>
+	    </refsect1>
 	</refentry>	
-    <refentry id="unescape_string">
-      <refnamediv>
-        <refname>unescape_string</refname>
-        <refpurpose>unescape escaped characters in a string.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>unescape_string</command>
-          <arg>string</arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-        <para>
-          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.
-        </para>
-        <para>
-            This is useful for unquoting strings that have been quoted to
-            be part of a URL.
-        </para>
-        <note> 
-            You must require the Rivet package in order to gain access to this command
-        </note>
-      </refsect1>
-    </refentry>
-
-    <refentry id="upload">
-      <refnamediv>
-        <refname>upload</refname>
-        <refpurpose>handle a file uploaded by a client.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-	        <command>upload</command>
-            <group choice="req">
-                <arg>channel</arg>
-                <arg>save</arg>
-                <arg>data</arg>
-                <arg>exists</arg>
-                <arg>size</arg>
-                <arg>type</arg>
-                <arg>filename</arg>
-            </group>
-	    </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-        <para>The upload command is for file upload manipulation.
-          See the relevant Apache Directives to further configure the
-          behavior of this Rivet feature.
-        </para>
-
-        <variablelist>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">channel</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            When given the name of a file upload
-            <option><replaceable>uploadname</replaceable></option>,
-            returns a Tcl channel that can be used to access the
-            uploaded file.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">save</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-            <arg><replaceable>filename</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            Saves the
-            <option><replaceable>uploadname</replaceable></option> in
-            the file
-            <option><replaceable>filename</replaceable></option>.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">data</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            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.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">exists</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            Returns true if an upload named <arg>uploadname</arg>
-            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.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">size</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            Returns the size of the file uploaded.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">type</arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            If the <varname>Content-type</varname> is set, it is
-            returned, otherwise, an empty string.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">filename</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            Returns the filename on the remote host that uploaded the file.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">tempname</arg>
-            <arg><replaceable>uploadname</replaceable></arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            Returns the name of the temporary file on the local host that the file was uploaded into.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>
-              <cmdsynopsis>
-            <command>upload</command>
-            <arg choice="plain">names</arg>
-              </cmdsynopsis>
-            </term>
-            <listitem>
-              <para>
-            Returns the variable names, as a list, of all the files
-            uploaded.
-              </para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <para>
-          See <xref linkend="upload"/>.
-        </para>
-      </refsect1>
-    </refentry>
 
-    <refentry id="var">
-      <refnamediv>
-        <refname>var</refname>
-        <refname>var_qs</refname>
-        <refname>var_post</refname>
-        <refpurpose>get the value of a form variable.</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>var</command>
-          <group choice="req">
-            <arg>get</arg>
-            <arg>list</arg>
-            <arg>exists</arg>
-            <arg>number</arg>
-            <arg>all</arg>
-          </group>
-	    </cmdsynopsis>
-
-        <cmdsynopsis>
-          <command>var_qs</command>
-          <group choice="req">
-            <arg>get</arg>
-            <arg>list</arg>
-            <arg>exists</arg>
-            <arg>number</arg>
-            <arg>all</arg>
-          </group>
-        </cmdsynopsis>
-
-        <cmdsynopsis>
-          <command>var_post</command>
-          <group choice="req">
-            <arg>get</arg>
-            <arg>list</arg>
-            <arg>exists</arg>
-            <arg>number</arg>
-            <arg>all</arg>
-          </group>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1>
-        <title>Description</title>
-        <para>
-          The <command>var</command> 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 <command>var</command>:
-          <command>var_qs</command> and <command>var_post</command>.
-          These two restrict the retrieval of information to
-          parameters arriving via the querystring
-          (?foo=bar&amp;bee=bop) or POSTing, respectively.
-        </para>
-	<variablelist>
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>var</command>
-		<arg choice="plain">get</arg>
-		<arg><replaceable>varname</replaceable></arg>
-		<arg><replaceable><optional>default</optional></replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Returns the value of variable
-		<option><replaceable>varname</replaceable></option>
-		as a string (even if there are multiple values).  If
-		the variable doesn't exist as a GET or POST
-		variable, the
-		<option><replaceable><optional>default</optional></replaceable></option>
-		value is returned, otherwise "" - an empty string -
-		is returned.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>var</command>
-		<arg choice="plain">list</arg>
-		<arg><replaceable>varname</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Returns the value of variable
-		<option><replaceable>varname</replaceable></option> as a
-		list, if there are multiple values.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>var</command>
-		<arg choice="plain">exists</arg>
-		<arg><replaceable>varname</replaceable></arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Returns 1 if
-		<option><replaceable>varname</replaceable></option>
-		exists, 0 if it doesn't.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>var</command>
-		<arg choice="plain">number</arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Returns the number of variables.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>
-	      <cmdsynopsis>
-		<command>var</command>
-		<arg choice="plain">all</arg>
-	      </cmdsynopsis>
-	    </term>
-	    <listitem>
-	      <para>
-		Return a list of variable names and values.
-	      </para>
-	    </listitem>
-	  </varlistentry>
-	</variablelist>
-
-        <para>
-          See <xref linkend="variable_access"/>.
-        </para>
+	<refentry id="unescape_string">
+	    <refnamediv>
+		<refname>unescape_string</refname>
+		<refpurpose>unescape escaped characters in a string.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::unescape_string</command>
+		    <arg>string</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.
+		</para>
+		<para>
+		    This is useful for unquoting strings that have been quoted to
+		    be part of a URL.
+		</para>
+		<!-- note> 
+		    You must require the <command>rivetlib</command> package in order to gain 
+		    access to this command
+		</note -->
+	    </refsect1>
+	</refentry>
 
-      </refsect1>
-    </refentry>
+	<refentry id="upload">
+	    <refnamediv>
+		<refname>upload</refname>
+		<refpurpose>handle a file uploaded by a client.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::upload</command>
+		    <group choice="req">
+			<arg>channel</arg>
+			<arg>save</arg>
+			<arg>data</arg>
+			<arg>exists</arg>
+			<arg>size</arg>
+			<arg>type</arg>
+			<arg>filename</arg>
+		    </group>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    The upload command is for file upload manipulation.
+		    See the relevant Apache Directives to further configure the
+		    behavior of this Rivet feature.
+		</para>
+
+		<variablelist>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">channel</arg>
+    				<arg><replaceable>uploadname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				When given the name of a file upload
+	    			<option><replaceable>uploadname</replaceable></option>,
+				returns a Tcl channel that can be used to access the
+				uploaded file.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">save</arg>
+				<arg><replaceable>uploadname</replaceable></arg>
+				<arg><replaceable>filename</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Saves the <option><replaceable>uploadname</replaceable></option> in
+				the file <option><replaceable>filename</replaceable></option>.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">data</arg>
+				<arg><replaceable>uploadname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				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.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">exists</arg>
+				<arg><replaceable>uploadname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns true if an upload named <arg>uploadname</arg>
+				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.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">size</arg>
+				<arg><replaceable>uploadname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the size of the file uploaded.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">type</arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				If the <varname>Content-type</varname> is set, it is
+				returned, otherwise, an empty string.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">filename</arg>
+				<arg><replaceable>uploadname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the filename on the remote host that uploaded the file.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">tempname</arg>
+				<arg><replaceable>uploadname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the name of the temporary file on the local host that the file was uploaded into.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::upload</command>
+				<arg choice="plain">names</arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the variable names, as a list, of all the files uploaded.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		</variablelist>
+		<para>
+		    See <xref linkend="file_upload"/>.
+		</para>
+	    </refsect1>
+	</refentry>
 
+	<refentry id="var">
+	    <refnamediv>
+		<refname>var</refname>
+		<refname>var_qs</refname>
+		<refname>var_post</refname>
+		<refpurpose>get the value of a form variable.</refpurpose>
+	    </refnamediv>
+
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::var</command>
+		    <group choice="req">
+			<arg>get</arg>
+			<arg>list</arg>
+			<arg>exists</arg>
+			<arg>number</arg>
+			<arg>all</arg>
+		    </group>
+		</cmdsynopsis>
+		
+		<cmdsynopsis>
+		    <command>::rivet::var_qs</command>
+		    <group choice="req">
+			<arg>get</arg>
+			<arg>list</arg>
+			<arg>exists</arg>
+			<arg>number</arg>
+			<arg>all</arg>
+		    </group>
+		</cmdsynopsis>
+		
+		<cmdsynopsis>
+		    <command>::rivet::var_post</command>
+		    <group choice="req">
+			<arg>get</arg>
+			<arg>list</arg>
+			<arg>exists</arg>
+			<arg>number</arg>
+			<arg>all</arg>
+		    </group>
+		</cmdsynopsis>
+	    </refsynopsisdiv>
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    The <command>var</command> 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 <command>::rivet::var</command>:
+		    <command>rivet::var_qs</command> and 
+		    <command>::rivet::var_post</command>.
+		    These two restrict the retrieval of information to
+		    parameters arriving via the querystring
+		    (?foo=bar&amp;bee=bop) or POSTing, respectively.
+		</para>
+		<variablelist>
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::var</command>
+				<arg choice="plain">get</arg>
+				<arg><replaceable>varname</replaceable></arg>
+				<arg><replaceable><optional>default</optional></replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the value of variable
+				<option><replaceable>varname</replaceable></option>
+				as a string (even if there are multiple values).  If
+				the variable doesn't exist as a GET or POST
+				variable, the
+				<option><replaceable><optional>default</optional></replaceable></option>
+				value is returned, otherwise "" - an empty string -
+				is returned.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		    
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::var</command>
+				<arg choice="plain">list</arg>
+				<arg><replaceable>varname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the value of variable
+				<option><replaceable>varname</replaceable></option> as a
+				list, if there are multiple values.
+			    </para>
+			</listitem>
+		    </varlistentry>
+	    
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::var</command>
+				<arg choice="plain">exists</arg>
+				<arg><replaceable>varname</replaceable></arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns 1 if
+				<option><replaceable>varname</replaceable></option>
+				exists, 0 if it doesn't.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::var</command>
+				<arg choice="plain">number</arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Returns the number of variables.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		
+		    <varlistentry>
+			<term>
+			    <cmdsynopsis>
+				<command>::rivet::var</command>
+				<arg choice="plain">all</arg>
+			    </cmdsynopsis>
+			</term>
+			<listitem>
+			    <para>
+				Return a list of variable names and values.
+			    </para>
+			</listitem>
+		    </varlistentry>
+		</variablelist>
+		<para>See <xref linkend="variable_access"/>.</para>
+	    </refsect1>
+	</refentry>
 
 	<refentry id="wrap">
-      <refnamediv>
-			<refname>wrap</refname>
-			<refpurpose>
-				Split a string on newlines. 
-			</refpurpose>
-      </refnamediv>
+	    <refnamediv>
+		<refname>wrap</refname>
+		<refpurpose>
+		    Split a string on newlines. 
+		</refpurpose>
+	    </refnamediv>
 		
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>wrap</command>
-				<arg>string</arg>
-				<arg>maxlen</arg>
-				<arg choice="plan">html</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>			
-				For each line, wrap the line at a space character to be 
-				equal to or shorter than the maximum length value passed.
-			</para>
-			<para>
-				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.
-			</para>
-		</refsect1>
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::wrap</command>
+		    <arg>string</arg>
+		    <arg>maxlen</arg>
+		    <arg choice="plan">html</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>			
+		    For each line, wrap the line at a space character to be 
+		    equal to or shorter than the maximum length value passed.
+		</para>
+		<para>
+		    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.
+		</para>
+	    </refsect1>
 	</refentry>	
 
 	<refentry id="wrapline">
-      <refnamediv>
-			<refname>wrapline</refname>
-			<refpurpose>
-				Split the line into multiple lines by splitting on space characters 
-			</refpurpose>
-      </refnamediv>
-		
-		<refsynopsisdiv>
-			<cmdsynopsis>
-				<command>wrapline</command>
-				<arg>string</arg>
-				<arg>maxlen</arg>
-				<arg choice="plan">html</arg>
-			</cmdsynopsis>
-		</refsynopsisdiv>	
-		<refsect1>
-			<title>Description</title>
-			<para>
-				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.
-			</para>
-			<para>
-				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.
-			</para>
-		</refsect1>
+	    <refnamediv>
+		<refname>wrapline</refname>
+		<refpurpose>
+		    Split the line into multiple lines by splitting on space characters 
+		</refpurpose>
+	    </refnamediv>
+	    <refsynopsisdiv>
+		<cmdsynopsis>
+		    <command>::rivet::wrapline</command>
+		    <arg>string</arg>
+		    <arg>maxlen</arg>
+		    <arg choice="plan">html</arg>
+		</cmdsynopsis>
+	    </refsynopsisdiv>	
+	    <refsect1>
+		<title>Description</title>
+		<para>
+		    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.
+		</para>
+		<para>
+		    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.
+		</para>
+	    </refsect1>
 	</refentry>	
+
 </section>



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