Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html,v
diff -u -r1.46 -r1.47
--- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html	11 Dec 2010 23:36:32 -0000	1.46
+++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html	31 Jul 2011 23:11:45 -0000	1.47
@@ -1,83 +1,83 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'>
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ACS File Naming and Formatting Standards</title><link rel="stylesheet" type="text/css" href="openacs.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="next" href="eng-standards-plsql.html" title="PL/SQL Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr></table><hr></div><div class="sect1" title="ACS File Naming and Formatting Standards"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-filenaming"></a>ACS File Naming and Formatting Standards</h2></div></div></div><div class="authorblurb"><p>By Michael Yoon and Aurelius Prochazka</p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ACS File Naming and Formatting Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 10. Engineering Standards"><link rel="previous" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="next" href="variables.html" title="Variables"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="variables.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-filenaming"></a>ACS File Naming and Formatting Standards</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Yoon and Aurelius Prochazka</p>
           OpenACS docs are written by the named authors, and may be edited
           by OpenACS documentation staff.
         </div><p>
 To ensure consistency (and its collateral benefit, maintainability),
 we define and adhere to standards in the following areas:
-</p><div class="sect2" title="File Nomenclature"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-nomenclature"></a>File Nomenclature</h3></div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-nomenclature"></a>File Nomenclature</h3></div></div><div></div></div><p>
 Usually we organize our files so that they mainly serve one of the following three purposes:
-</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> displaying objects and their properties</p></li><li class="listitem"><p> manipulating or acting on objects in some way (by creating, editing, linking, etc)</p></li><li class="listitem"><p> housing procedures, packages, data models and other prerequisite code
+</p><div class="itemizedlist"><ul type="disc"><li><p> displaying objects and their properties</p></li><li><p> manipulating or acting on objects in some way (by creating, editing, linking, etc)</p></li><li><p> housing procedures, packages, data models and other prerequisite code
 Essentially, we want our files named in a fashion that reflects their purpose.</p></li></ul></div><p>
 
-Under the page root (and the template root if using the <a class="ulink" href="style" target="_top">Style package</a>):
-</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>For naming files that enable a specific action on an object, use this format:</p><div class="blockquote"><blockquote class="blockquote"><p>
-<span class="emphasis"><em><code class="computeroutput">object-verb.extension</code></em></span>
+Under the page root (and the template root if using the <a href="style" target="_top">Style package</a>):
+</p><div class="itemizedlist"><ul type="disc"><li><p>For naming files that enable a specific action on an object, use this format:</p><div class="blockquote"><blockquote class="blockquote"><p>
+<span class="emphasis"><em><tt class="computeroutput">object-verb.extension</tt></em></span>
 </p></blockquote></div><p>
 For example, the page to erase a user's portrait from the database is
-<code class="computeroutput">/admin/users/portrait-erase.tcl</code>.
-</p></li><li class="listitem"><p>However, modules typically deal with only one primary type of object -
+<tt class="computeroutput">/admin/users/portrait-erase.tcl</tt>.
+</p></li><li><p>However, modules typically deal with only one primary type of object -
 e.g.,
 the Bookmarks module deals mainly with bookmarks - and so action-type files in modules don't need to be specified by the object they act on.  Example: the user pages
-for the Bookmarks module live in the <code class="computeroutput">/bookmarks/</code>
-directory, and so there is no need to name the bookmark editing page with a redundant url: <code class="computeroutput">/bookmarks/bookmark-edit.tcl</code>. Instead, we omit the object type, and use this convention:
+for the Bookmarks module live in the <tt class="computeroutput">/bookmarks/</tt>
+directory, and so there is no need to name the bookmark editing page with a redundant url: <tt class="computeroutput">/bookmarks/bookmark-edit.tcl</tt>. Instead, we omit the object type, and use this convention:
 </p><div class="blockquote"><blockquote class="blockquote"><p>
-<span class="emphasis"><em><code class="computeroutput">verb.extension</code></em></span>
+<span class="emphasis"><em><tt class="computeroutput">verb.extension</tt></em></span>
 </p></blockquote></div><p>
