You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-cvs@tcl.apache.org by mx...@apache.org on 2014/06/17 20:22:41 UTC

svn commit: r1603247 [7/8] - in /tcl/site/rivet: ./ manual2.2/ manual2.2/images/ picts/ static/ templates/wondrous/

Added: tcl/site/rivet/manual2.2/session_package.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/session_package.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/session_package.html (added)
+++ tcl/site/rivet/manual2.2/session_package.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,182 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Session Package</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="diodisplay_package.html" title="DIODisplay"><link rel="next" href="form.html" title="Form: An HTML Form Fields Generation Utility"></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="idp59162704"></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="idp59211088"></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="idp59216528"></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="idp59223280"></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="idp59246944"></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="idp59274288"></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="idp59301392"></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>

Added: tcl/site/rivet/manual2.2/shorthand.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/shorthand.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/shorthand.html (added)
+++ tcl/site/rivet/manual2.2/shorthand.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>&lt;?= ... ?&gt;</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="next" href="abort_code.html" title="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="idp56527568"></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>

Added: tcl/site/rivet/manual2.2/tcl_packages.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/tcl_packages.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/tcl_packages.html (added)
+++ tcl/site/rivet/manual2.2/tcl_packages.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rivet Tcl Packages</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="examples.html" title="Examples and Usage"><link rel="next" href="dio.html" title="DIO - Database Interface Objects"></head><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></d
 iv><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">
+				commserver is a package providing a server that can be
+				used for IPC.  Still experimental.  Requires the comm package
+				from tcllib.
+			</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">dio is a database abstraction layer.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">
+				dtcl is a compatibility package for mod_dtcl
+				applications.
+			</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">form - for creating forms.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">rivet - some additional, useful routines.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">tclrivet</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">calendar - a package providing a simple configurable calendar generator</div></li></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>

Added: tcl/site/rivet/manual2.2/unescape_string.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/unescape_string.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/unescape_string.html (added)
+++ tcl/site/rivet/manual2.2/unescape_string.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>unescape_string</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="read_file.html" title="read_file"><link rel="next" href="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="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="upload.html"><img src="images/next.png" alt="Next"></a></t
 d></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="idp56923504"></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="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="upload.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"> upload</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.2/upgrading.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/upgrading.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/upgrading.html (added)
+++ tcl/site/rivet/manual2.2/upgrading.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Upgrading from mod_dtcl or NeoWebScript</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="internals.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Upgrading from mod_dtcl or NeoWebScript</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="
 upgrading"></a>Upgrading from mod_dtcl or NeoWebScript</h2></div></div></div><p style="width:90%">
+      Rivet is a break from the past, in that we, the authors, have
+      attempted to take what we like best about our past efforts, and
+      leave out or change things we no longer care for.  Backwards
+      compatibility was not a primary goal when creating Rivet, but we
+      do provide this information which may be of use to those wishing
+      to upgrade from mod_dtcl or NWS installations.
+    </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp60396384"></a>mod_dtcl</h3></div></div></div><p style="width:90%">
+	Rivet was originally based on the dtcl code, but it has
+	changed (improved!) quite a bit.  The concepts remain the
+	same, but many of the commands have changed.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp60397728"></a>NeoWebScript</h3></div></div></div><p style="width:90%">
+      	NWS was a server-side scripting environment based on the Apache
+        HTTP server and Safe-Tcl and it's not maintained anymore.      
+      </p><p style="width:90%">
+      	The biggest difference between Rivet and Neowebscript is that 
+      	Neowebscript was designed for shared hosting while Rivet is more oriented 
+      	toward a site that owns all of its content. In the words of Karl Lehenbauer,
+      	NWS author and Rivet Team member:
+      	</p><p style="width:90%">
+      	Rivet, however, is considerably more efficient, powerful, and 
+      	evolved, though it still can support multiple independent sites on a single 
+      	machine through its <span class="quote">“<span class="quote">separate virtual interpreters</span>”</span> mechanism.
+      	</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">By powerful, the difference is that the full power of Tcl is available 
+      		to webpage authors, not the restricted version that NWS provides. 
+      		For instance, you can read or write any file in the system that you 
+      		have permission to, require any package, open sockets and pipes, etc.</li><li class="listitem">By efficient, the difference is that Tcl interpreters survive past 
+      		the generation of a webpage and are reused again and again, reducing the 
+      		overhead of generating a page.
+      		</li><li class="listitem">By evolved, all of our efforts have gone toward Rivet for many 
+				years and so, you know, Rivet does more out of the box than Neowebscript did.</li></ul></div><p style="width:90%">
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="internals.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Rivet Internals </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.2/upload.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/upload.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/upload.html (added)
+++ tcl/site/rivet/manual2.2/upload.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,53 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>upload</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="unescape_string.html" title="unescape_string"><link rel="next" href="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">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="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="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="idp56936224"></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="var.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"> var</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.2/var.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/var.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/var.html (added)
+++ tcl/site/rivet/manual2.2/var.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,52 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>var</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="upload.html" title="upload"><link rel="next" href="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="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="wrap.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="refent
 ry"><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="idp57005456"></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="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="wrap.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"> wrap</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.2/wrap.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/wrap.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/wrap.html (added)
