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 2012/12/03 02:16:32 UTC

svn commit: r1416329 [6/7] - in /tcl/site/rivet/manual2.1: ./ images/

Added: tcl/site/rivet/manual2.1/internals.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/internals.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/internals.html (added)
+++ tcl/site/rivet/manual2.1/internals.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,125 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Rivet Internals</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="help.html" title="Resources - How to Get Help"><link rel="next" href="upgrading.html" title="Upgrading from mod_dtcl or NeoWebScript"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Rivet Internals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="help.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="upgrading.html"><img src="images/next.png" alt="Next"></a>
 </td></tr></table></div><div class="section" title="Rivet Internals"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="internals"></a>Rivet Internals</h2></div></div></div><p style="width:90%">
+      This section easily falls out of date, as new code is added, old
+      code is removed, and changes are made.  The best place to look
+      is the source code itself.  If you are interested in the changes
+      themselves, the Subversion revision control system
+      (<span style="font-family:monospace"><span class="command"><strong>svn</strong></span></span>) can provide you with information about
+      what has been happening with the code.
+    </p><div class="section" title="Initialization"><div class="titlepage"><div><div><h3 class="title"><a name="idp8859136"></a>Initialization</h3></div></div></div><p style="width:90%">
+	When Apache is started, (or when child Apache processes are
+	started if a threaded Tcl is used),
+	<code class="function">Rivet_InitTclStuff</code> is called, which
+	creates a new interpreter, or one interpreter per virtual
+	host, depending on the configuration. It also initializes
+	various things, like the <span class="structname">RivetChan</span>
+	channel system, creates the Rivet-specific Tcl commands, and
+	executes Rivet's <code class="filename">init.tcl</code>.  The caching
+	system is also set up, and if there is a
+	<span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span>, it is run.
+      </p></div><div class="section" title="RivetChan"><div class="titlepage"><div><div><h3 class="title"><a name="idp8845392"></a>RivetChan</h3></div></div></div><p style="width:90%">
+	The <span class="structname">RivetChan</span> system was created in
+	order to have an actual Tcl channel that we could redirect
+	standard output to.  This lets us use, for instance, the
+	regular <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> command in .rvt pages.  It
+	works by creating a channel that buffers output, and, at
+	predetermined times, passes it on to Apache's IO system.
+	Tcl's regular standard output is replaced with an instance of
+	this channel type, so that, by default, output will go to the
+	web page.
+      </p></div><div class="section" title="The global Command"><div class="titlepage"><div><div><h3 class="title"><a name="idp8909360"></a>The <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> Command</h3></div></div></div><p style="width:90%">
+	Rivet aims to run standard Tcl code with as few surprises as
+	possible.  At times this involves some compromises - in this
+	case regarding the <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> command.  The
+	problem is that the command will create truly global
+	variables.  If the user is just cut'n'pasting some Tcl code
+	into Rivet, they most likely just want to be able to share the
+	variable in question with other procs, and don't really care
+	if the variable is actually persistant between pages.  The
+	solution we have created is to create a proc
+	<span style="font-family:monospace"><span class="command"><strong>::request::global</strong></span></span> that takes the place of
+	the <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> command in Rivet templates.  If
+	you really need a true global variable, use either
+	<span style="font-family:monospace"><span class="command"><strong>::global</strong></span></span> or add the :: namespace qualifier
+	to variables you wish to make global.
+      </p></div><div class="section" title="Page Parsing, Execution and Caching"><div class="titlepage"><div><div><h3 class="title"><a name="idp8914752"></a>Page Parsing, Execution and Caching</h3></div></div></div><p style="width:90%">
+	When a Rivet page is requested, it is transformed into an
+	ordinary Tcl script by parsing the file for the &lt;? ?&gt;
+	processing instruction tags.  Everything outside these tags
+	becomes a large <span style="font-family:monospace"><span class="command"><strong>puts</strong></span></span> statement, and
+	everything inside them remains Tcl code.
+      </p><p style="width:90%">
+	Each .rvt file is evaluated in its own
+	<code class="constant">::request</code> namespace, so that it is not
+	necessary to create and tear down interpreters after each
+	page.  By running in its own namespace, though, each page will
+	not run afoul of local variables created by other scripts,
+	because they will be deleted automatically when the namespace
+	goes away after Apache finishes handling the request.
+      </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+	    One current problem with this system is that while
+	    variables are garbage collected, file handles are not, so
+	    that it is very important that Rivet script authors make
+	    sure to close all the files they open.
+      </td></tr></table></div><p style="width:90%">
+      </p><p style="width:90%">
+	After a script has been loaded and parsed into it's "pure Tcl"
+	form, it is also cached, so that it may be used in the future
+	without having to reload it (and re-parse it) from the disk.
+	The number of scripts stored in memory is configurable.  This
+	feature can significantly improve performance.
+      </p></div><div class="section" title="Debugging Rivet and Apache"><div class="titlepage"><div><div><h3 class="title"><a name="idp8919776"></a>Debugging Rivet and Apache</h3></div></div></div><p style="width:90%">
+	If you are interested in hacking on Rivet, you're welcome to
+	contribute!  Invariably, when working with code, things go
+	wrong, and it's necessary to do some debugging.  In a server
+	environment like Apache, it can be a bit more difficult to
+	find the right way to do this.  Here are some techniques to
+	try.
+      </p><p style="width:90%">
+	The first thing you should know is that Apache can be launched
+	as a <span class="emphasis"><em>single process</em></span> with the
+	-X argument:</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%;       padding: 1ex; border: dashed black 1px ; white-space: pre;      font-family: monospace; font-size: 90%;" class="programlisting">httpd -X</pre>.
+      <p style="width:90%">
+	On Linux, one of the first things to try is the system call
+	tracer, <span style="font-family:monospace"><span class="command"><strong>strace</strong></span></span>.  You don't even have to
+	recompile Rivet or Apache for this to work.
+      </p><pre style="background:#ccc; margin: 2ex; margin-right: 10%;       padding: 1ex; border: dashed black 1px ; white-space: pre;      font-family: monospace; font-size: 90%;" class="programlisting">strace -o /tmp/outputfile -S 1000 httpd -X</pre><p style="width:90%">This command will run httpd in the system call tracer,
+	which leaves its output (there is potentially a lot of it) in
+	<code class="filename">/tmp/outputfile</code>.  The -S
+	option tells <span style="font-family:monospace"><span class="command"><strong></strong></span></span>strace to only record the
+	first 1000 bytes of a syscall.  Some calls such as
+	<code class="function">write</code> can potentially be much longer than
+	this, so you may want to increase this number.  The results
+	are a list of all the system calls made by the program.  You
+	want to look at the end, where the failure presumably occured,
+	to see if you can find anything that looks like an error.  If
+	you're not sure what to make of the results, you can always
+	ask on the Rivet development mailing list.
+      </p><p style="width:90%">
+	If <span style="font-family:monospace"><span class="command"><strong>strace</strong></span></span> (or its equivalent on your
+	operating system) doesn't answer your question, it may be time
+	to debug Apache and Rivet.  To do this, you will need to run
+	the <span style="font-family:monospace"><span class="command"><strong>./configure.tcl</strong></span></span> script with the
+	-enable-symbols option, and recompile.
+      </p><p style="width:90%">
+	Since it's easier to debug a single process, we'll still run
+	Apache in single process mode with -X:
+      </p><pre style="background:#ccc; margin: 2ex; margin-right: 10%;       padding: 1ex; border: dashed black 1px ; white-space: pre;      font-family: monospace; font-size: 90%;" class="programlisting">
+@ashland [~] $ gdb /usr/sbin/apache.dbg
+GNU gdb 5.3-debian
+Copyright 2002 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB.  Type "show warranty" for details.
+This GDB was configured as "powerpc-linux"...
+(gdb) run -X
+Starting program: /usr/sbin/apache.dbg -X
+[New Thread 16384 (LWP 13598)]
+.
+.
+.
+      </pre><p style="width:90%">
+	When your apache session is up and running, you can request a
+	web page with the browser, and see where things go wrong (if
+	you are dealing with a crash, for instance).
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="help.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="upgrading.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Resources - How to Get Help </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Upgrading from mod_dtcl or NeoWebScript</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/lempty.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/lempty.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/lempty.html (added)
+++ tcl/site/rivet/manual2.1/lempty.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>lempty</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="inspect.html" title="inspect"><link rel="next" href="lmatch.html" title="lmatch"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">lempty</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="inspect.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="lmatch.html"><img src="images/next.png" alt="Next"></a></td></tr></table>
 </div><div class="refentry" title="lempty"><div class="refentry.separator"><hr></div><a name="lempty"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lempty &#8212; 
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::lempty</span>  ?<span style="font-family:monospace; font-weight: bold;">list</span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5469616"></a><h2>Description</h2><p style="width:90%">
+		    Returns 1 if &lt;list&gt; is empty or 0 if it has any elements.  
+		    This command emulates the TclX lempty command.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="inspect.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="lmatch.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">inspect </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> lmatch</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/lmatch.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/lmatch.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/lmatch.html (added)
+++ tcl/site/rivet/manual2.1/lmatch.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>lmatch</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lempty.html" title="lempty"><link rel="next" href="load_cookies.html" title="load_cookies"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">lmatch</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lempty.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_cookies.html"><img src="images/next.png" alt="Next"></a></t
 d></tr></table></div><div class="refentry" title="lmatch"><div class="refentry.separator"><hr></div><a name="lmatch"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lmatch &#8212; 
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;
+		</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::lmatch</span>  (<span style="font-family:monospace; font-weight: bold;">-exact</span> | <span style="font-family:monospace; font-weight: bold;">-glob</span> | <span style="font-family:monospace; font-weight: bold;">-regexp</span>) ?<span style="font-family:monospace; font-weight: bold;">list</span>? ?<span style="font-family:monospace; font-weight: bold;">pattern</span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5479728"></a><h2>Description</h2><p style="width:90%">
+		    Look for elements in &lt;list&gt; that match &lt;pattern&gt;.  
+		    This command is a decent replacement for TclX lmatch command when TclX is
+            not available 
+		</p><p style="width:90%">
+		    In the following example a regular expression is matched against
+		    each element in the input list and a list containing the matching
+		    elements is returned
+		</p><p style="width:90%">
+		    </p><pre style="background:#ccc; margin: 2ex; margin-right: 10%;       padding: 1ex; border: dashed black 1px ; white-space: pre;      font-family: monospace; font-size: 90%;" class="programlisting">::rivet::lmatch -regexp { aaxa bxxb ccxxxxcc } {.+[x]{2}.+}
+bxxb ccxxxxcc</pre><p style="width:90%">
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lempty.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_cookies.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">lempty </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> load_cookies</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/load_cookies.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/load_cookies.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/load_cookies.html (added)
+++ tcl/site/rivet/manual2.1/load_cookies.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>load_cookies</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="lmatch.html" title="lmatch"><link rel="next" href="load_env.html" title="load_env"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_cookies</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lmatch.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_env.html"><img src="images/next.png" alt="Next"></a></t
 d></tr></table></div><div class="refentry" title="load_cookies"><div class="refentry.separator"><hr></div><a name="load_cookies"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_cookies &#8212; get any cookie variables sent by the client.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::load_cookies</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5487328"></a><h2>Description</h2></div><p style="width:90%">