-Thus, the page to edit a bookmark is <code class="computeroutput">/bookmarks/edit.tcl</code>.
-</p></li><li class="listitem"><p>For naming files that display the properties of a primary object - such as the bookmark object within the bookmark module -  use this convention:</p><div class="blockquote"><blockquote class="blockquote"><p>
-<code class="computeroutput">one.</code><span class="emphasis"><em><code class="computeroutput">extension</code></em></span>
+Thus, the page to edit a bookmark is <tt class="computeroutput">/bookmarks/edit.tcl</tt>.
+</p></li><li><p>For naming files that display the properties of a primary object - such as the bookmark object within the bookmark module -  use this convention:</p><div class="blockquote"><blockquote class="blockquote"><p>
+<tt class="computeroutput">one.</tt><span class="emphasis"><em><tt class="computeroutput">extension</tt></em></span>
 </p></blockquote></div><p>
 For example, the page to view one bookmark is
-<code class="computeroutput">/bookmarks/one.tcl</code>.  Note that no verb is necessary for display-type files.
-</p></li><li class="listitem"><p>Otherwise, if the object to be displayed is not the primary feature of a module,  simply omit the verb and use the object name:</p><div class="blockquote"><blockquote class="blockquote"><p>
-<span class="emphasis"><em><code class="computeroutput">object.extension</code></em></span>
+<tt class="computeroutput">/bookmarks/one.tcl</tt>.  Note that no verb is necessary for display-type files.
+</p></li><li><p>Otherwise, if the object to be displayed is not the primary feature of a module,  simply omit the verb and use the object name:</p><div class="blockquote"><blockquote class="blockquote"><p>
+<span class="emphasis"><em><tt class="computeroutput">object.extension</tt></em></span>
 </p></blockquote></div><p>
 For example, the page to view the properties of an
 ecommerce product is
-<code class="computeroutput">/ecommerce/product.tcl</code>.
-</p></li><li class="listitem"><p>For naming files in a page flow, use the convention:</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p><span class="emphasis"><em><code class="computeroutput">foobar.extension</code></em></span> (Step 1)</p></li><li class="listitem"><p><span class="emphasis"><em><code class="computeroutput">foobar-2.extension</code></em></span> (Step 2)</p></li><li class="listitem"><p>...</p></li><li class="listitem"><p><span class="emphasis"><em><code class="computeroutput">foobar-N.extension</code></em></span> (Step N)</p></li></ul></div><p>
-where <span class="emphasis"><em><code class="computeroutput">foobar</code></em></span> is determined by the above
+<tt class="computeroutput">/ecommerce/product.tcl</tt>.
+</p></li><li><p>For naming files in a page flow, use the convention:</p><div class="itemizedlist"><ul type="circle"><li><p><span class="emphasis"><em><tt class="computeroutput">foobar.extension</tt></em></span> (Step 1)</p></li><li><p><span class="emphasis"><em><tt class="computeroutput">foobar-2.extension</tt></em></span> (Step 2)</p></li><li><p>...</p></li><li><p><span class="emphasis"><em><tt class="computeroutput">foobar-N.extension</tt></em></span> (Step N)</p></li></ul></div><p>
+where <span class="emphasis"><em><tt class="computeroutput">foobar</tt></em></span> is determined by the above
 rules.
 </p><p>
 Typically, we use a three-step page flow when taking user information:
-</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Present a form to the user</p></li><li class="listitem"><p>Present a confirmation page to the user</p></li><li class="listitem"><p>Perform the database transaction, then redirect</p></li></ol></div></li><li class="listitem"><p>Put data model files in <code class="computeroutput">/www/doc/sql</code>, and name them
+</p><div class="orderedlist"><ol type="1"><li><p>Present a form to the user</p></li><li><p>Present a confirmation page to the user</p></li><li><p>Perform the database transaction, then redirect</p></li></ol></div></li><li><p>Put data model files in <tt class="computeroutput">/www/doc/sql</tt>, and name them
 for the modules towards which they are used:
 </p><div class="blockquote"><blockquote class="blockquote"><p>
-<span class="emphasis"><em><code class="computeroutput">module</code></em></span><code class="computeroutput">.sql</code>
+<span class="emphasis"><em><tt class="computeroutput">module</tt></em></span><tt class="computeroutput">.sql</tt>
 </p></blockquote></div></li></ul></div><p>
 In the Tcl library directory:
-</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>For files that contain module-specific procedures, use the
+</p><div class="itemizedlist"><ul type="disc"><li><p>For files that contain module-specific procedures, use the
 convention:</p><div class="blockquote"><blockquote class="blockquote"><p>