+++ tcl/site/rivet/manual2.2/wrap.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>wrap</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="var.html" title="var"><link rel="next" href="wrapline.html" title="wrapline"></head><body bgcolor="white" text="black" 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="r
 efentry"><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="idp57043616"></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>

Added: tcl/site/rivet/manual2.2/wrapline.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/wrapline.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/wrapline.html (added)
+++ tcl/site/rivet/manual2.2/wrapline.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>wrapline</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="wrap.html" title="wrap"><link rel="next" href="xml.html" title="xml"></head><body bgcolor="white" text="black" 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="refen
 try"><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="idp57051600"></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>

Added: tcl/site/rivet/manual2.2/xml.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/xml.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/xml.html (added)
+++ tcl/site/rivet/manual2.2/xml.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>xml</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="wrapline.html" title="wrapline"><link rel="next" href="examples.html" title="Examples and Usage"></head><body bgcolor="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></ta
 ble></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="idp57060464"></a><h2>Description</h2><p style="width:90%">
+                Given a string and a variable number of tag descriptors return XML framgment 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 tell the tags which attributes they must have
+            </p><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml "a string" [list div class box id testbox] b i</strong></span></span>
+&lt;== &lt;div class="box" id="testbox"&gt;&lt;b&gt;&lt;i&gt;a string&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;</pre><pre class="programlisting"><span style="font-family:monospace"><span class="command"><strong>::rivet::xml "text to be wrapped in XML" div [list a href "http://..../" title "info message"]</strong></span></span> 
+&lt;== &lt;div&gt;&lt;a href="http://..../" title="info message"&gt;text to be wrapped in XML&lt;/a&gt;&lt;/div&gt;</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="wrapline.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="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>

Added: tcl/site/rivet/manual2.2/xml_calendar.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.2/xml_calendar.html?rev=1603247&view=auto
==============================================================================
--- tcl/site/rivet/manual2.2/xml_calendar.html (added)
+++ tcl/site/rivet/manual2.2/xml_calendar.html Tue Jun 17 18:22:39 2014
@@ -0,0 +1,87 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>XmlCalendar</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="calendar_package.html" title="Calendar Package"><link rel="prev" href="calendar.html" title="Calendar"><link rel="next" href="html_calendar.html" title="HtmlCalendar"></head><body bgcolor="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="idp6
 0038368"></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="idp60041472"></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="idp60052528"></a><div class="refsect2"><a name="idp60052784"></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>