+		Load the array of cookie variables into the specified
+		array name.  Uses array cookies by
+		default.
+	    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lmatch.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_env.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">lmatch </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> load_env</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/load_env.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/load_env.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/load_env.html (added)
+++ tcl/site/rivet/manual2.1/load_env.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>load_env</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_cookies.html" title="load_cookies"><link rel="next" href="load_headers.html" title="load_headers"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_env</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_cookies.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_headers.html"><img src="images/next.p
 ng" alt="Next"></a></td></tr></table></div><div class="refentry" title="load_env"><div class="refentry.separator"><hr></div><a name="load_env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_env &#8212; get the request's environment variables.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::load_env</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5493360"></a><h2>Description</h2><p style="width:90%">
+		    Load the array of environment variables into the specified
+		    array name.  Uses array ::request::env by
+		    default.
+		</p><p style="width:90%">
+		    As Rivet pages are run in the ::request
+		    namespace, it isn't necessary to qualify the array name
+		    for most uses - it's ok to access it as
+		    env.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_cookies.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_headers.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">load_cookies </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> load_headers</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/load_headers.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/load_headers.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/load_headers.html (added)
+++ tcl/site/rivet/manual2.1/load_headers.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>load_headers</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_env.html" title="load_env"><link rel="next" href="load_response.html" title="load_response"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_headers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_env.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="load_response.html"><img src="images/next.pn
 g" alt="Next"></a></td></tr></table></div><div class="refentry" title="load_headers"><div class="refentry.separator"><hr></div><a name="load_headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_headers &#8212; get client request's headers.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::load_headers</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5500688"></a><h2>Description</h2><p style="width:90%">