-<span class="emphasis"><em><code class="computeroutput">module</code></em></span><code class="computeroutput">-procs.tcl</code>
-</p></blockquote></div></li><li class="listitem"><p>For files that contain procedures that are part of the core ACS,
+<span class="emphasis"><em><tt class="computeroutput">module</tt></em></span><tt class="computeroutput">-procs.tcl</tt>
+</p></blockquote></div></li><li><p>For files that contain procedures that are part of the core ACS,
 use the convention:</p><div class="blockquote"><blockquote class="blockquote"><p>
-<code class="computeroutput">ad-</code><span class="emphasis"><em>description</em></span><code class="computeroutput">-procs.tcl</code>
-</p></blockquote></div></li></ul></div></div><div class="sect2" title="URLs"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-urls"></a>URLs</h3></div></div></div><p>
+<tt class="computeroutput">ad-</tt><span class="emphasis"><em>description</em></span><tt class="computeroutput">-procs.tcl</tt>
+</p></blockquote></div></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-urls"></a>URLs</h3></div></div><div></div></div><p>
 File names also appear <span class="emphasis"><em>within</em></span> pages, as linked URLs and
-form targets. When they do, always use <a class="ulink" href="abstract-url" target="_top">abstract
-URLs</a> (e.g., <code class="computeroutput">user-delete</code> instead of
-<code class="computeroutput">user-delete.tcl</code>), because they enhance maintainability.
+form targets. When they do, always use <a href="abstract-url" target="_top">abstract
+URLs</a> (e.g., <tt class="computeroutput">user-delete</tt> instead of
+<tt class="computeroutput">user-delete.tcl</tt>), because they enhance maintainability.
 </p><p>
 Similarly, when linking to the index page of a directory, do not
-explicitly name the index file (<code class="computeroutput">index.tcl</code>,
-<code class="computeroutput">index.adp</code>, <code class="computeroutput">index.html</code>, etc.). Instead, use
+explicitly name the index file (<tt class="computeroutput">index.tcl</tt>,
+<tt class="computeroutput">index.adp</tt>, <tt class="computeroutput">index.html</tt>, etc.). Instead, use
 just the directory name, for both relative links
-(<code class="computeroutput">subdir/</code>) and absolute links
-(<code class="computeroutput">/top-level-dir/</code>). If linking to the directory in which
-the page is located, use the empty string (<code class="computeroutput">""</code>), which
+(<tt class="computeroutput">subdir/</tt>) and absolute links
+(<tt class="computeroutput">/top-level-dir/</tt>). If linking to the directory in which
+the page is located, use the empty string (<tt class="computeroutput">&quot;&quot;</tt>), which
 browsers will resolve correctly.
-</p></div><div class="sect2" title="File Headers and Page Input"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-headers"></a>File Headers and Page Input</h3></div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-headers"></a>File Headers and Page Input</h3></div></div><div></div></div><p>
 Include the appropriate standard header in all scripts.  The first
 line should be a comment specifying the file path relative to the
 ACS root directory.  e.g.
-</p><div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput">
+</p><div class="blockquote"><blockquote class="blockquote"><p><tt class="computeroutput">
 # /www/index.tcl
-</code></p></blockquote></div><p>
+</tt></p></blockquote></div><p>
 or
-</p><div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput">
+</p><div class="blockquote"><blockquote class="blockquote"><p><tt class="computeroutput">
 # /tcl/module-defs.tcl
-</code></p></blockquote></div><p>
+</tt></p></blockquote></div><p>
 For static content files (html or adp), include a CVS identification tag as a
 comment at the top of the file, e.g.  
 </p><pre class="programlisting">
@@ -95,7 +95,7 @@
 This can be at the top or bottom of the file.
 </p><div>Using ad_page_contract</div><p>
 For non-library Tcl files (those not in the private Tcl directory),
-use <a class="link" href="tcl-doc.html#tcl-doc-ad-page-contract" title="ad_page_contract"><code class="computeroutput">ad_page_contract</code></a>
+use <a href="tcl-doc.html#tcl-doc-ad-page-contract" title="ad_page_contract"><tt class="computeroutput">ad_page_contract</tt></a>
 after the file path comment (this supersedes set_the_usual_form_variables and
 ad_return_complaint).  Here is an example of using
 ad_page_contract, which serves both documentation and page input