Added: tcl/site/rivet/picts/color-table.png
URL: http://svn.apache.org/viewvc/tcl/site/rivet/picts/color-table.png?rev=1603247&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tcl/site/rivet/picts/color-table.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: tcl/site/rivet/static/about.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/static/about.html?rev=1603247&r1=1603246&r2=1603247&view=diff
==============================================================================
--- tcl/site/rivet/static/about.html (original)
+++ tcl/site/rivet/static/about.html Tue Jun 17 18:22:39 2014
@@ -102,6 +102,9 @@
         <li class="navitem">
             <a href="announce.html">25 Mar 2014: Rivet 2.0 deprecated</a>
         </li>
+        <li class="navitem">
+            <a href="rn-2-2.html">16 June 2014: Rivet 2.2.0 released</a>
+        </li>
     </ul>
 </li>
  
@@ -152,7 +155,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2 Manual</a>
         </li>
     </ul>
 </li>

Modified: tcl/site/rivet/static/ajax.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/static/ajax.html?rev=1603247&r1=1603246&r2=1603247&view=diff
==============================================================================
--- tcl/site/rivet/static/ajax.html (original)
+++ tcl/site/rivet/static/ajax.html Tue Jun 17 18:22:39 2014
@@ -207,7 +207,10 @@ if {[var exists load]} {
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2 Manual</a>
         </li>
     </ul>
 </li>

Modified: tcl/site/rivet/static/announce.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/static/announce.html?rev=1603247&r1=1603246&r2=1603247&view=diff
==============================================================================
--- tcl/site/rivet/static/announce.html (original)
+++ tcl/site/rivet/static/announce.html Tue Jun 17 18:22:39 2014
@@ -57,6 +57,9 @@
         <li class="navitem">
             <a href="announce.html">25 Mar 2014: Rivet 2.0 deprecated</a>
         </li>
+        <li class="navitem">
+            <a href="rn-2-2.html">16 June 2014: Rivet 2.2.0 released</a>
+        </li>
     </ul>
 </li>
  
@@ -107,7 +110,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2 Manual</a>
         </li>
     </ul>
 </li>

Modified: tcl/site/rivet/static/calendar.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/static/calendar.html?rev=1603247&r1=1603246&r2=1603247&view=diff
==============================================================================
--- tcl/site/rivet/static/calendar.html (original)
+++ tcl/site/rivet/static/calendar.html Tue Jun 17 18:22:39 2014
@@ -66,7 +66,7 @@ puts $html_txt</pre>
 					with some CSS styling would print
 				</p>
     <p>
-        <img src="../picts/calendar.png"/>
+        <img src="/picts/calendar.png"/>
     </p>
     <p>
 				    Almost the whole HTML of <b>HtmlCalendar</b>
@@ -115,7 +115,10 @@ puts $html_txt</pre>
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2 Manual</a>
         </li>
     </ul>
 </li>

Modified: tcl/site/rivet/static/download.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/static/download.html?rev=1603247&r1=1603246&r2=1603247&view=diff
==============================================================================
--- tcl/site/rivet/static/download.html (original)
+++ tcl/site/rivet/static/download.html Tue Jun 17 18:22:39 2014
@@ -133,6 +133,9 @@
         <li class="navitem">
             <a href="announce.html">25 Mar 2014: Rivet 2.0 deprecated</a>
         </li>
+        <li class="navitem">
+            <a href="rn-2-2.html">16 June 2014: Rivet 2.2.0 released</a>
+        </li>
     </ul>
 </li>
  
@@ -183,7 +186,10 @@
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2 Manual</a>
         </li>
     </ul>
 </li>

Modified: tcl/site/rivet/static/file_download.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/static/file_download.html?rev=1603247&r1=1603246&r2=1603247&view=diff
==============================================================================
--- tcl/site/rivet/static/file_download.html (original)
+++ tcl/site/rivet/static/file_download.html Tue Jun 17 18:22:39 2014
@@ -148,7 +148,10 @@ if {[var exists pdfname]} {
     <h4>Documentation</h4>
     <ul class="blocklist">
         <li class="navitem">
-            <a title="Rivet Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1 Manual</a>
+        </li>
+        <li class="navitem">
+            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2 Manual</a>
         </li>
     </ul>
 </li>



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