+		    Load the headers that come from a client request into the
+		    provided array name, or use headers if no
+		    name is provided.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_env.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="load_response.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">load_env </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> load_response</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/load_response.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/load_response.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/load_response.html (added)
+++ tcl/site/rivet/manual2.1/load_response.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>load_response</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_headers.html" title="load_headers"><link rel="next" href="makeurl.html" title="makeurl"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">load_response</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_headers.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="makeurl.html"><img src="images/next.png" a
 lt="Next"></a></td></tr></table></div><div class="refentry" title="load_response"><div class="refentry.separator"><hr></div><a name="load_response"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_response &#8212; load form variables into an array.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::load_response</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5506736"></a><h2>Description</h2><p style="width:90%">
+		    Load any form variables passed to this page into an
+		    array. If <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> is called without 
+		    arguments the array response is created in 
+		    the scope of the caller. If the variables var1,var2,var3...
+		    having values val1,val2,val3... are passed to the page, the
+		    resulting array will be a collection mapping var1,var2,var3...
+		    to their corresponding values. <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span>
+		    was inspired by the same NeoWebScript procedure in the way
+		    it deals with multiple assignments: if a variable 
+		    is assigned more than once the corresponding array element will be a 
+		    list of the values for the variable. This can be useful in the case 
+		    of forms with checkbox options that are given the same name.
+            This condition is signalled by the presence of an auxiliary array 
+            variable. 
+        </p><p style="width:90%">
+            Example: if a group of checkboxes are associated to the var1
+            variable then <span style="font-family:monospace"><span class="command"><strong>response(var1)</strong></span></span> will store 
+            the list of their values and the array will also have the extra variable 
+            response(__var1) which can be tested with
+            the usual <span style="font-family:monospace"><span class="command"><strong>[info exists response(__var1)]</strong></span></span>
+        </p><p style="width:90%">
+		    Calling <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> several times for the same
+		    array results in adding more values to the array at every call. 
+		    When needed it is left to the caller to empty the array between 
+		    two subsequent calls.  
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_headers.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="makeurl.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">load_headers </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> makeurl</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/makeurl.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/makeurl.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/makeurl.html (added)
+++ tcl/site/rivet/manual2.1/makeurl.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>makeurl</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="load_response.html" title="load_response"><link rel="next" href="no_body.html" title="no_body"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">makeurl</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="load_response.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="no_body.html"><img src="images/next.png" alt="Next"
 ></a></td></tr></table></div><div class="refentry" title="makeurl"><div class="refentry.separator"><hr></div><a name="makeurl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>makeurl &#8212; construct url's based on hostname, port.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::makeurl</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5518976"></a><h2>Description</h2><p style="width:90%">