@@ -119,32 +119,32 @@
     {persistent_cookie_p f}
 }
 </pre><p>
-Salient features of <code class="computeroutput">ad_page_contract</code>:
-</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>A mandatory documentation string is the first argument. This has
-the standard form with javadoc-style @author, @cvs-id, etc, and should contain a short description of the recieved variables and any necessary explanations. </p></li><li class="listitem"><p>The second argument specifies the page
+Salient features of <tt class="computeroutput">ad_page_contract</tt>:
+</p><div class="itemizedlist"><ul type="disc"><li><p>A mandatory documentation string is the first argument. This has
+the standard form with javadoc-style @author, @cvs-id, etc, and should contain a short description of the recieved variables and any necessary explanations. </p></li><li><p>The second argument specifies the page
 inputs. The syntax for switches/flags (e.g. multiple-list, array,
 etc.) uses a colon (:) followed by any number of flags
 separated by commas (,),
-e.g. <code class="computeroutput">foo:integer,multiple,trim</code>. In particular, <code class="computeroutput">multiple</code> and
-<code class="computeroutput">array</code> are the flags that correspond to the old
-<code class="computeroutput">ad_page_variables</code> flags.</p></li><li class="listitem"><p>There are new flags: <code class="computeroutput">trim</code>, <code class="computeroutput">notnull</code> and
-<code class="computeroutput">optional</code>. They do what you'd expect; values will not be
+e.g. <tt class="computeroutput">foo:integer,multiple,trim</tt>. In particular, <tt class="computeroutput">multiple</tt> and
+<tt class="computeroutput">array</tt> are the flags that correspond to the old
+<tt class="computeroutput">ad_page_variables</tt> flags.</p></li><li><p>There are new flags: <tt class="computeroutput">trim</tt>, <tt class="computeroutput">notnull</tt> and
+<tt class="computeroutput">optional</tt>. They do what you'd expect; values will not be
 trimmed, unless you mark them for it; empty strings are valid input, unless
 you specify notnull; and a specified variable will be considered required,
-unless you declare it optional.</p></li><li class="listitem"><p><code class="computeroutput">ad_page_contract</code> can do validation for you: the flags <code class="computeroutput">integer</code>
-and <code class="computeroutput">sql_identifier</code> will make sure that the values
-supplied are integers/sql_identifiers. The <code class="computeroutput">integer</code> flag
+unless you declare it optional.</p></li><li><p><tt class="computeroutput">ad_page_contract</tt> can do validation for you: the flags <tt class="computeroutput">integer</tt>
+and <tt class="computeroutput">sql_identifier</tt> will make sure that the values
+supplied are integers/sql_identifiers. The <tt class="computeroutput">integer</tt> flag
 will also trim leading zeros. Note that unless you specify
-<code class="computeroutput">notnull</code>, both will accept the empty string.
-</p></li><li class="listitem"><p>Note that <code class="computeroutput">ad_page_contract</code> does not generate
+<tt class="computeroutput">notnull</tt>, both will accept the empty string.
+</p></li><li><p>Note that <tt class="computeroutput">ad_page_contract</tt> does not generate
 QQvariables, which were automatically created by ad_page_variables and
 set_the_usual_form_variables. The use of bind variables makes such
 previous variable syntax obsolete.
 </p></li></ul></div><div>Using ad_library</div><p>
-For shared Tcl library files, use <a class="link" href="tcl-doc.html#tcl-doc-ad-library" title="ad_library"><code class="computeroutput">ad_library</code></a> after
+For shared Tcl library files, use <a href="tcl-doc.html#tcl-doc-ad-library" title="ad_library"><tt class="computeroutput">ad_library</tt></a> after
 the file path comment. Its only argument is a doc_string in the
 standard (javadoc-style) format, like
-<code class="computeroutput">ad_page_contract</code>. Don't forget to put the @cvs-id in
+<tt class="computeroutput">ad_page_contract</tt>. Don't forget to put the @cvs-id in
 there.  Here is an example of using ad_library:
 </p><pre class="programlisting">
 # tcl/wp-defs.tcl
@@ -165,56 +165,56 @@
 -- <span class="emphasis"><em>author</em></span>
 -- <span class="emphasis"><em>created</em></span>
 --
--- <a class="ulink" href="http://www.loria.fr/~molli/cvs/doc/cvs_12.html#SEC93" target="_top">$Id$</a>
+-- <a href="http://www.loria.fr/~molli/cvs/doc/cvs_12.html#SEC93" target="_top">$Id$</a>
 </pre><p>
-Of course, replace "<code class="computeroutput">--</code>" with the comment delimiter
+Of course, replace &quot;<tt class="computeroutput">--</tt>&quot; with the comment delimiter
 appropriate for the language in which you are programming.
-</p></div><div class="sect2" title="Page Construction"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-pages"></a>Page Construction</h3></div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-pages"></a>Page Construction</h3></div></div><div></div></div><p>
 Construct the page as one Tcl variable (name it
-<code class="computeroutput">page_content</code>), and then send it back to the browser with
-one call to <code class="computeroutput">doc_return</code>, which will call
+<tt class="computeroutput">page_content</tt>), and then send it back to the browser with
+one call to <tt class="computeroutput">doc_return</tt>, which will call
 db_release_unused_handles prior to executing ns_return, effectively
 combining the two operations.
 </p><p>
 For example:
 </p><pre class="programlisting">
-set page_content "[ad_header "<span class="emphasis"><em>Page Title</em></span>"]
+set page_content &quot;[ad_header &quot;<span class="emphasis"><em>Page Title</em></span>&quot;]
 
 &lt;h2&gt;<span class="emphasis"><em>Page Title</em></span>&lt;/h2&gt;
 
 &lt;hr&gt;
 
 &lt;ul&gt;
-"
+&quot;
 
 db_foreach get_row_info {
     select row_information 
     from bar
 } {
-    append page_content "&lt;li&gt;<span class="emphasis"><em>row_information</em></span>\n"
+    append page_content &quot;&lt;li&gt;<span class="emphasis"><em>row_information</em></span>\n&quot;
 }
 
-append page_content "&lt;/ul&gt;
+append page_content &quot;&lt;/ul&gt;
 
-[ad_footer]"
+[ad_footer]&quot;
 
 doc_return 200 text/html $page_content
 </pre><p>
-The old convention was to call <code class="computeroutput">ReturnHeaders</code> and
-then <code class="computeroutput">ns_write</code> for each distinct chunk of the page. This
+The old convention was to call <tt class="computeroutput">ReturnHeaders</tt> and
+then <tt class="computeroutput">ns_write</tt> for each distinct chunk of the page. This
 approach has the disadvantage of tying up a scarce and valuable
 resource (namely, a database handle) for an unpredictable amount of
 time while sending packets back to the browser, and so it should be
 avoided in most cases. (On the other hand, for a page that requires an
 expensive database query, it's better to call
 
-<code class="computeroutput">ad_return_top_of_page</code>
+<tt class="computeroutput">ad_return_top_of_page</tt>
 
 first, so that the user is not left to stare at an empty page while
 the query is running.)
 </p><p>
 Local procedures (i.e., procedures defined and used only within one
-page) should be prefixed with "<span class="emphasis"><em><code class="computeroutput">module_</code></em></span>" and
+page) should be prefixed with &quot;<span class="emphasis"><em><tt class="computeroutput">module_</tt></em></span>&quot; and
 should be used rarely, only when they are exceedingly useful.
 </p><p>
 All files that prepare HTML to display should end with [ad_footer] or
@@ -225,7 +225,7 @@
 edit ad_header (which quite possibly can start a &lt;table&gt;) and
 ad_footer (which may need to end the table started in ad_footer) to
 customize the look and feel of the entire site.
-</p></div><div class="sect2" title="Tcl Library Files"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-tcllib"></a>Tcl Library Files</h3></div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-filenaming-tcllib"></a>Tcl Library Files</h3></div></div><div></div></div><p>
 Further standards for Tcl library files are under discussion; we plan to 
 include naming conventions for procs.
-</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr><tr><td width="40%" align="left">Constraint naming standard </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> PL/SQL Standards</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/eng-standards-filenaming.html#comments">View comments on this page at openacs.org</a></center></body></html>
+</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="variables.html">Next</a></td></tr><tr><td width="40%" align="left">Constraint naming standard </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> Variables</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/eng-standards-filenaming.html#comments">View comments on this page at openacs.org</a></center></body></html>