+		  Create a self referencing URL from a filename. <span style="font-family:monospace"><span class="command"><strong>makeurl</strong></span></span>
+		  can be used in three ways
+		  </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> No argument is passed to the command (returns the current script URL)</li><li class="listitem"> 
+					A relative style path is passed (returns the argument prepended with the
+					current script's URL
+		    </li><li class="listitem"> 
+					An absolute path is passed to the command: (returns the full URL to the
+					resource)
+		    </li></ul></div><p style="width:90%">
+		</p><p style="width:90%">
+		    Example of absolute path: </p><pre style="background:#ccc; margin: 2ex; margin-right: 10%;       padding: 1ex; border: dashed black 1px ; white-space: pre;      font-family: monospace; font-size: 90%;" class="programlisting">::rivet::makeurl /tclp.gif</pre><p style="width:90%"> returns
+		    <code class="computeroutput">http://[hostname]:[port]/tclp.gif</code>.
+		    where hostname and port are the hostname and port of the
+		    server in question. The protocol prefix is inferred from the protocol in the URL referencing the
+		    script.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="load_response.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="no_body.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">load_response </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> no_body</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/no_body.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/no_body.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/no_body.html (added)
+++ tcl/site/rivet/manual2.1/no_body.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>no_body</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="makeurl.html" title="makeurl"><link rel="next" href="parray.html" title="parray"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">no_body</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="makeurl.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="parray.html"><img src="images/next.png" alt="Next"></a></td></tr></tabl
 e></div><div class="refentry" title="no_body"><div class="refentry.separator"><hr></div><a name="no_body"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>no_body &#8212; Prevents Rivet from sending any content.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::no_body</span> </div></div></div><div class="refsect1" title="Description"><a name="idp5527856"></a><h2>Description</h2><p style="width:90%">
+          This command is useful for situations where it is necessary
+          to only return HTTP headers and no actual content.  For
+          instance, when returning a 304 redirect.
+        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="makeurl.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="parray.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">makeurl </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> parray</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/parray.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/parray.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/parray.html (added)
+++ tcl/site/rivet/manual2.1/parray.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>parray</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="no_body.html" title="no_body"><link rel="next" href="parse.html" title="parse"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">parray</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="no_body.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="parse.html"><img src="images/next.png" alt="Next"></a></td></tr></table></d
 iv><div class="refentry" title="parray"><div class="refentry.separator"><hr></div><a name="parray"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parray &#8212; Tcl's <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> with html formatting.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::parray</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">pattern</span>?</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5535360"></a><h2>Description</h2><p style="width
 :90%">
+		    An html version of the standard Tcl
+		    <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> command.  Displays the entire
+		    contents of an array in a sorted, nicely-formatted way.
+		    Mostly used for debugging purposes.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="no_body.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="parse.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">no_body </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> parse</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/parse.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/parse.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/parse.html (added)
+++ tcl/site/rivet/manual2.1/parse.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>parse</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="parray.html" title="parray"><link rel="next" href="raw_post.html" title="raw_post"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">parse</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parray.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="raw_post.html"><img src="images/next.png" alt="Next"></a></td></tr></table
 ></div><div class="refentry" title="parse"><div class="refentry.separator"><hr></div><a name="parse"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parse &#8212; parses a Rivet template file.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::parse</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5541696"></a><h2>Description</h2><p style="width:90%">
+		    Like the Tcl <span style="font-family:monospace"><span class="command"><strong>source</strong></span></span> command, but also
+		    parses for Rivet &lt;?  and ?&gt; processing tags.  Using
+		    this command, you can use one .rvt file from another.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parray.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="raw_post.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">parray </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> raw_post</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/raw_post.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/raw_post.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/raw_post.html (added)
+++ tcl/site/rivet/manual2.1/raw_post.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>raw_post</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="parse.html" title="parse"><link rel="next" href="read_file.html" title="read_file"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">raw_post</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parse.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="read_file.html"><img src="images/next.png" alt="Next"></a></td></tr><
 /table></div><div class="refentry" title="raw_post"><div class="refentry.separator"><hr></div><a name="raw_post"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>raw_post &#8212; get the unmodified body of a POST request sent by the client.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::raw_post</span> </div></div></div><div class="refsect1" title="Description"><a name="idp5547328"></a><h2>Description</h2></div><p style="width:90%">
+		Returns the raw POST data from the request.  If the request was 
+		not a POST or there is no data, then "" - an empty string - is returned.
+	    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parse.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="read_file.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">parse </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> read_file</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/read_file.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/read_file.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/read_file.html (added)
+++ tcl/site/rivet/manual2.1/read_file.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>read_file</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="commands.html" title="Rivet Tcl Commands and Variables"><link rel="prev" href="raw_post.html" title="raw_post"><link rel="next" href="unescape_string.html" title="unescape_string"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">read_file</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="raw_post.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center">Rivet Tcl Commands and Variables</th><td width="20%" align="right"> <a accesskey="n" href="unescape_string.html"><img src="images/next.pn
 g" alt="Next"></a></td></tr></table></div><div class="refentry" title="read_file"><div class="refentry.separator"><hr></div><a name="read_file"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>read_file &#8212; 
+		    Read the entire contents of a file and return it as a string.			
+		</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::rivet::read_file</span>  ?<span style="font-family:monospace; font-weight: bold;">file name</span>?</div></div></div><div class="refsect1" title="Description"><a name="idp5553008"></a><h2>Description</h2><p style="width:90%">
+		    This is a utility command which loads the entire content of
+		    a file and returns it as a result.
+		</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="raw_post.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="commands.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="unescape_string.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">raw_post </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> unescape_string</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/request.html
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/request.html?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/request.html (added)
+++ tcl/site/rivet/manual2.1/request.html Mon Dec  3 01:16:15 2012
@@ -0,0 +1,162 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Apache Child Processes Lifecycle and Request Processing</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="Apache Rivet"><link rel="up" href="index.html" title="Apache Rivet"><link rel="prev" href="installation.html" title="Apache Rivet Installation"><link rel="next" href="directives.html" title="Rivet Apache Directives"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Child Processes Lifecycle and Request Processing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="installation.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a
  accesskey="n" href="directives.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section" title="Apache Child Processes Lifecycle and Request Processing"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="request"></a>Apache Child Processes Lifecycle and Request Processing</h2></div></div></div><div class="simplesect" title="Apache Child Process Lifecycle"><div class="titlepage"><div><div><h3 class="title"><a name="idp4756544"></a>Apache Child Process Lifecycle</h3></div></div></div><p style="width:90%">
+            Apache Rivet delegates to the <a class="ulink" href="" target="_top">Multi-Processing Module (MPM)</a>
+            the task of managing the agents responding to network requests. 
+            An MPM is responsible for creating such agents during the start-up, 
+            and is in charge for terminating existing ones and recreating new 
+            agents when the workload is requiring it. 
+       </p><p style="width:90%">
+            Apache Rivet is currently supporting only the
+            <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/prefork.html" target="_top">prefork</a>
+            MPM which creates full fledged child processes as independent agents 
+            responding to network requests. 
+            Efforts are under way to extend the support to
+            the <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/worker.html" target="_top">worker</a> MPM,
+            a hybrid model where forked child processes in turn create threads as real
+            network agents. If we can achieve this the goal would open the possibility of
+            supporting also the Windows© specific 
+            <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/mpm_winnt.html" target="_top">winnt</a> MPM, 
+            where a single process creates and manages a large number of thread agents.
+       </p><p style="width:90%">
+	    		Configuration parameters about this critical point can be read in the
+	    		<a class="ulink" href="http://httpd.apache.org/docs/2.2/misc/perf-tuning.html" target="_top">Apache
+	    		documentation</a>. 
+	    </p><p style="width:90%">
+	    		There are 4 stages in the lifetime of an Apache webserver that are relevant
+	    		to Rivet: 
+	    </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><h4><a name="idp4806944"></a>Single Process Initialization</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+               Apaches starts up as a single process. During this stage Apache performs 
+               various preliminary tasks including reading and parsing the configuration. 
+					After the configuration has been read Rivet sets up some internal resources
+					and if a Tcl script is set as argument of a <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> directive
+					the script is executed. 
+					Variables, arrays or dictionaries created during the execution of this script 
+					will be preserved and later replicated in the child process intepreters,
+					since the prefork MPM creates new child processes with a fork() system call (which
+               involves only in memory copy of sections of a process address space). Thus
+               <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span>
+		    		is a good place to do global initialization that doesn't involve
+		    		creation of private data. Example of tasks that can be done
+		    		in this context are importing namespace commands and loading packages
+		    		providing code of general interest for every application to
+		    		be served. Also IPC methods can be initialized in this stage.
+	    		</div></li><li class="listitem"><h4><a name="idp4810464"></a>Child Process Initialization</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+		    		Right after the webserver has forked its child processes 
+		    		there is a chance to perform specific initialization of their Tcl interpreters.
+               This is the stage where most likely you want to open I/O channels, 
+               database connections or any other resource that has to be private to an 
+               interpreter. When the option <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is 
+               turned off child processes will have a single interpreter regardless
+		    		the number of virtual hosts configured. The
+               <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> is the configuration script 
+               the child process will run once before getting ready to 
+               serve requests
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+	    			When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is turned on 
+	    			each configured virtual host will have its own slave interpreter which
+	    			can will run the <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> directive as
+	    			initialization script. The	    			
+	    			<span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> has to be
+	    			placed within a &lt;VirtualHost...&gt;...&lt;/VirtualHost ...&gt;
+	    			stanza to associate a script to a specific virtual host initialization.
+	    			This scenario of interpreter separation is extremely useful to
+	    			prevent resource conflicts when different virtual hosts are 
+	    			serving different web applications. 
+	    		</div><div style="margin-bottom:1.5ex ; padding .5ex">
+	    			<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> has no effect to working interpreters
+	    				when <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is set.
+	    			</td></tr></table></div>
+	    		</div></li><li class="listitem"><h4><a name="idp4818768"></a>Request Processing and Content Generation</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+                 After a child has been initialized it's ready to serve requests. 
+                 A child process' lifetime is almost entirely spent in this phase, waiting
+                 for connections and responding to requests. At every request the URL 
+                 goes through filter processing and, in case, rewritten
+                 (mod_rewrite, Alias directives, etc). 
+                 Parameter values encoded in the request are made available to the 
+                 environment and finally the script encoded in the URL is run. 
+                 The developer can tell Rivet if optionally the execution has to
+                 be  preceded by a <span style="font-family:monospace"><span class="command"><strong>BeforeScript</strong></span></span> and followed by an
+                 <span style="font-family:monospace"><span class="command"><strong>AfterScript</strong></span></span>. The real script mod_rivet will
+                 execute is the result of the concatenation of the 
+                 <span style="font-family:monospace"><span class="command"><strong>BeforeScript</strong></span></span>,
+                 the script encoded in the URL and the <span style="font-family:monospace"><span class="command"><strong>AfterScript</strong></span></span>.
+                 Thus the whole ensemble of code that makes up a web application might
+                 be running within the same "before" and "after" scripts to which 
+                 the programmer can devolve tasks common to every 
+                 page of an application.
+            </div></li><li class="listitem"><h4><a name="idp4823616"></a>Child Process Exit</h4><div style="margin-bottom:1.5ex ; padding .5ex">
+                 If no error condition forces the child process to a premature exit, his
+                 life is determined by the Apache configuration parameters. To reduce
+                 the effects of memory leaks in buggy applications the Apache webserver 
+                 forces a child process to exit after a
+                 certain number of requests served. A child process gets replaced 
+                 with a brand new one if the workload of webserver requires so. 
+                 Before the process quits an exit handler can be run
+                 to do some housekeeping, just in case something the could have been 
+                 left behind has to be cleaned up. Like the initialization scripts
+                 <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> too is a "one shot" script.
+             </div><div style="margin-bottom:1.5ex ; padding .5ex">
+                 The Tcl <span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command forces an interpreter to
+                 quit, thus removing the ability of the process embedding it 
+                 to run more Tcl scripts. The child process then is forced
+                 to exit and be replaced by a new one when the workload demands it.
+                 This operation implies the <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> be
+                 run before the interpreter is actually deleted.
+             </div></li></ol></div></div><div class="simplesect" title="Apache Rivet Error and Exception Scripts Directives"><div class="titlepage"><div><div><h3 class="title"><a name="idp4828208"></a>Apache Rivet Error and Exception Scripts Directives</h3></div></div></div><p style="width:90%">
+            Rivet is highly configurable and each of the webserver lifecycle stages 
+            can be exploited to control a web application. 
+            Not only the orderly sequence of stages
+            in a child lifecycle can be controlled with Tcl scripts, but also
+            Tcl error or abnormal conditions taking place during
+            the execution can be caught and handled with specific scripts.
+        </p><p style="width:90%">
+	    	Tcl errors (conditions generated when a command exits with code TCL_ERROR) 
+	    	usually result in the printing of a backtrace of the code fragment
+	    	relevant to the error.
+	    	Rivet can set up scripts to trap these errors and run instead
+	    	an <span style="font-family:monospace"><span class="command"><strong>ErrorScript</strong></span></span> to handle it and conceal details
+	    	that usually have no interest for the end user and it
+	    	may show lines of code that ought to remain private. The ErrorScript
+	    	handler might create a polite error page where things
+	    	can be explained in human readable form, thus enabling the end user
+	    	to provide meaningful feedback information. 
+	    </p><p style="width:90%">
+	    	In other cases an unmanageable conditions might take place in the data and
+	    	this could demand an immediate interruption of the content generation. These abort 
+	    	conditions can be fired by the <a class="xref" href="abort_page.html" title="abort_page">abort_page</a> command, which
+	    	in turn fires the execution of an <span style="font-family:monospace"><span class="command"><strong>AbortScript</strong></span></span> to handle
+	    	the abnormal condition. Starting with Rivet 2.1.0 <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>
+	    	accepts a free form parameter that can be retrieved later with the command 
+	    	<a class="xref" href="abort_code.html" title="abort_code">abort_code</a>
+	    </p></div><div class="simplesect" title="Tcl Namespaces in Rivet and the ::request Namespace"><div class="titlepage"><div><div><h3 class="title"><a name="idp4834448"></a>Tcl Namespaces in Rivet and the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> Namespace</h3></div></div></div><p style="width:90%">
+			With the sole exception of .rvt templates, Rivet runs pure Tcl scripts 
+			at the global namespace. That means that every variable or procedure 
+			created in Tcl scripts resides by default in the 
+			"::" namespace (just like in traditional Tcl scripting) and they
+			are persistent across different requests until explicitly unset or
+			until the interpreter is deleted.
+			You can create your own application namespaces to store data but
+			it is important to remember that subsequent requests will in general be served 
+			by different child processes. Your application can rely on the fact that 
+			certain application data will be in the interpreter, but you shouldn't 
+			assume the state of a transaction spanning several pages 
+			can be stored in this way and be safely kept available to a 
+			specific client. Sessions exist for this purpose and Rivet ships its own 
+			session package with support for most of popular DBMS. Nonetheless 
+			storing data in the global namespace can be useful, even though scoping 
+			data in a namespace is recommended. I/O channels and
+			database connections are examples of information usually specific 
+			to a process for which you don't want to pay the overhead of creating them
+			at every request, probably causing a dramatic loss in the application
+			performance.
+		</p><p style="width:90%">
+			A special role in the interpreter is played by the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> 
+			namespace.	The <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> namespace is deleted and recreated
+			at every request and Rivet templates (.rvt files) are executed within it.
+		</p><p style="width:90%"> 
+			Unless you're fully qualifying variable names outside the <span style="font-family:monospace"><span class="command"><strong>::request</strong></span></span> 
+			namespace, every variable and procedure created in .rvt files is by default placed in
+			it and deleted before any other requests gets processed. It is therefore safe to
+			create variables or object instances in template files and foresake about them: Rivet
+			will take care of cleaning the namespace up and everything created inside the namespace
+			will be destroyed.
+		</p><table id="namespaces"><thead><td>Stage</td><td>Script</td><td>Namespace</td></thead><tbody><tr class="init"><td>Apache Initialization</td><td>ServerInitScript</td><td>::</td></tr><tr class="childinit"><td rowspan="2">Child Initialization</td><td>GlobalInitScript</td><td>::</td></tr><tr class="childinit"><td>ChildInitScript</td><td>::</td></tr><tr class="processing"><td rowspan="6">Request Processing</td><td>BeforeScript</td><td>::</td></tr><tr class="processing"><td>.rvt</td><td>::request</td></tr><tr class="processing"><td>.tcl</td><td>::</td></tr><tr class="processing"><td>AfterScript</td><td>::</td></tr><tr class="processing"><td>AbortScript</td><td>::</td></tr><tr class="processing"><td>AfterEveryScript</td><td>::</td></tr><tr class="processing"><td>Error Handling</td><td>ErrorScript</td><td>::</td></tr><tr class="childexit"><td>Child Termination</td><td>ChildExitScript</td><td>::</td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" 
 summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="installation.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="directives.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Apache Rivet Installation </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Rivet Apache Directives</td></tr></table></div></body></html>

Added: tcl/site/rivet/manual2.1/rivet.css
URL: http://svn.apache.org/viewvc/tcl/site/rivet/manual2.1/rivet.css?rev=1416329&view=auto
==============================================================================
--- tcl/site/rivet/manual2.1/rivet.css (added)
+++ tcl/site/rivet/manual2.1/rivet.css Mon Dec  3 01:16:15 2012
@@ -0,0 +1,345 @@
+BODY
+{
+        font-family: verdana;
+}
+
+DIV.ABSTRACT
+{
+        border: solid 2px;
+        padding-left: 10pt;
+        padding-right: 10pt;
+}
+PRE.SCREEN
+{
+        font-family:monospace;
+        white-space: pre;
+        width: 100%;
+        background-color: #ffffcc;
+        border:solid;
+        color: #000000;
+        border-color: #009999;
+        border-left: solid #009999 2px;
+        border-right: solid #009999 2px;
+        border-top: solid #009999 2px;
+        border-bottom: solid #009999 2px;
+
+        padding-left: 15pt;
+}
+
+PRE.PROGRAMLISTING
+{
+        font-family:monospace;
+        white-space: pre;
+        width: 95%;
+        background-color: #ffffcc;
+        border:solid;
+        color: #000000;
+        border-color: #009999;
+        border-left: solid #009999 2px;
+        border-right: solid #009999 2px;
+        border-top: solid #009999 2px;
+        border-bottom: solid #009999 2px;
+        font-size:  normal;
+        padding-left: 15pt;
+}
+
+H1
+{
+        color: #ffffff;
+        border: solid 3px #a0a0d0;
+        background-color: #606090;
+        font-variant: small-caps;
+        width: 100%;
+}
+
+H1.TITLE
+{
+        color: #ffffff;
+        border: solid 3px #a0a0d0;
+        background-color: #606090;
+        font-variant: small-caps;
+        width: 100%;
+}
+
+.TITLE a {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+.TITLE a:active {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+.TITLE a:visited {
+        color: #ffffff; 
+        text-decoration: none;
+}
+
+H2
+{       
+        COLOR: #ffffff ;
+        font-style: italic;
+        BACKGROUND-color: #a0a0d0;
+        BORDER: solid 3px #606090;
+        PADDING: 1px
+}
+
+TABLE.IMPORTANT
+{
+        font-style:italic;
+        border: solid 2px #ff0000;
+        width: 70%;
+        margin-left: 15%;       
+}
+TABLE.CAUTION
+{
+        font-style:italic;
+        border: ridge 2px #ffff00;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+TABLE.NOTE
+{
+        font-style:italic;
+        border: solid 1px #000000;
+        width: 70%;
+        margin-left: 15%;       
+}
+TABLE.TIP
+{
+        font-style:italic;
+        border: solid 1px #000000;
+        width: 70%;
+        margin-left: 15%;       
+}
+
+TABLE.WARNING
+{
+        font-style:italic;
+        font-weight: bold;
+        border: ridge 4px #ff0000;
+        
+        width: 70%;
+        margin-left: 15%;       
+}
+
+DIV.VARIABLELIST {
+        font-family: sans-serif;
+        font-style: normal;
+        font-weight: normal;
+        padding-left: 20px;
+        font-size: small;
+}
+
+.VARLISTENTRY {
+        font-weight: bold;
+        margin-top: 10px;
+        COLOR: #ffffff ;
+        BACKGROUND-color: #a0a0d0;
+        BORDER: solid 1px #606090;
+        PADDING: 1px
+}
+
+/*
+ * See http://diveintoaccessibility.org/day_26_using_relative_font_sizes.html
+ * for an explanation of the following few commands.
+ * They are really too complicated to explain here in all depth. ;-)
+*/
+
+P {
+        font-size: 12px;
+}
+
+/*/*/A{}
+BODY P {
+
+/*      font-size: x-small; */
+        voice-family: "\"}\"";
+        voice-family: inherit;
+        font-size: normal;
+}
+
+HTML>BODY P {
+        font-size: normal;
+}
+/* */
+
+/* Add an external-link icon to absolute links */
+a[href^="http:"] {
+        background: url(images/remote.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href^="http:"]:hover {
+        background: url(images/remote.png) right center no-repeat;
+}
+
+/* Add a note icon to footnote links */
+a[href^="#FTN"] {
+        background: url(images/qbullet-note.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href^="#FTN"]:hover {
+        background: url(images/qbullet-note.png) right center no-repeat;
+}
+
+/* ...and a back icon to the backlinks in the footnotes themselves */
+a[name^="FTN"] {
+        background: url(images/scrollup.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[name^="FTN"]:hover {
+        background: url(images/scrollup.png) right center no-repeat;
+}
+
+/* Add a download icon to .gz links */
+a[href$=".gz"],a[href$=".tar"],a[href$=".zip"] {
+        background: url(images/disk.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+
+/* Add an Acrobat Reader icon to PDF links */
+a[href$=".pdf"] {
+        background: url(images/acrobat.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+a[href$=".pdf"]:hover {
+        background: url(images/acrobat.png) right center no-repeat;
+}
+
+/* Add a Word icon to RTF links */
+a[href$=".rtf"] {
+        background: url(images/word.png) right center no-repeat;
+        padding-right: 12px;
+}
+
+
+/* ...but not to absolute links in this domain... */
+a[href^="http://www.karakas-online.de"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+a[href^="http://www.karakas-online.de"]:hover {
+        background: transparent;
+}
+
+/* ...or to the translation links on each page */
+DIV.translatelink > a[href^="http:"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+DIV.translatelink > a[href^="http:"]:hover {
+        background: transparent;
+}
+
+/* ...or to any images  */
+DIV.imagelink  a[href^="http:"] {
+        background: transparent;
+        padding-right: 0px;
+}
+
+DIV.imagelink  a[href^="http:"]:hover {
+        background: transparent;
+}
+
+
+P.C2 {
+        COLOR: #ffffff ;
+        BACKGROUND-color: #a0a0d0;
+        BORDER: solid 1px #606090;
+        PADDING: 1px
+}
+
+
+DIV.NAVFOOTER {
+        color: #000000;
+        background-color: #EFEFF8;
+        padding: 5px;
+        margin-top: 10px;
+        width: 100%;
+        border: thin solid #a0a0d0;
+}
+
+DIV.NUKEFOOTER {
+        color: #000000;
+        background-color: #B0E0E6;
+        padding: 5px;
+        margin-top: 10px;
+        width: 100%;
+        border: thin solid #a0a0d0;
+}
+
+DIV.NAVHEADER {
+        color: #000000;
+        background-color: #EFEFF8;
+        padding: 5px;
+        margin-bottom: 10px;
+        width: 100%;
+        border: thin solid #a0a0d0;
+}
+
+DIV.SECT1,DIV.SECT2,DIV.SECT3 {
+        margin-left: 20px;
+}
+
+DIV.EXAMPLE,DIV.TOC {
+        border: thin dotted #70AAE5;
+        padding-left: 10px;
+        padding-right: 10px;
+        color: #000000;
+        background-color: #EFF8F8;
+}
+
+DIV.TOC {
+        margin-left: 20px;
+        margin-right: 20px;
+        width: 95%;
+}
+
+UL  {
+     /*    list-style: url("images/tux-bullet.png") disc; */
+    }
+
+#namespaces {
+	border: 1px solid black;
+}
+
+#namespaces td {
+	padding:	0.2em 1em;
+	/* font-weight: bold; */
+}
+
+#namespaces thead {
+	background-color: #aaf;
+}
+
+#namespaces tr.init {
+	background-color: #e88;	
+}
+
+#namespaces tr.childinit {
+	background-color: #eee;		
+}
+
+#namespaces tr.processing {
+	background-color: #e88;	
+}	
+#namespaces tr.childexit {
+	background-color: #eee;		
+}
+
+.note td {
+    font-size: small;
+}
+
+li.listitem {
+    font-size: small;
+}



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