You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by rb...@locus.apache.org on 2000/12/04 19:14:55 UTC

cvs commit: apr-site/docs APR_File_handling.html APR_I18N_translation_library.html APR_MD5_Library.html APR_MMAP_library.html APR_Network_library.html APR_Process_library.html APR_Random_Functions.html APR_Table_library.html APR_Thread_library.html APR_Time_library.html APR_UUID_Handling.html APR_command_arguments.html APR_general-purpose_library.html APR_lock_library.html APR_memory_allocation.html APR_portability_Routines.html APR_strings_library.html Dynamic_Object_Handling.html Error_Codes.html Fnmatch_functions.html General.html Hash_Tables.html Shared_Memory_library.html master.html packages.html to-do.html

rbb         00/12/04 10:14:51

  Modified:    docs     APR_File_handling.html
                        APR_I18N_translation_library.html
                        APR_MD5_Library.html APR_MMAP_library.html
                        APR_Network_library.html APR_Process_library.html
                        APR_Random_Functions.html APR_Table_library.html
                        APR_Thread_library.html APR_Time_library.html
                        APR_UUID_Handling.html APR_command_arguments.html
                        APR_general-purpose_library.html
                        APR_lock_library.html APR_memory_allocation.html
                        APR_portability_Routines.html
                        APR_strings_library.html
                        Dynamic_Object_Handling.html Error_Codes.html
                        Fnmatch_functions.html General.html
                        Hash_Tables.html Shared_Memory_library.html
                        master.html packages.html to-do.html
  Log:
  Update the APR docs.
  
  Revision  Changes    Path
  1.3       +299 -33   apr-site/docs/APR_File_handling.html
  
  Index: APR_File_handling.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_File_handling.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_File_handling.html	2000/11/18 03:40:40	1.2
  +++ APR_File_handling.html	2000/12/04 18:13:58	1.3
  @@ -134,6 +134,82 @@
   <p><dl>
   </dl></dl>
   </blockquote>
  +<h2>Global Variables</h2>
  +  <blockquote>
  +
  +  <a name="apr_canon_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_canon_t ;</b>
  +<dd>
  +Structure for determining canonical filenames.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_dev_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_dev_t ;</b>
  +<dd>
  +Structure for determining the device the file is on.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_dir_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_dir_t ;</b>
  +<dd>
  +Structure for referencing directories.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_file_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_file_t ;</b>
  +<dd>
  +Structure for referencing files.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_fileperms_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_fileperms_t ;</b>
  +<dd>
  +Structure for determining file permissions.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_gid_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_gid_t ;</b>
  +<dd>
  +Structure for determining the group that owns the file.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_ino_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_ino_t ;</b>
  +<dd>
  +Structure for determining the inode of the file.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_uid_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_uid_t ;</b>
  +<dd>
  +Structure for determining file owner.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="time"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>                                           or thread can hold a shared lock
  +                                           at any given time;</b>
  +<dd>
  +File lock types/flags
  +<p><dl>
  +</dl></dl>
  +</blockquote>
   <h2>Global Functions</h2>
     <blockquote>
   
  @@ -167,6 +243,22 @@
   </table>
     </dl></dl>
   
  +<a name="apr_count_canonical_elements"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>int apr_count_canonical_elements(const apr_canon_t *trusted_name);</b>
  +  <dd>
  +Count the number of elements in a canonical name.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	trusted_name</th><td>An already canonicalized file path</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>The number of elements in the name<p></dl></dl>
  +
   <a name="apr_create_namedpipe"></a>
   <dl>
     <dt>
  @@ -358,7 +450,8 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_full_read(apr_file_t *thefile, void *buf, apr_size_t nbytes, apr_size_t *bytes_read);</b>
     <dd>
  -Read data from the specified file.
  +Read data from the specified file, ensuring that the buffer is filled
  +before returning.
   <p><img src="../images//tip.gif"> apr_read will read up to the specified number of bytes, but never 
        more.  If there isn't enough data to fill that number of bytes, 
        then the process/thread will block until it is available or EOF 
  @@ -390,7 +483,8 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_full_write(apr_file_t *thefile, const void *buf, apr_size_t nbytes, apr_size_t *bytes_written);</b>
     <dd>
  -Write data to the specified file.
  +Write data to the specified file, ensuring that all of the data is
  +written before returning.
   <p><img src="../images//tip.gif"> apr_write will write up to the specified number of bytes, but never 
        more.  If the OS cannot write that many bytes, the process/thread 
        will block until they can be written. Exceptional error such as 
  @@ -415,6 +509,80 @@
   </table>
     </dl></dl>
   
  +<a name="apr_get_canonical_elements"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_canonical_elements(char **path_elements, const apr_canon_t *trusted_name, int firstelement, int lastelement, apr_pool_t *pool);</b>
  +  <dd>
  +Get the requested elements of a canonical name in a character string
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	path_elements</th><td>A location to store the path elements.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	trusted_name</th><td>An already canonicalized file path
  +</td></tr>
  +<tr valign=top><th align=right>
  +	firstelement</th><td>The numerical position of the element to start the 
  +       length at.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	lastelement</th><td>The numerical position of the element to end the
  +       length at.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	pool</th><td>The pool to allocate the path out of.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="apr_get_canonical_elements_length"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>int apr_get_canonical_elements_length(const apr_canon_t *trusted_name, int firstelement, int lastelement);</b>
  +  <dd>
  +Query the length of some elements of the canonical name
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	trusted_name</th><td>An already canonicalized file path
  +</td></tr>
  +<tr valign=top><th align=right>
  +	firstelement</th><td>The numerical position of the element to start the 
  +       length at.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	lastelement</th><td>The numerical position of the element to end the
  +       length at.</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>The length of requested elements.<p></dl></dl>
  +
  +<a name="apr_get_canonical_name"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_canonical_name(char **path, const apr_canon_t *trusted_name, apr_pool_t *pool);</b>
  +  <dd>
  +Get the canonical path in a character string
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	path</th><td>A location to store the canocical name
  +</td></tr>
  +<tr valign=top><th align=right>
  +	trusted_name</th><td>An already canonicalized file path
  +</td></tr>
  +<tr valign=top><th align=right>
  +	pool</th><td>The pool to allocate the path out of.</td></tr>
  +</table>
  +  </dl></dl>
  +
   <a name="apr_get_dir_filename"></a>
   <dl>
     <dt>
  @@ -531,32 +699,76 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_is_absolute(apr_canon_t **path);</b>
     <dd>
  -Returns APR_SUCCESS if canon_name is absolute.  Do not trust
  - !apr_is_absolute to determine if the path is relative.  Also,
  - test apr_is_virtualroot to avoid non-filesystem pseudo roots.
  +Determine if a canonical name is absolute.
  +<p><img src="../images//warning.gif" align=left> Do not trust !apr_is_absolute to determine if the path is 
  +         relative.  Also, test apr_is_virtualroot to avoid non-filesystem 
  +         pseudo roots.
   <p><dl>
  -</dl></dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	path</th><td>The canonical name to check</td></tr>
  +</table>
  +  </dl></dl>
   
   <a name="apr_is_relative"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_is_relative(apr_canon_t **path);</b>
     <dd>
  -Returns APR_SUCCESS if canon_name is absolute.  Do not trust
  - !apr_is_relative to determine if the path is absolute.
  +Determine if a canonical name is relative
  +<p><img src="../images//warning.gif" align=left> Do not trust !apr_is_relative to determine if the path is absolute
   <p><dl>
  -</dl></dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	path</th><td>The canonical name to check</td></tr>
  +</table>
  +  </dl></dl>
   
   <a name="apr_is_virtualroot"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_is_virtualroot(apr_canon_t **path, int elements);</b>
     <dd>
  -Returns APR_SUCCESS if the elements 0..elements resolves to a
  - platform's non-physical root, e.g. the //machine/ name that 
  - isn't an adaquately complete root for UNC paths.
  +Determine if the elements 0..elements resolves to a platform's non-physical 
  +root, e.g. the //machine/ name that isn't an adaquately complete root for 
  +UNC paths.
   <p><dl>
  -</dl></dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	path</th><td>The canonical name to check
  +</td></tr>
  +<tr valign=top><th align=right>
  +	elements</th><td>The number of elements to check.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="apr_lock_file"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_lock_file(apr_file_t *thefile, int type);</b>
  +  <dd>
  +file (un)locking functions. Establish a lock on the specified, open file. The lock may be advisory
  +or mandatory, at the discretion of the platform. The lock applies to
  +the file as a whole, rather than a specific range. Locks are established
  +on a per-thread/process basis; a second lock by the same thread will not
  +block.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	thefile</th><td>The file to lock.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	type</th><td>The type of lock to establish on the file.</td></tr>
  +</table>
  +  </dl></dl>
   
   <a name="apr_lstat"></a>
   <dl>
  @@ -587,27 +799,15 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_make_canonical_name(apr_canon_t **new_name, const apr_canon_t *trusted_name, const char *child_name, int options, apr_pool_t *pool);</b>
     <dd>
  -Require the trusted_name+child_name result is an absolute product 
  -or fail with error for the make and merge canonical name functions.
  - Allow that the trusted_name+child_name result may be a relative result
  -for the make and merge canonical name functions.
  - Require the trusted_name+child_name result is not an absolute path
  -or fail with error for the make and merge canonical name functions.
  - Require the trusted_name+child_name result is a child of trusted_name 
  -or fail with error for the make and merge canonical name functions.
  - If file path elements exist (can stat) then fold the element's name 
  -to lowercase for the make and merge canonical name functions.
  - If file path elements exist (can readdir) then fold the element's name 
  -to the true case lowercase for the make and merge canonical name functions.
  - Canonicalize the path and name.
  -<p><img src="../images//tip.gif"> A canonical name is a name stipped of embedded backrefs "../", 
  +Canonicalize the path and name.
  +<p><img src="../images//tip.gif"> A canonical name is a name stripped of embedded backrefs "../", 
   thisrefs "./", successive slashes (//), or any other ambigious file
   name element.  Absolute canonical names referencing the same file must 
   strcmp() identically, excluding symlinks or inconsistent use of the
   APR_CANON_LOWERCASE or APR_CANON_TRUECASE options.<p>
   If the name does not exist, or resolves to a relative name the given case
  -is preserved.  Insignificant elements are eliminated.  For example, on Win32 this 
  -function removes trailing dots (which are allowed, but not stored in 
  +is preserved.  Insignificant elements are eliminated.  For example, on Win32 
  +this function removes trailing dots (which are allowed, but not stored in 
   the file system), and "/../" under Unix is resolved to "/".  The relative 
   canonical name may contain leading backrefs "../", but will never contain 
   any other prohibited element.
  @@ -625,10 +825,31 @@
   	child_name</th><td>An absolute path or path relative to trusted_name.
   </td></tr>
   <tr valign=top><th align=right>
  -	options</th><td>See the APR_CANON_ bit flags documentation for options
  +	options</th><td>Bit-wise of:
  +<PRE>
  +  APR_CANON_ONLY_ABSOLUTE     Require the trusted_name+child_name result is 
  +                              an absolute product or fail with error for the 
  +                              make and merge canonical name functions.
  +  APR_CANON_ALLOW_RELATIVE    Allow that the trusted_name+child_name result 
  +                              may be a relative result for the make and 
  +                              merge canonical name functions.
  +  APR_CANON_ONLY_RELATIVE     Require the trusted_name+child_name result is 
  +                              not an absolute path or fail with error for 
  +                              the make and merge canonical name functions.
  +  APR_CANON_CHILD_OF_TRUSTED  Require the trusted_name+child_name result is 
  +                              a child of trusted_name or fail with error for
  +                              the make and merge canonical name functions.
  +  APR_CANON_LOWERCASE         If file path elements exist (can stat) then 
  +                              fold the element's name to lowercase for the 
  +                              make and merge canonical name functions.
  +  APR_CANON_TRUECASE          If file path elements exist (can readdir) then
  +                              fold the element's name to the true case 
  +                              lowercase for the make and merge canonical 
  +                              name functions.
  +</PRE>
   </td></tr>
   <tr valign=top><th align=right>
  -	pool</th><td>The context in which to allocate the new_name apr_canon_t</td></tr>
  +	pool</th><td>The pool in which to allocate the new_name apr_canon_t</td></tr>
   </table>
     </dl></dl>
   
  @@ -653,6 +874,35 @@
   </table>
     </dl></dl>
   
  +<a name="apr_merge_canonical_name"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_merge_canonical_name(apr_canon_t **new_name, const apr_canon_t *trusted_name, const apr_canon_t *child_name, int options, apr_pool_t *pool);</b>
  +  <dd>
  +Merge two canonical names into a single canonical name.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	new_name</th><td>The newly allocated canonicalized trusted+child name
  +</td></tr>
  +<tr valign=top><th align=right>
  +	trusted_name</th><td>Already canonical parent path; may be NULL.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	child_name</th><td>An already canonical absolute path or path relative to 
  +                  trusted_name.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	options</th><td>See apr_make_canonical_name for options
  +</td></tr>
  +<tr valign=top><th align=right>
  +	pool</th><td>The pool to allocate the new_name out of.</td></tr>
  +</table>
  +  <dt><b>See Also</b><dd>
  +  <a href="#apr_make_canonical_name">apr_make_canonical_name</a><p></dl></dl>
  +
   <a name="apr_open"></a>
   <dl>
     <dt>
  @@ -1023,6 +1273,21 @@
   </table>
     </dl></dl>
   
  +<a name="apr_unlock_file"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_unlock_file(apr_file_t *thefile);</b>
  +  <dd>
  +Remove any outstanding locks on the file.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	thefile</th><td>The file to unlock.</td></tr>
  +</table>
  +  </dl></dl>
  +
   <a name="apr_write"></a>
   <dl>
     <dt>
  @@ -1046,7 +1311,8 @@
   	buf</th><td>The buffer which contains the data.
   </td></tr>
   <tr valign=top><th align=right>
  -	nbytes</th><td>On entry, the number of bytes to write; on exit, the number of bytes written.</td></tr>
  +	nbytes</th><td>On entry, the number of bytes to write; on exit, the number 
  +              of bytes written.</td></tr>
   </table>
     </dl></dl>
   
  @@ -1104,7 +1370,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +2 -2      apr-site/docs/APR_I18N_translation_library.html
  
  Index: APR_I18N_translation_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_I18N_translation_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_I18N_translation_library.html	2000/11/18 03:40:40	1.2
  +++ APR_I18N_translation_library.html	2000/12/04 18:13:58	1.3
  @@ -67,7 +67,7 @@
     <dd>
   Convert a single-byte character from one charset to another.
   <p><img src="../images//tip.gif"> This only works when converting between single-byte character sets.
  -        -1 will be returned if the conversion can't be performed.
  +     -1 will be returned if the conversion can't be performed.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -165,7 +165,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +1 -1      apr-site/docs/APR_MD5_Library.html
  
  Index: APR_MD5_Library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_MD5_Library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_MD5_Library.html	2000/11/18 03:40:40	1.2
  +++ APR_MD5_Library.html	2000/12/04 18:13:59	1.3
  @@ -177,7 +177,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +1 -1      apr-site/docs/APR_MMAP_library.html
  
  Index: APR_MMAP_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_MMAP_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_MMAP_library.html	2000/11/18 03:40:40	1.2
  +++ APR_MMAP_library.html	2000/12/04 18:13:59	1.3
  @@ -141,7 +141,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +181 -124  apr-site/docs/APR_Network_library.html
  
  Index: APR_Network_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_Network_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_Network_library.html	2000/11/18 03:40:40	1.2
  +++ APR_Network_library.html	2000/12/04 18:13:59	1.3
  @@ -18,6 +18,18 @@
   <li><a href="APR_Network_library.html#apr_hdtr_t-numheaders">numheaders</a>
   <li><a href="APR_Network_library.html#apr_hdtr_t-numtrailers">numtrailers</a>
   </ul>
  +<h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
  +  <a href="APR_Network_library.html#apr_sockaddr_t">struct apr_sockaddr_t</h3></a>
  +  <ul>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-addr_str_len">addr_str_len</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-hostname">hostname</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-ipaddr_len">ipaddr_len</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-ipaddr_ptr">ipaddr_ptr</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-pool">pool</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-port">port</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-salen">salen</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t-servname">servname</a>
  +</ul>
   
   </b>
   <hr size="4">
  @@ -71,6 +83,95 @@
   <p><dl>
   </dl></dl>
   </blockquote>
  +<hr size="4">
  +  <a name="apr_sockaddr_t"></a>
  +  <h1>struct apr_sockaddr_t</h1>
  +  <table bgcolor="ffffff" border="0" cellspacing="4">
  +    <tr>
  +      <th align=center colspan=2>
  +      </th>
  +    </tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_network_io.h</td></tr></tr>
  +</table>
  +<p>
  +APRs socket address type, used to ensure protocol independence<h2>Member Index</h2>
  +<ul><li><a href="APR_Network_library.html#apr_sockaddr_t-addr_str_len">    int addr_str_len</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-hostname">    char *hostname</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-ipaddr_len">    int ipaddr_len</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-ipaddr_ptr">    void *ipaddr_ptr</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-pool">    apr_pool_t *pool</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-port">    apr_port_t port</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-salen">    apr_socklen_t salen</a>
  +	<li><a href="APR_Network_library.html#apr_sockaddr_t-servname">    char *servname</a>
  +	</ul><h2>Class Variables</h2>
  +<blockquote>
  +
  +  <a name="addr_str_len"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int addr_str_len;</b>
  +<dd>
  +How big should the address buffer be?  16 for v4 or 46 for v6
  + used in inet_ntop...
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="hostname"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    char *hostname;</b>
  +<dd>
  +The hostname
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="ipaddr_len"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int ipaddr_len;</b>
  +<dd>
  +How big is the ip address structure we're using?
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="ipaddr_ptr"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    void *ipaddr_ptr;</b>
  +<dd>
  +This points to the IP address structure within the appropriate
  + sockaddr structure.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="pool"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    apr_pool_t *pool;</b>
  +<dd>
  +The pool to use...
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="port"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    apr_port_t port;</b>
  +<dd>
  +The numeric port
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="salen"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    apr_socklen_t salen;</b>
  +<dd>
  +How big is the sockaddr we're using?
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="servname"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    char *servname;</b>
  +<dd>
  +Either a string of the port number or the service name for the port
  +<p><dl>
  +</dl></dl>
  +</blockquote>
   <h2>Global Functions</h2>
     <blockquote>
   
  @@ -100,7 +201,7 @@
   <a name="apr_add_poll_socket"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, apr_socket_t *socket, apr_int16_t event);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock, apr_int16_t event);</b>
     <dd>
   Add a socket to the poll structure.
   <p><dl>
  @@ -116,9 +217,9 @@
   <tr valign=top><th align=right>
   	event</th><td>The events to look for when we do the poll.  One of:
   <PRE>
  -           APR_POLLIN    -- signal if read will not block
  -           APR_POLLPRI   -- signal if prioirty data is availble to be read
  -           APR_POLLOUT   -- signal if write will not block
  +           APR_POLLIN       signal if read will not block
  +           APR_POLLPRI      signal if prioirty data is availble to be read
  +           APR_POLLOUT      signal if write will not block
   </PRE></td></tr>
   </table>
     </dl></dl>
  @@ -126,17 +227,20 @@
   <a name="apr_bind"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_bind(apr_socket_t *sock);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa);</b>
     <dd>
   Bind the socket to its associated port
  -<p><img src="../images//tip.gif"> This is where we will find out if there is any other process
  +<p><img src="../images//tip.gif"> This may be where we will find out if there is any other process
        using the selected port.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	sock</th><td>The socket to bind</td></tr>
  +	sock</th><td>The socket to bind
  +</td></tr>
  +<tr valign=top><th align=right>
  +	sa</th><td>The socket address to bind to</td></tr>
   </table>
     </dl></dl>
   
  @@ -156,9 +260,9 @@
   <tr valign=top><th align=right>
   	events</th><td>The events to clear from all sockets.  One of:
   <PRE>
  -           APR_POLLIN    -- signal if read will not block
  -           APR_POLLPRI   -- signal if prioirty data is availble to be read
  -           APR_POLLOUT   -- signal if write will not block
  +           APR_POLLIN       signal if read will not block
  +           APR_POLLPRI      signal if prioirty data is availble to be read
  +           APR_POLLOUT      signal if write will not block
   </PRE></td></tr>
   </table>
     </dl></dl>
  @@ -193,9 +297,9 @@
   	sock</th><td>The socket we wish to use for our side of the connection
   </td></tr>
   <tr valign=top><th align=right>
  -	hostname</th><td>The hostname of the machine we wish to connect to.  If NULL,
  -                APR assumes that the sockaddr_in in the apr_socket is 
  -                completely filled out.</td></tr>
  +	sa</th><td>The address of the machine we wish to connect to.  If NULL,
  +          APR assumes that the sockaddr_in in the apr_socket is 
  +          completely filled out.</td></tr>
   </table>
     </dl></dl>
   
  @@ -213,7 +317,7 @@
   	new_sock</th><td>The new socket that has been set up.
   </td></tr>
   <tr valign=top><th align=right>
  -	family</th><td>The address family of the socket (e.g., AF_INET).
  +	family</th><td>The address family of the socket (e.g., APR_INET).
   </td></tr>
   <tr valign=top><th align=right>
   	type</th><td>The type of the socket (e.g., SOCK_STREAM).
  @@ -223,24 +327,6 @@
   </table>
     </dl></dl>
   
  -<a name="apr_create_tcp_socket"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_create_tcp_socket(apr_socket_t **new_sock, apr_pool_t *cont);</b>
  -  <dd>
  -Create a socket for tcp communication.
  -<p><dl>
  -
  -  <dt><b>Parameters</b><dd>
  -	<table width="85%">
  -<tr valign=top><th align=right>
  -	new_sock</th><td>The new socket that has been setup.
  -</td></tr>
  -<tr valign=top><th align=right>
  -	cont</th><td>The pool to use</td></tr>
  -</table>
  -  </dl></dl>
  -
   <a name="apr_get_hostname"></a>
   <dl>
     <dt>
  @@ -283,39 +369,22 @@
   <a name="apr_get_ipaddr"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_ipaddr(char **addr, apr_interface_e which, apr_socket_t *sock);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_ipaddr(char **addr, apr_sockaddr_t *sockaddr);</b>
     <dd>
  -Return the IP address associated with an apr socket.
  +Return the IP address (in numeric address string format) in
  +an APR socket address.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	addr</th><td>The local IP address associated with the socket.
  +	addr</th><td>The IP address.
   </td></tr>
   <tr valign=top><th align=right>
  -	sock</th><td>The socket to use</td></tr>
  +	sockaddr</th><td>The socket address to reference.</td></tr>
   </table>
     </dl></dl>
   
  -<a name="apr_get_local_name"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_local_name(struct sockaddr_in **name, apr_socket_t *sock);</b>
  -  <dd>
  -Return the local socket name as a BSD style struct sockaddr_in.
  -<p><dl>
  -
  -  <dt><b>Parameters</b><dd>
  -	<table width="85%">
  -<tr valign=top><th align=right>
  -	name</th><td>The local name associated with the socket.
  -</td></tr>
  -<tr valign=top><th align=right>
  -	sock</th><td>The socket to use</td></tr>
  -</table>
  -  </dl></dl>
  -
   <a name="apr_get_polldata"></a>
   <dl>
     <dt>
  @@ -339,40 +408,19 @@
   
   <a name="apr_get_port"></a>
   <dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_port(apr_port_t *port, apr_interface_e which, apr_socket_t *sock);</b>
  -  <dd>
  -Return the port associated with a socket.
  -<p><dl>
  -
  -  <dt><b>Parameters</b><dd>
  -	<table width="85%">
  -<tr valign=top><th align=right>
  -	port</th><td>The local port this socket is associated with.
  -</td></tr>
  -<tr valign=top><th align=right>
  -	which</th><td>Which interface are we getting the port for?
  -</td></tr>
  -<tr valign=top><th align=right>
  -	sock</th><td>The socket to enquire about.</td></tr>
  -</table>
  -  </dl></dl>
  -
  -<a name="apr_get_remote_name"></a>
  -<dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_remote_name(struct sockaddr_in **name, apr_socket_t *sock);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_port(apr_port_t *port, apr_sockaddr_t *sockaddr);</b>
     <dd>
  -Return the remote socket name as a BSD style struct sockaddr_in.
  +Return the port in an APR socket address.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	name</th><td>The remote name associated with the socket.
  +	port</th><td>The port from the socket address.
   </td></tr>
   <tr valign=top><th align=right>
  -	sock</th><td>The socket to use</td></tr>
  +	sockaddr</th><td>The socket address to reference.</td></tr>
   </table>
     </dl></dl>
   
  @@ -389,12 +437,12 @@
   <tr valign=top><th align=right>
   	event</th><td>The returned events for the socket.  One of:
   <PRE>
  -           APR_POLLIN    -- Data is available to be read 
  -           APR_POLLPRI   -- Prioirty data is availble to be read
  -           APR_POLLOUT   -- Write will succeed
  -           APR_POLLERR   -- An error occurred on the socket
  -           APR_POLLHUP   -- The connection has been terminated
  -           APR_POLLNVAL  -- This is an invalid socket to poll on.
  +           APR_POLLIN       Data is available to be read 
  +           APR_POLLPRI      Prioirty data is availble to be read
  +           APR_POLLOUT      Write will succeed
  +           APR_POLLERR      An error occurred on the socket
  +           APR_POLLHUP      The connection has been terminated
  +           APR_POLLNVAL     This is an invalid socket to poll on.
                               Socket not open.
   </PRE>
   </td></tr>
  @@ -406,24 +454,24 @@
   </table>
     </dl></dl>
   
  -<a name="apr_get_socket_inaddr"></a>
  +<a name="apr_get_sockaddr"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_socket_inaddr(apr_in_addr_t *addr, apr_interface_e which, apr_socket_t *sock);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_sockaddr(apr_sockaddr_t **sa, apr_interface_e which, apr_socket_t *sock);</b>
     <dd>
  -Given an apr_socket_t get the apr_in_addr_t for the requested interface
  +Return an apr_sockaddr_t from an apr_socket_t
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	addr</th><td>The apr_in_addr_t structure to return
  +	sa</th><td>The returned apr_sockaddr_t.
   </td></tr>
   <tr valign=top><th align=right>
  -	which</th><td>The interface to return for
  +	which</th><td>Which interface do we want the apr_sockaddr_t for?
   </td></tr>
   <tr valign=top><th align=right>
  -	sock</th><td>The apr_socket_t to use</td></tr>
  +	sock</th><td>The socket to use</td></tr>
   </table>
     </dl></dl>
   
  @@ -432,7 +480,7 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_get_socketdata(void **data, const char *key, apr_socket_t *sock);</b>
     <dd>
  -Return the pool associated with the current socket>
  +Return the data associated with the current socket
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -465,8 +513,8 @@
   	hostname</th><td>The hostname or numeric address string to resolve/parse.
   </td></tr>
   <tr valign=top><th align=right>
  -	family</th><td>The address family to use, or AF_UNSPEC if the system should 
  -decide.
  +	family</th><td>The address family to use, or APR_UNSPEC if the system should 
  +              decide.
   </td></tr>
   <tr valign=top><th align=right>
   	port</th><td>The port number.
  @@ -501,6 +549,24 @@
   </table>
     </dl></dl>
   
  +<a name="apr_getservbyname"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_getservbyname(apr_sockaddr_t *sockaddr, const char *servname);</b>
  +  <dd>
  +Given an apr_sockaddr_t and a service name, set the port for the service
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	sockaddr</th><td>The apr_sockaddr_t that will have it's port set
  +</td></tr>
  +<tr valign=top><th align=right>
  +	servname</th><td>The name of the service you wish to use</td></tr>
  +</table>
  +  </dl></dl>
  +
   <a name="apr_getsocketopt"></a>
   <dl>
     <dt>
  @@ -577,9 +643,9 @@
   <tr valign=top><th align=right>
   	events</th><td>The events to stop looking for during the poll.  One of:
   <PRE>
  -           APR_POLLIN    -- signal if read will not block
  -           APR_POLLPRI   -- signal if prioirty data is availble to be read
  -           APR_POLLOUT   -- signal if write will not block
  +           APR_POLLIN       signal if read will not block
  +           APR_POLLPRI      signal if prioirty data is availble to be read
  +           APR_POLLOUT      signal if write will not block
   </PRE></td></tr>
   </table>
     </dl></dl>
  @@ -719,7 +785,9 @@
   	offset</th><td>Offset into the file where we should begin writing
   </td></tr>
   <tr valign=top><th align=right>
  -	len</th><td>Number of bytes to send from the file
  +	len</th><td>(input)  - Number of bytes to send from the file 
  +           (output) - Number of bytes actually sent, 
  +                      including headers, file, and trailers
   </td></tr>
   <tr valign=top><th align=right>
   	flags</th><td>APR flags that are mapped to OS specific flags</td></tr>
  @@ -761,22 +829,17 @@
   <a name="apr_set_ipaddr"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_ipaddr(apr_socket_t *sock, apr_interface_e which, const char *addr);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_ipaddr(apr_sockaddr_t *sockaddr, const char *addr);</b>
     <dd>
  -Associate a socket addr with an apr socket.
  -<p><img src="../images//tip.gif"> This does not bind the two together, it is just telling apr 
  -     that this socket is going to use this address if possible.
  +Set the IP address in an APR socket address.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	sock</th><td>The socket to use
  +	sockaddr</th><td>The socket address to use
   </td></tr>
   <tr valign=top><th align=right>
  -	which</th><td>Which interface should we set?
  -</td></tr>
  -<tr valign=top><th align=right>
   	addr</th><td>The IP address to attach to the socket.
               Use APR_ANYADDR to use any IP addr on the machine.</td></tr>
   </table>
  @@ -809,24 +872,18 @@
   <a name="apr_set_port"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_port(apr_socket_t *sock, apr_interface_e which, apr_port_t port);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_port(apr_sockaddr_t *sockaddr, apr_port_t port);</b>
     <dd>
  -Associate a port with a socket.
  -<p><img src="../images//tip.gif"> This does not bind the two together, it is just telling apr 
  -     that this socket is going to use this port if possible.  If
  -     the port is already used, we won't find out about it here.
  +Set the port in an APR socket address.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
  -<tr valign=top><th align=right>
  -	sock</th><td>The socket to set.
  -</td></tr>
   <tr valign=top><th align=right>
  -	which</th><td>Which socket do we want to set the port for?
  +	sockaddr</th><td>The socket address to set.
   </td></tr>
   <tr valign=top><th align=right>
  -	port</th><td>The local port this socket will be dealing with.</td></tr>
  +	port</th><td>The port to be stored in the socket address.</td></tr>
   </table>
     </dl></dl>
   
  @@ -835,7 +892,7 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_socketdata(apr_socket_t *sock, void *data, const char *key, apr_status_t (*cleanup) (void*));</b>
     <dd>
  -Set the pool associated with the current socket.
  +Set the data associated with the current socket.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -885,7 +942,7 @@
   </PRE>
   </td></tr>
   <tr valign=top><th align=right>
  -	on</th><td>Are we turning the option on or off.</td></tr>
  +	on</th><td>Value for the option.</td></tr>
   </table>
     </dl></dl>
   
  @@ -894,7 +951,7 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_setup_poll(apr_pollfd_t **new_poll, apr_int32_t num, apr_pool_t *cont);</b>
     <dd>
  -Setup the memory required for poll to operate properly>
  +Setup the memory required for poll to operate properly
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -928,9 +985,9 @@
   <tr valign=top><th align=right>
   	how</th><td>How to shutdown the socket.  One of:
   <PRE>
  -           APR_SHUTDOWN_READ      -- no longer allow read requests
  -           APR_SHUTDOWN_WRITE     -- no longer allow write requests
  -           APR_SHUTDOWN_READWRITE -- no longer allow read or write requests 
  +           APR_SHUTDOWN_READ         no longer allow read requests
  +           APR_SHUTDOWN_WRITE        no longer allow write requests
  +           APR_SHUTDOWN_READWRITE    no longer allow read or write requests 
   </PRE></td></tr>
   </table>
     </dl></dl>
  @@ -941,7 +998,7 @@
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_socket_from_file(apr_socket_t **newsock, apr_file_t *file);</b>
     <dd>
   Convert a File type to a socket so that it can be used in a poll operation.
  -<p><img src="../images//tip.gif"> This is not available on all platforms.  Platforms that have the
  +<p><img src="../images//warning.gif" align=left> This is not available on all platforms.  Platforms that have the
        ability to poll files for data to be read/written/exceptions will
        have the APR_FILES_AS_SOCKETS macro defined as true.
   <p><dl>
  @@ -960,7 +1017,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +31 -3     apr-site/docs/APR_Process_library.html
  
  Index: APR_Process_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_Process_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_Process_library.html	2000/11/18 03:40:40	1.2
  +++ APR_Process_library.html	2000/12/04 18:13:59	1.3
  @@ -28,7 +28,7 @@
   <a name="apr_create_process"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_create_process(apr_proc_t *new_proc, const char *progname, char *const *args, char **env, apr_procattr_t *attr, apr_pool_t *cont);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_create_process(apr_proc_t *new_proc, const char *progname, const char * const *args, const char * const *env, apr_procattr_t *attr, apr_pool_t *cont);</b>
     <dd>
   Create a new process and execute a new program within that process.
   <p><dl>
  @@ -46,7 +46,7 @@
                     one should be the program name.
   </td></tr>
   <tr valign=top><th align=right>
  -	env</th><td>The new environment apr_table_t for the new process.  This 
  +	env</th><td>The new environment table for the new process.  This 
              should be a list of NULL-terminated strings.
   </td></tr>
   <tr valign=top><th align=right>
  @@ -450,12 +450,40 @@
   </PRE></td></tr>
   </table>
     </dl></dl>
  +
  +<a name="void-30"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_note_subprocess(struct apr_pool_t *a, apr_proc_t *pid, enum kill_conditions how);</b>
  +  <dd>
  +Register a process to be killed when a pool dies.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	a</th><td>The pool to use to define the processes lifetime
  +</td></tr>
  +<tr valign=top><th align=right>
  +	pid</th><td>The process to register
  +</td></tr>
  +<tr valign=top><th align=right>
  +	how</th><td>How to kill the process, one of:
  +<PRE>
  +        kill_never          -- process is never sent any signals
  +        kill_always     -- process is sent SIGKILL on apr_pool_t cleanup 
  +        kill_after_timeout -- SIGTERM, wait 3 seconds, SIGKILL
  +        just_wait          -- wait forever for the process to complete
  +        kill_only_once     -- send SIGTERM and then wait
  +</PRE></td></tr>
  +</table>
  +  </dl></dl>
   </blockquote>
   
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +39 -1     apr-site/docs/APR_Random_Functions.html
  
  Index: APR_Random_Functions.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_Random_Functions.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_Random_Functions.html	2000/11/18 03:40:40	1.2
  +++ APR_Random_Functions.html	2000/12/04 18:13:59	1.3
  @@ -32,12 +32,50 @@
   	length</th><td>size of the buffer</td></tr>
   </table>
     </dl></dl>
  +
  +<a name="apr_initialize"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_initialize(void);</b>
  +  <dd>
  +Setup any APR internal data structures.  This MUST be the first function 
  +called for any APR program.
  +<p><dl>
  +</dl></dl>
  +
  +<a name="apr_set_abort"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont);</b>
  +  <dd>
  +Set the APR_ABORT function.
  +<p><img src="../images//tip.gif"> This is in for backwards compatability.  If the program using
  +     APR wants APR to exit on a memory allocation error, then this
  +     function should be called to set the function to use in order
  +     to actually exit the program.  If this function is not called,
  +     then APR will return an error and expect the calling program to
  +     deal with the error accordingly.
  +<p><dl>
  +</dl></dl>
  +
  +<a name="apr_terminate"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_terminate(void);</b>
  +  <dd>
  +Tear down any APR internal data structures which aren't torn down 
  +automatically.
  +<p><img src="../images//tip.gif"> An APR program must call this function at termination once it 
  +     has stopped using APR services.  The APR developers suggest using
  +     atexit to ensure this is called.
  +<p><dl>
  +</dl></dl>
   </blockquote>
   
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +760 -1    apr-site/docs/APR_Table_library.html
  
  Index: APR_Table_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_Table_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_Table_library.html	2000/11/18 03:40:40	1.2
  +++ APR_Table_library.html	2000/12/04 18:14:01	1.3
  @@ -251,11 +251,770 @@
   <p><dl>
   </dl></dl>
   </blockquote>
  +<h2>Global Functions</h2>
  +  <blockquote>
   
  +<a name=""></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>(apr_array_header_t *);</b>
  +  <dd>
  +Determine if the table is empty
  +Determine if the binary table is empty
  +Create an array
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to check
  +</td></tr>
  +<tr valign=top><th align=right>
  +	t</th><td>The table to check
  +</td></tr>
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the memory out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	nelts</th><td>the number of elements in the initial array
  +</td></tr>
  +<tr valign=top><th align=right>
  +	elt_size</th><td>The size of each element in the array.</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>True if empty, Falso otherwise
  + True if empty, Falso otherwise
  + The new array
  +#deffunc apr_array_header_t *apr_make_array(struct apr_pool_t *p, int nelts, int elt_size)<p></dl></dl>
  +
  +<a name="apr_array_header_t"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_array_header_t *apr_table_elts(apr_table_t *t);</b>
  +  <dd>
  +Get the elements from a table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>An array containing the contents of the table<p></dl></dl>
  +
  +<a name="apr_array_header_t-2"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_array_header_t *apr_table_elts(apr_table_t *t);</b>
  +  <dd>
  +Get the elements from a binary table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>An array containing the contents of the table<p></dl></dl>
  +
  +<a name="apr_array_header_t-3"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_array_header_t *apr_copy_array(apr_pool_t *p, const apr_array_header_t *arr);</b>
  +  <dd>
  +Copy the entire array
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the copy of the array out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	arr</th><td>The array to copy</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>An exact copy of the array passed in<p></dl></dl>
  +
  +<a name="apr_array_header_t-4"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_array_header_t *apr_copy_array_hdr(apr_pool_t *p, const apr_array_header_t *arr);</b>
  +  <dd>
  +Copy the headers of the array, and arrange for the elements to be copied if
  +and only if the code subsequently does a push or arraycat.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the copy of the array out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	arr</th><td>The array to copy</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>An exact copy of the array passed in<p></dl></dl>
  +
  +<a name="apr_array_header_t-5"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_array_header_t *apr_append_arrays(apr_pool_t *p, const apr_array_header_t *first, const apr_array_header_t *second);</b>
  +  <dd>
  +Append one array to the end of another, creating a new array in the process.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the new array out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	first</th><td>The array to put first in the new array.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	second</th><td>The array to put second in the new array.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	return</th><td>A new array containing the data from the two arrays passed in.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="apr_btable_t"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_btable_t *apr_overlay_tables(apr_pool_t *p, const apr_btable_t *overlay, const apr_btable_t *base);;</b>
  +  <dd>
  +Merge two binary tables into one new table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to use for the new table
  +</td></tr>
  +<tr valign=top><th align=right>
  +	overlay</th><td>The first table to put in the new table
  +</td></tr>
  +<tr valign=top><th align=right>
  +	base</th><td>The table to add at the end of the new table</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>A new table containing all of the data from the two passed in<p></dl></dl>
  +
  +<a name="apr_table_t"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_table_t *apr_make_table(apr_pool_t *p, int nelts);</b>
  +  <dd>
  +Make a new table
  +<p><img src="../images//warning.gif" align=left> This table can only store text data
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the pool out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	nelts</th><td>The number of elements in the initial table.</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>The new table.<p></dl></dl>
  +
  +<a name="apr_table_t-2"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_table_t *apr_make_btable(apr_pool_t *p, int nelts);</b>
  +  <dd>
  +Make a new table capable of storing binary data
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the pool out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	nelts</th><td>The number of elements in the initial table.</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>The new table.<p></dl></dl>
  +
  +<a name="apr_table_t-3"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_table_t *) apr_copy_table(apr_pool_t *p, const apr_table_t *t);</b>
  +  <dd>
  +Create a new table and copy another table into it
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the new table out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	t</th><td>The table to copy</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>A copy of the table passed in<p></dl></dl>
  +
  +<a name="apr_table_t-4"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_table_t *) apr_copy_btable(apr_pool_t *p, const apr_btable_t *t);</b>
  +  <dd>
  +Create a new binary table and copy another table into it
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the new table out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	t</th><td>The table to copy</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>A copy of the table passed in<p></dl></dl>
  +
  +<a name="apr_table_t-5"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_table_t *apr_overlay_tables(apr_pool_t *p, const apr_table_t *overlay, const apr_table_t *base);;</b>
  +  <dd>
  +Merge two tables into one new table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to use for the new table
  +</td></tr>
  +<tr valign=top><th align=right>
  +	overlay</th><td>The first table to put in the new table
  +</td></tr>
  +<tr valign=top><th align=right>
  +	base</th><td>The table to add at the end of the new table</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>A new table containing all of the data from the two passed in<p></dl></dl>
  +
  +<a name="char-8"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>char *apr_array_pstrcat(apr_pool_t *p, const apr_array_header_t *arr, const char sep);</b>
  +  <dd>
  +Generates a new string from the apr_pool_t containing the concatenated 
  +sequence of substrings referenced as elements within the array.  The string 
  +will be empty if all substrings are empty or null, or if there are no 
  +elements in the array.  If sep is non-NUL, it will be inserted between 
  +elements as a separator.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool to allocate the string out of
  +</td></tr>
  +<tr valign=top><th align=right>
  +	arr</th><td>The array to generate the string from
  +</td></tr>
  +<tr valign=top><th align=right>
  +	sep</th><td>The separator to use</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>A string containing all of the data in the array.<p></dl></dl>
  +
  +<a name="const-2"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>const char *apr_table_get(const apr_table_t *t, const char *key);</b>
  +  <dd>
  +Get the value associated with a given key from the table.  After this call,
  +The data is still in the table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to search for the key
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to search for</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>The value associated with the key<p></dl></dl>
  +
  +<a name="const-3"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>const apr_item_t *apr_btable_get(const apr_btable_t *t, const char *key);</b>
  +  <dd>
  +Get the value associated with a given key from a binary table.  After this
  +call, the data is still in the table.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to search for the key
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to search for</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>The value associated with the key<p></dl></dl>
  +
  +<a name="void-11"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void *apr_push_array(apr_array_header_t *arr);</b>
  +  <dd>
  +Add a new element to an array
  +<p><img src="../images//tip.gif"> If there are no free spots in the array, then this function will
  +     allocate new space for the new element.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	arr</th><td>The array to add an element to.</td></tr>
  +</table>
  +  <dt><b>Return Value</b>
  +  <dd>Location for the new element in the array.<p></dl></dl>
  +
  +<a name="void-12"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_array_cat(apr_array_header_t *dst, const apr_array_header_t *src);</b>
  +  <dd>
  +Concatenate two arrays together
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	dst</th><td>The destination array, and the one to go first in the combined 
  +           array
  +</td></tr>
  +<tr valign=top><th align=right>
  +	src</th><td>The source array to add to the destination array</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-13"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_clear_table(apr_table_t *t);</b>
  +  <dd>
  +Delete all of the elements from a table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to clear</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-14"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_clear_btable(apr_btable_t *t);</b>
  +  <dd>
  +Delete all of the elements from a binary table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to clear</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-15"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_set(apr_table_t *t, const char *key, const char *val);</b>
  +  <dd>
  +Add a key/value pair to a table, if another element already exists with the
  +same key, this will over-write the old data.
  +<p><img src="../images//tip.gif"> When adding data, this function makes a copy of both the key and the
  +     value.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add the data to.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key fo use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-16"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_btable_set(apr_btable_t *t, const char *key, size_t size, const void *val);</b>
  +  <dd>
  +Add a key/value pair to a binary table if another element already exists 
  +with the same key, this will over-write the old data.
  +<p><img src="../images//tip.gif"> When adding data, this function makes a copy of both the key and the
  +     value.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add the data to.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key fo use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	size</th><td>The size of the data to add
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-17"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_setn(apr_table_t *t, const char *key, const char *val);</b>
  +  <dd>
  +Add a key/value pair to a table, if another element already exists with the
  +same key, this will over-write the old data.
  +<p><img src="../images//tip.gif"> When adding data, this function does not make a copy of the key or the
  +     value, so care should be taken to ensure that the values will not 
  +     change after they have been added..
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add the data to.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key fo use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-18"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_btable_setn(apr_btable_t *t, const char *key, size_t size, const void *val);</b>
  +  <dd>
  +Add a key/value pair to a binary table if another element already exists 
  +with the same key, this will over-write the old data.
  +<p><img src="../images//tip.gif"> When adding data, this function does not make a copy of the key or the
  +     value, so care should be taken to ensure that the values will not 
  +     change after they have been added..
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add the data to.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key fo use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	size</th><td>The size of the data to add
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-19"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_unset(apr_table_t *t, const char *key);</b>
  +  <dd>
  +Remove data from the table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to remove data from
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key of the data being removed</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-20"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_btable_unset(apr_btable_t *t, const char *key);</b>
  +  <dd>
  +Remove data from a binary table
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to remove data from
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key of the data being removed</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-21"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_merge(apr_table_t *t, const char *key, const char *val);</b>
  +  <dd>
  +Add data to a table by merging the value with data that has already been 
  +stored
  +<p><img src="../images//tip.gif"> If the key is not found, then this function acts like apr_table_add
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to search for the data
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to merge data for
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The data to add</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-22"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_mergen(apr_table_t *t, const char *key, const char *val);</b>
  +  <dd>
  +Add data to a table by merging the value with data that has already been 
  +stored
  +<p><img src="../images//tip.gif"> If the key is not found, then this function acts like apr_table_addn
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to search for the data
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to merge data for
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The data to add</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-23"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_add(apr_table_t *t, const char *key, const char *val);</b>
  +  <dd>
  +Add data to a table, regardless of whether there is another element with the
  +same key.
  +<p><img src="../images//tip.gif"> When adding data, this function makes a copy of both the key and the
  +     value.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add to
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-24"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_btable_add(apr_btable_t *t, const char *key, size_t size, const char *val);</b>
  +  <dd>
  +Add data to a binary table, regardless of whether there is another element 
  +with the same key.
  +<p><img src="../images//tip.gif"> When adding data, this function makes a copy of both the key and the
  +     value.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add to
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	size</th><td>The size of the value to add
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-25"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_addn(apr_table_t *t, const char *key, const char *val);</b>
  +  <dd>
  +Add data to a table, regardless of whether there is another element with the
  +same key.
  +<p><img src="../images//tip.gif"> When adding data, this function does not make a copy of the key or the
  +     value, so care should be taken to ensure that the values will not 
  +     change after they have been added..
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add to
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-26"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_btable_addn(apr_btable_t *t, const char *key, size_t size, const char *val);</b>
  +  <dd>
  +Add data to a binary table, regardless of whether there is another element 
  +with the same key.
  +<p><img src="../images//tip.gif"> When adding data, this function does not make a copy of the key or the
  +     value, so care should be taken to ensure that the values will not 
  +     change after they have been added..
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	t</th><td>The table to add to
  +</td></tr>
  +<tr valign=top><th align=right>
  +	key</th><td>The key to use
  +</td></tr>
  +<tr valign=top><th align=right>
  +	size</th><td>The size of the value to add
  +</td></tr>
  +<tr valign=top><th align=right>
  +	val</th><td>The value to add.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-27"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_do(int (*comp) (void *, const char *, const char *), void *rec, const apr_table_t *t, ...);</b>
  +  <dd>
  +Iterate over a table running the provided function once for every
  +element in the table.  If there is data passed in as a vararg, then the 
  +function is only run on those element's whose key matches something in 
  +the vararg.  If the vararg is NULL, then every element is run through the
  +function.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	comp</th><td>The function to run
  +</td></tr>
  +<tr valign=top><th align=right>
  +	rec</th><td>The data to pass as the first argument to the function
  +</td></tr>
  +<tr valign=top><th align=right>
  +	t</th><td>The table to iterate over
  +... The vararg.  If this is NULL, then all elements in the table are
  +           run through the function, otherwise only those whose key matches
  +           are run.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-28"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_table_vdo(int (*comp) (void *, const char *, const char *), void *rec, const apr_table_t *t, va_list vp);</b>
  +  <dd>
  +Iterate over a table running the provided function once for every
  +element in the table.  If there is data passed in as a vararg, then the 
  +function is only run on those element's whose key matches something in 
  +the vararg.  If the vararg is NULL, then every element is run through the
  +function.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	comp</th><td>The function to run
  +</td></tr>
  +<tr valign=top><th align=right>
  +	rec</th><td>The data to pass as the first argument to the function
  +</td></tr>
  +<tr valign=top><th align=right>
  +	t</th><td>The table to iterate over
  +</td></tr>
  +<tr valign=top><th align=right>
  +	vp</th><td>The vararg table.  If this is NULL, then all elements in the 
  +               table are run through the function, otherwise only those 
  +               whose key matches are run.</td></tr>
  +</table>
  +  </dl></dl>
  +
  +<a name="void-29"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_overlap_tables(apr_table_t *a, const apr_table_t *b, unsigned flags);</b>
  +  <dd>
  +For each element in table b, either use setn or mergen to add the data
  +to table a.  Wich method is used is determined by the flags passed in.
  +<p><img src="../images//tip.gif"> This function is highly optimized, and uses less memory and CPU cycles
  +     than a function that just loops through table b calling other functions.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	a</th><td>The table to add the data to.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	b</th><td>The table to iterate over, adding it's data to table a
  +</td></tr>
  +<tr valign=top><th align=right>
  +	flags</th><td>How to add the table to table a.  One of:
  +         APR_OVERLAP_TABLES_SET        Use apr_table_setn
  +         APR_OVERLAP_TABLES_MERGE      Use apr_table_mergen</td></tr>
  +</table>
  +  </dl></dl>
  +</blockquote>
  +
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +46 -1     apr-site/docs/APR_Thread_library.html
  
  Index: APR_Thread_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_Thread_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_Thread_library.html	2000/11/18 03:40:40	1.2
  +++ APR_Thread_library.html	2000/12/04 18:14:01	1.3
  @@ -17,6 +17,12 @@
   <li><a href="APR_Thread_library.html#apr_proc_t-out">out</a>
   <li><a href="APR_Thread_library.html#apr_proc_t-pid">pid</a>
   </ul>
  +<h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
  +  <a href="APR_Thread_library.html#process_chain">struct process_chain</h3></a>
  +  <ul>
  +<li><a href="APR_Thread_library.html#process_chain-pid">pid</a>
  +<li><a href="APR_Thread_library.html#process_chain-process_chain">process_chain</a>
  +</ul>
   
   </b>
   <hr size="4">
  @@ -61,6 +67,45 @@
   <p><dl>
   </dl></dl>
   </blockquote>
  +<hr size="4">
  +  <a name="process_chain"></a>
  +  <h1>struct process_chain</h1>
  +  <table bgcolor="ffffff" border="0" cellspacing="4">
  +    <tr>
  +      <th align=center colspan=2>
  +      </th>
  +    </tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_thread_proc.h</td></tr></tr>
  +</table>
  +<p>
  +A list of processes<h2>Member Index</h2>
  +<ul><li><a href="APR_Thread_library.html#process_chain-pid">    apr_proc_t *pid</a>
  +	<li><a href="APR_Thread_library.html#process_chain-process_chain">process_chain *next </a>
  +	</ul><h2>Class Variables</h2>
  +<blockquote>
  +
  +  <a name="pid"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    apr_proc_t *pid;</b>
  +<dd>
  +The process ID
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="process_chain"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>process_chain *next ;</b>
  +<dd>
  +When the process should be sent a signal. <PRE>
  +          kill_never   -- process is never sent any signals
  +          kill_always  -- process is sent SIGKILL on apr_pool_t cleanup
  +          kill_after_timeout -- SIGTERM, wait 3 seconds, SIGKILL
  +          just_wait    -- wait forever for the process to complete
  +          kill_only_once -- send SIGTERM and then wait </PRE>
  +     The next process in the list
  +<p><dl>
  +</dl></dl>
  +</blockquote>
   <h2>Global Functions</h2>
     <blockquote>
   
  @@ -359,7 +404,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +1 -1      apr-site/docs/APR_Time_library.html
  
  Index: APR_Time_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_Time_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_Time_library.html	2000/11/18 03:40:40	1.2
  +++ APR_Time_library.html	2000/12/04 18:14:01	1.3
  @@ -317,7 +317,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +3 -3      apr-site/docs/APR_UUID_Handling.html
  
  Index: APR_UUID_Handling.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_UUID_Handling.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_UUID_Handling.html	2000/11/18 03:40:40	1.2
  +++ APR_UUID_Handling.html	2000/12/04 18:14:02	1.3
  @@ -33,7 +33,7 @@
   </table>
     </dl></dl>
   
  -<a name="void-12"></a>
  +<a name="void-31"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_get_uuid(apr_uuid_t *uuid);</b>
  @@ -48,7 +48,7 @@
   </table>
     </dl></dl>
   
  -<a name="void-13"></a>
  +<a name="void-32"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_format_uuid(apr_pool_t *p, const apr_uuid_t *uuid);</b>
  @@ -72,7 +72,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +107 -61   apr-site/docs/APR_command_arguments.html
  
  Index: APR_command_arguments.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_command_arguments.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_command_arguments.html	2000/11/18 03:40:40	1.2
  +++ APR_command_arguments.html	2000/12/04 18:14:02	1.3
  @@ -11,20 +11,72 @@
     <h2>Package Name: APR command arguments</h2>
     <b>
   <h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
  +  <a href="APR_command_arguments.html#apr_getopt_option_t">struct apr_getopt_option_t</h3></a>
  +  <ul>
  +<li><a href="APR_command_arguments.html#apr_getopt_option_t-has_arg">has_arg</a>
  +<li><a href="APR_command_arguments.html#apr_getopt_option_t-name">name</a>
  +<li><a href="APR_command_arguments.html#apr_getopt_option_t-optch">optch</a>
  +</ul>
  +<h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
     <a href="APR_command_arguments.html#apr_getopt_t">struct apr_getopt_t</h3></a>
     <ul>
   <li><a href="APR_command_arguments.html#apr_getopt_t-argc">argc</a>
  -<li><a href="APR_command_arguments.html#apr_getopt_t-const">const</a>
  +<li><a href="APR_command_arguments.html#apr_getopt_t-argv">argv</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t-cont">cont</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t-err">err</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t-ind">ind</a>
  +<li><a href="APR_command_arguments.html#apr_getopt_t-interleave">interleave</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t-opt">opt</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t-place">place</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t-reset">reset</a>
  +<li><a href="APR_command_arguments.html#apr_getopt_t-skip_end">skip_end</a>
  +<li><a href="APR_command_arguments.html#apr_getopt_t-skip_start">skip_start</a>
   </ul>
   
   </b>
   <hr size="4">
  +  <a name="apr_getopt_option_t"></a>
  +  <h1>struct apr_getopt_option_t</h1>
  +  <table bgcolor="ffffff" border="0" cellspacing="4">
  +    <tr>
  +      <th align=center colspan=2>
  +      </th>
  +    </tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_getopt.h</td></tr></tr>
  +</table>
  +<p>
  +Structure used to describe options that getopt should search for.<h2>Member Index</h2>
  +<ul><li><a href="APR_command_arguments.html#apr_getopt_option_t-has_arg">    int has_arg</a>
  +	<li><a href="APR_command_arguments.html#apr_getopt_option_t-name">    const char *name</a>
  +	<li><a href="APR_command_arguments.html#apr_getopt_option_t-optch">    int optch</a>
  +	</ul><h2>Class Variables</h2>
  +<blockquote>
  +
  +  <a name="has_arg"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int has_arg;</b>
  +<dd>
  +nonzero if option takes an argument
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="name"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    const char *name;</b>
  +<dd>
  +long option name, or NULL if option has no long name
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="optch"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int optch;</b>
  +<dd>
  +option letter, or a value greater than 255 if option has no letter
  +<p><dl>
  +</dl></dl>
  +</blockquote>
  +<hr size="4">
     <a name="apr_getopt_t"></a>
     <h1>struct apr_getopt_t</h1>
     <table bgcolor="ffffff" border="0" cellspacing="4">
  @@ -37,13 +89,16 @@
   <p>
   Structure to store command line argument information.<h2>Member Index</h2>
   <ul><li><a href="APR_command_arguments.html#apr_getopt_t-argc">    int argc</a>
  -	<li><a href="APR_command_arguments.html#apr_getopt_t-const">    char *const</a>
  +	<li><a href="APR_command_arguments.html#apr_getopt_t-argv">    const char **argv</a>
   	<li><a href="APR_command_arguments.html#apr_getopt_t-cont">    apr_pool_t *cont</a>
   	<li><a href="APR_command_arguments.html#apr_getopt_t-err">    int err</a>
   	<li><a href="APR_command_arguments.html#apr_getopt_t-ind">    int ind</a>
  +	<li><a href="APR_command_arguments.html#apr_getopt_t-interleave">    int interleave</a>
   	<li><a href="APR_command_arguments.html#apr_getopt_t-opt">    int opt</a>
   	<li><a href="APR_command_arguments.html#apr_getopt_t-place">    char const* place</a>
   	<li><a href="APR_command_arguments.html#apr_getopt_t-reset">    int reset</a>
  +	<li><a href="APR_command_arguments.html#apr_getopt_t-skip_end">    int skip_end</a>
  +	<li><a href="APR_command_arguments.html#apr_getopt_t-skip_start">    int skip_start</a>
   	</ul><h2>Class Variables</h2>
   <blockquote>
   
  @@ -55,9 +110,9 @@
   <p><dl>
   </dl></dl>
   
  -  <a name="const"></a>
  +  <a name="argv"></a>
       <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    char *const;</b>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    const char **argv;</b>
   <dd>
   array of pointers to arguments
   <p><dl>
  @@ -87,6 +142,14 @@
   <p><dl>
   </dl></dl>
   
  +  <a name="interleave"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int interleave;</b>
  +<dd>
  +set to nonzero to support interleaving options with regular args
  +<p><dl>
  +</dl></dl>
  +
     <a name="opt"></a>
       <dl><dt>
   	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int opt;</b>
  @@ -110,32 +173,20 @@
   reset getopt
   <p><dl>
   </dl></dl>
  -</blockquote>
  -<h2>Global Variables</h2>
  -  <blockquote>
   
  -  <a name="has_arg"></a>
  +  <a name="skip_end"></a>
       <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int has_arg;</b>
  -<dd>
  -0 for no arg, 1 for arg
  -<p><dl>
  -</dl></dl>
  -
  -  <a name="name"></a>
  -    <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    const char *name;</b>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int skip_end;</b>
   <dd>
  -the name of the long argument (sans "--")
  +end of non-option arguments skipped for interleaving
   <p><dl>
   </dl></dl>
   
  -  <a name="val"></a>
  +  <a name="skip_start"></a>
       <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int val;</b>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    int skip_start;</b>
   <dd>
  -Either the short option char that this option corresponds to 
  -or a unique integer > 255
  +start of non-option arguments skipped for interleaving
   <p><dl>
   </dl></dl>
   </blockquote>
  @@ -154,10 +205,10 @@
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	cont</th><td>The pool to operate on
  +	os</th><td>The options structure created for apr_getopt()
   </td></tr>
   <tr valign=top><th align=right>
  -	os</th><td>The options structure created for apr_getopt()
  +	cont</th><td>The pool to operate on
   </td></tr>
   <tr valign=top><th align=right>
   	argc</th><td>The number of arguments to parse
  @@ -173,13 +224,6 @@
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_getopt(apr_getopt_t *os, const char *opts, char *optch, const char **optarg);</b>
     <dd>
   Parse the options initialized by apr_initopt().
  -<p><img src="../images//tip.gif"> There are four potential status values on exit. They are:
  -<PRE>
  -            APR_EOF      --  No more options to parse
  -            APR_BADCH    --  Found a bad option character
  -            APR_BADARG   --  No argument followed @parameter:
  -            APR_SUCCESS  --  The next option was found.
  -</PRE>
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -198,60 +242,62 @@
   <tr valign=top><th align=right>
   	optarg</th><td>The argument following the option character:</td></tr>
   </table>
  -  </dl></dl>
  +  <dt><b>Return Value</b>
  +  <dd>There are four potential status values on exit. They are:
  +<PRE>
  +            APR_EOF      --  No more options to parse
  +            APR_BADCH    --  Found a bad option character
  +            APR_BADARG   --  No argument followed @parameter:
  +            APR_SUCCESS  --  The next option was found.
  +</PRE><p></dl></dl>
   
   <a name="apr_status_t-4"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_getopt_long(apr_getopt_t *os, const char *opts, const apr_getopt_long_t *longopts, int *optval, const char **optarg) ;</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_getopt_long(apr_getopt_t *os, const apr_getopt_option_t *opts, int *optch, const char **optarg);</b>
     <dd>
   Parse the options initialized by apr_initopt(), accepting long
   options beginning with "--" in addition to single-character
  -options beginning with "-" (which are passed along to apr_getopt).
  -Long options are accepted in both "--foo bar" and well as
  -"--foo=bar" format
  -End of argument processing if we encounter "--" or any option that
  -doesn't start with "-" or "--".
  -<p><img src="../images//tip.gif"> There are four potential status values on exit.   They are:
  -<PRE>
  -            APR_EOF      --  No more options to parse
  -            APR_BADCH    --  Found a bad option character
  -            APR_BADARG   --  No argument followed @parameter:
  -            APR_SUCCESS  --  The next option was found.
  -</PRE>
  +options beginning with "-".
   <p><dl>
   
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	os</th><td>The apr_opt_t structure returned by apr_initopt()
  -</td></tr>
  -<tr valign=top><th align=right>
  -	opts</th><td>A string of acceptable single-character options to the
  -                program.  Characters followed by ":" are required to have
  -                an argument associated
  +	os</th><td>The apr_getopt_t structure created by apr_initopt()
   </td></tr>
   <tr valign=top><th align=right>
  -	longopts</th><td>A pointer to an array of apr_long_option_t structures, which
  -                can be initialized with { "name", has_args, val }.  has_args
  -                is nonzero if the option requires an argument.  A structure
  -                with a NULL name terminates the list
  +	opts</th><td>A pointer to a list of apr_getopt_option_t structures, which
  +              can be initialized with { "name", optch, has_args }.  has_args
  +              is nonzero if the option requires an argument.  A structure
  +              with an optch value of 0 terminates the list.
   </td></tr>
   <tr valign=top><th align=right>
  -	optval</th><td>The next option character parsed, or the value of "optval"
  -                from the appropriate apr_long_option_t structure if
  -                the next option is a long option.
  +	optch</th><td>Receives the value of "optch" from the apr_getopt_option_t
  +              structure corresponding to the next option matched.
   </td></tr>
   <tr valign=top><th align=right>
  -	optarg</th><td>The argument following the option, if any</td></tr>
  +	optarg</th><td>Receives the argument following the option, if any.</td></tr>
   </table>
  -  </dl></dl>
  +  <dt><b>Return Value</b>
  +  <dd>There are four potential status values on exit.   They are:
  +<PRE>
  +            APR_EOF      --  No more options to parse
  +            APR_BADCH    --  Found a bad option character
  +            APR_BADARG   --  No argument followed @parameter:
  +            APR_SUCCESS  --  The next option was found.
  +</PRE>
  +When APR_SUCCESS is returned, os->ind gives the index of the first
  +non-option argument.  On error, a message will be printed to stdout unless
  +os->err is set to 0.  If os->interleave is set to nonzero, options can come
  +after arguments, and os->argv will be permuted to leave non-option arguments
  +at the end (the original argv is unaffected).<p></dl></dl>
   </blockquote>
   
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +42 -31    apr-site/docs/APR_general-purpose_library.html
  
  Index: APR_general-purpose_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_general-purpose_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_general-purpose_library.html	2000/11/18 03:40:40	1.2
  +++ APR_general-purpose_library.html	2000/12/04 18:14:02	1.3
  @@ -10,8 +10,47 @@
   
     <h2>Package Name: APR general-purpose library</h2>
     <b>
  +<h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
  +  <a href="APR_general-purpose_library.html#apr_vformatter_buff_t">struct apr_vformatter_buff_t</h3></a>
  +  <ul>
  +<li><a href="APR_general-purpose_library.html#apr_vformatter_buff_t-curpos">curpos</a>
  +<li><a href="APR_general-purpose_library.html#apr_vformatter_buff_t-endpos">endpos</a>
  +</ul>
   
   </b>
  +<hr size="4">
  +  <a name="apr_vformatter_buff_t"></a>
  +  <h1>struct apr_vformatter_buff_t</h1>
  +  <table bgcolor="ffffff" border="0" cellspacing="4">
  +    <tr>
  +      <th align=center colspan=2>
  +      </th>
  +    </tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_lib.h</td></tr></tr>
  +</table>
  +<p>
  +Structure used by the variable-formatter routines.<h2>Member Index</h2>
  +<ul><li><a href="APR_general-purpose_library.html#apr_vformatter_buff_t-curpos">    char *curpos</a>
  +	<li><a href="APR_general-purpose_library.html#apr_vformatter_buff_t-endpos">    char *endpos</a>
  +	</ul><h2>Class Variables</h2>
  +<blockquote>
  +
  +  <a name="curpos"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    char *curpos;</b>
  +<dd>
  +The current position
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="endpos"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    char *endpos;</b>
  +<dd>
  +The end position of the format string
  +<p><dl>
  +</dl></dl>
  +</blockquote>
   <h2>Global Functions</h2>
     <blockquote>
   
  @@ -147,8 +186,8 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>int apr_snprintf(char *buf, size_t len, const char *format, ...);</b>
     <dd>
  -*snprintf routine based on apr_vformatter.  This means it understands the 
  - *same extensions.>
  +snprintf routine based on apr_vformatter.  This means it understands the 
  +same extensions.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -189,40 +228,12 @@
   	ap</th><td>The arguments to use to fill out the format string.</td></tr>
   </table>
     </dl></dl>
  -
  -<a name="void-4"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_note_subprocess(struct apr_pool_t *a, apr_proc_t *pid, enum kill_conditions how);</b>
  -  <dd>
  -Register a process to be killed when a pool dies.
  -<p><dl>
  -
  -  <dt><b>Parameters</b><dd>
  -	<table width="85%">
  -<tr valign=top><th align=right>
  -	a</th><td>The pool to use to define the processes lifetime
  -</td></tr>
  -<tr valign=top><th align=right>
  -	pid</th><td>The process to register
  -</td></tr>
  -<tr valign=top><th align=right>
  -	how</th><td>How to kill the process, one of:
  -<PRE>
  -        kill_never          -- process is never sent any signals
  -        kill_always     -- process is sent SIGKILL on apr_pool_t cleanup 
  -        kill_after_timeout -- SIGTERM, wait 3 seconds, SIGKILL
  -        just_wait          -- wait forever for the process to complete
  -        kill_only_once     -- send SIGTERM and then wait
  -</PRE></td></tr>
  -</table>
  -  </dl></dl>
   </blockquote>
   
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +4 -4      apr-site/docs/APR_lock_library.html
  
  Index: APR_lock_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_lock_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_lock_library.html	2000/11/18 03:40:40	1.2
  +++ APR_lock_library.html	2000/12/04 18:14:02	1.3
  @@ -68,9 +68,9 @@
   <tr valign=top><th align=right>
   	scope</th><td>The scope of the lock to create, one of:
   <PRE>
  -           APR_CROSS_PROCESS -- lock processes from the protected area.
  -           APR_INTRAPROCESS  -- lock threads from the protected area.
  -           APR_LOCKALL       -- lock processes and threads from the
  +           APR_CROSS_PROCESS    lock processes from the protected area.
  +           APR_INTRAPROCESS     lock threads from the protected area.
  +           APR_LOCKALL          lock processes and threads from the
                                   protected area.
   </PRE>
   </td></tr>
  @@ -180,7 +180,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +40 -144   apr-site/docs/APR_memory_allocation.html
  
  Index: APR_memory_allocation.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_memory_allocation.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_memory_allocation.html	2000/11/18 03:40:40	1.2
  +++ APR_memory_allocation.html	2000/12/04 18:14:02	1.3
  @@ -14,8 +14,8 @@
     <a href="APR_memory_allocation.html#apr_pool_t">struct apr_pool_t</h3></a>
     <ul>
   <li><a href="APR_memory_allocation.html#apr_pool_t-allocation_list">allocation_list</a>
  +<li><a href="APR_memory_allocation.html#apr_pool_t-apr_hash_t">apr_hash_t</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t-apr_pool_t">apr_pool_t</a>
  -<li><a href="APR_memory_allocation.html#apr_pool_t-datastruct">datastruct</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t-first">first</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t-free_first_avail">free_first_avail</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t-int">int</a>
  @@ -33,12 +33,6 @@
     <a href="APR_memory_allocation.html#apr_pool_t-process_chain">struct process_chain</h3></a>
     <ul>
   </ul>
  -<h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
  -  <a href="APR_memory_allocation.html#process_chain">struct process_chain</h3></a>
  -  <ul>
  -<li><a href="APR_memory_allocation.html#process_chain-pid">pid</a>
  -<li><a href="APR_memory_allocation.html#process_chain-process_chain">process_chain</a>
  -</ul>
   
   </b>
   <hr size="4">
  @@ -49,13 +43,13 @@
         <th align=center colspan=2>
         </th>
       </tr>
  - <tr><th width=20% align=right>Source:</th><td>./include/apr_general.h</td></tr></tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_pools.h</td></tr></tr>
   </table>
   <p>
   The memory allocation structure<h2>Member Index</h2>
   <ul><li><a href="APR_memory_allocation.html#apr_pool_t-allocation_list">    void *allocation_list</a>
  +	<li><a href="APR_memory_allocation.html#apr_pool_t-apr_hash_t">apr_hash_t *prog_data </a>
   	<li><a href="APR_memory_allocation.html#apr_pool_t-apr_pool_t">apr_pool_t *joined </a>
  -	<li><a href="APR_memory_allocation.html#apr_pool_t-datastruct">datastruct *prog_data </a>
   	<li><a href="APR_memory_allocation.html#apr_pool_t-first">    union block_hdr *first</a>
   	<li><a href="APR_memory_allocation.html#apr_pool_t-free_first_avail">    char *free_first_avail</a>
   	<li><a href="APR_memory_allocation.html#apr_pool_t-int">int apr_abort(int retcode) </a>
  @@ -71,19 +65,19 @@
   <p><dl>
   </dl></dl>
   
  -  <a name="apr_pool_t"></a>
  +  <a name="apr_hash_t"></a>
       <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_pool_t *joined ;</b>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_t *prog_data ;</b>
   <dd>
  -a list of joined pools
  +A place to hold user data associated with this pool
   <p><dl>
   </dl></dl>
   
  -  <a name="datastruct"></a>
  +  <a name="apr_pool_t"></a>
       <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>datastruct *prog_data ;</b>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_pool_t *joined ;</b>
   <dd>
  -A place to hand user data associated with this pool
  +a list of joined pools
   <p><dl>
   </dl></dl>
   
  @@ -131,7 +125,7 @@
         <th align=center colspan=2>
         </th>
       </tr>
  - <tr><th width=20% align=right>Source:</th><td>./include/apr_general.h</td></tr></tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_pools.h</td></tr></tr>
   </table>
   <p>
   The parent pool of this pool<hr size="4">
  @@ -142,7 +136,7 @@
         <th align=center colspan=2>
         </th>
       </tr>
  - <tr><th width=20% align=right>Source:</th><td>./include/apr_general.h</td></tr></tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_pools.h</td></tr></tr>
   </table>
   <p>
   The list of cleanups to run on pool cleanup.<hr size="4">
  @@ -153,49 +147,10 @@
         <th align=center colspan=2>
         </th>
       </tr>
  - <tr><th width=20% align=right>Source:</th><td>./include/apr_general.h</td></tr></tr>
  -</table>
  -<p>
  -A list of processes to kill when this pool is cleared<hr size="4">
  -  <a name="process_chain"></a>
  -  <h1>struct process_chain</h1>
  -  <table bgcolor="ffffff" border="0" cellspacing="4">
  -    <tr>
  -      <th align=center colspan=2>
  -      </th>
  -    </tr>
    <tr><th width=20% align=right>Source:</th><td>./include/apr_pools.h</td></tr></tr>
   </table>
   <p>
  -A list of processes<h2>Member Index</h2>
  -<ul><li><a href="APR_memory_allocation.html#process_chain-pid">    apr_proc_t *pid</a>
  -	<li><a href="APR_memory_allocation.html#process_chain-process_chain">process_chain *next </a>
  -	</ul><h2>Class Variables</h2>
  -<blockquote>
  -
  -  <a name="pid"></a>
  -    <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>    apr_proc_t *pid;</b>
  -<dd>
  -The process ID
  -<p><dl>
  -</dl></dl>
  -
  -  <a name="process_chain"></a>
  -    <dl><dt>
  -	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>process_chain *next ;</b>
  -<dd>
  -When the process should be sent a signal. <PRE>
  -          kill_never   -- process is never sent any signals
  -          kill_always  -- process is sent SIGKILL on apr_pool_t cleanup
  -          kill_after_timeout -- SIGTERM, wait 3 seconds, SIGKILL
  -          just_wait    -- wait forever for the process to complete
  -          kill_only_once -- send SIGTERM and then wait </PRE>
  -     The next process in the list
  -<p><dl>
  -</dl></dl>
  -</blockquote>
  -<h2>Global Functions</h2>
  +A list of processes to kill when this pool is cleared<h2>Global Functions</h2>
     <blockquote>
   
   <a name="apr_create_pool"></a>
  @@ -251,16 +206,6 @@
   <p><dl>
   </dl></dl>
   
  -<a name="apr_initialize"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_initialize(void);</b>
  -  <dd>
  -Setup any APR internal data structures.  This MUST be the first function 
  -called for any APR program.
  -<p><dl>
  -</dl></dl>
  -
   <a name="apr_pool_t"></a>
   <dl>
     <dt>
  @@ -268,8 +213,7 @@
     <dd>
   make a sub pool from the current pool
   <p><img src="../images//tip.gif"> The apr_abort function provides a way to quit the program if the
  -     machine is out of memory.  By default, APR will return with an
  -     error.
  +     machine is out of memory.  By default, APR will return on error.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -283,21 +227,6 @@
     <dt><b>Return Value</b>
     <dd>The new sub-pool<p></dl></dl>
   
  -<a name="apr_set_abort"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont);</b>
  -  <dd>
  -Set the APR_ABORT function.
  -<p><img src="../images//tip.gif"> This is in for backwards compatability.  If the program using
  -     APR wants APR to exit on a memory allocation error, then this
  -     function should be called to set the function to use in order
  -     to actually exit the program.  If this function is not called,
  -     then APR will return an error and expect the calling program to
  -     deal with the error accordingly.
  -<p><dl>
  -</dl></dl>
  -
   <a name="apr_set_userdata"></a>
   <dl>
     <dt>
  @@ -391,27 +320,6 @@
   </table>
     </dl></dl>
   
  -<a name="apr_strerror"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>char *apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize);</b>
  -  <dd>
  -Return a human readable string describing the specified error.
  -<p><dl>
  -
  -  <dt><b>Parameters</b><dd>
  -	<table width="85%">
  -<tr valign=top><th align=right>
  -	statcode</th><td>The error code the get a string for.
  -</td></tr>
  -<tr valign=top><th align=right>
  -	buf</th><td>A buffer to hold the error string.
  -</td></tr>
  -<tr valign=top><th align=right>
  -	bufsize</th><td>Size of the buffer to hold the string.</td></tr>
  -</table>
  -  </dl></dl>
  -
   <a name="apr_term_alloc"></a>
   <dl>
     <dt>
  @@ -423,18 +331,6 @@
   <p><dl>
   </dl></dl>
   
  -<a name="apr_terminate"></a>
  -<dl>
  -  <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_terminate(void);</b>
  -  <dd>
  -Tear down any APR internal data structures which aren't torn down 
  -automatically.
  -<p><img src="../images//tip.gif"> An APR program must call this function at termination once it 
  -     has stopped using APR services.
  -<p><dl>
  -</dl></dl>
  -
   <a name="int-6"></a>
   <dl>
     <dt>
  @@ -458,27 +354,6 @@
   <a name="void-10"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_kill_cleanup(apr_pool_t *p, const void *data, apr_status_t (*cleanup) (void *));</b>
  -  <dd>
  -remove a previously registered cleanup function
  -<p><dl>
  -
  -  <dt><b>Parameters</b><dd>
  -	<table width="85%">
  -<tr valign=top><th align=right>
  -	p</th><td>The pool remove the cleanup from
  -</td></tr>
  -<tr valign=top><th align=right>
  -	data</th><td>The data to remove from cleanup
  -</td></tr>
  -<tr valign=top><th align=right>
  -	cleanup</th><td>The function to remove from cleanup</td></tr>
  -</table>
  -  </dl></dl>
  -
  -<a name="void-11"></a>
  -<dl>
  -  <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_cleanup_for_exec(void);</b>
     <dd>
   Run all of the child_cleanups, so that any unnecessary files are 
  @@ -486,7 +361,7 @@
   <p><dl>
   </dl></dl>
   
  -<a name="void-5"></a>
  +<a name="void-4"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_clear_pool(apr_pool_t *p);</b>
  @@ -503,7 +378,7 @@
   </table>
     </dl></dl>
   
  -<a name="void-6"></a>
  +<a name="void-5"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_destroy_pool(apr_pool_t *p);</b>
  @@ -519,7 +394,7 @@
   </table>
     </dl></dl>
   
  -<a name="void-7"></a>
  +<a name="void-6"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void *apr_palloc(apr_pool_t *c, apr_size_t reqsize);</b>
  @@ -538,7 +413,7 @@
     <dt><b>Return Value</b>
     <dd>The allocated memory<p></dl></dl>
   
  -<a name="void-8"></a>
  +<a name="void-7"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void *apr_pcalloc(apr_pool_t *p, apr_size_t size);</b>
  @@ -557,7 +432,7 @@
     <dt><b>Return Value</b>
     <dd>The allocated memory<p></dl></dl>
   
  -<a name="void-9"></a>
  +<a name="void-8"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_register_cleanup(apr_pool_t *p, const void *data, apr_status_t (*plain_cleanup) (void *), apr_status_t (*child_cleanup) (void *));</b>
  @@ -581,12 +456,33 @@
   	child_cleanup</th><td>The function to call when a child process is created</td></tr>
   </table>
     </dl></dl>
  +
  +<a name="void-9"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>void apr_kill_cleanup(apr_pool_t *p, const void *data, apr_status_t (*cleanup) (void *));</b>
  +  <dd>
  +remove a previously registered cleanup function
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	p</th><td>The pool remove the cleanup from
  +</td></tr>
  +<tr valign=top><th align=right>
  +	data</th><td>The data to remove from cleanup
  +</td></tr>
  +<tr valign=top><th align=right>
  +	cleanup</th><td>The function to remove from cleanup</td></tr>
  +</table>
  +  </dl></dl>
   </blockquote>
   
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +43 -2     apr-site/docs/APR_portability_Routines.html
  
  Index: APR_portability_Routines.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_portability_Routines.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_portability_Routines.html	2000/11/18 03:40:40	1.2
  +++ APR_portability_Routines.html	2000/12/04 18:14:04	1.3
  @@ -10,9 +10,25 @@
   
     <h2>Package Name: APR portability Routines</h2>
     <b>
  +<h3><img src="../images/ball1.gif" width=18 height=17 align=texttop>
  +  <a href="APR_portability_Routines.html#apr_os_sock_info_t">struct apr_os_sock_info_t</h3></a>
  +  <ul>
  +</ul>
   
   </b>
  -<h2>Global Functions</h2>
  +<hr size="4">
  +  <a name="apr_os_sock_info_t"></a>
  +  <h1>struct apr_os_sock_info_t</h1>
  +  <table bgcolor="ffffff" border="0" cellspacing="4">
  +    <tr>
  +      <th align=center colspan=2>
  +      </th>
  +    </tr>
  + <tr><th width=20% align=right>Source:</th><td>./include/apr_portable.h</td></tr></tr>
  +</table>
  +<p>
  +everything APR needs to know about an active socket to construct
  +an APR socket from it; currently, this is platform-independent<h2>Global Functions</h2>
     <blockquote>
   
   <a name="apr_get_os_dir"></a>
  @@ -161,6 +177,31 @@
   </table>
     </dl></dl>
   
  +<a name="apr_make_os_sock"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_status_t apr_make_os_sock(apr_socket_t **apr_sock, apr_os_sock_info_t *os_sock_info, apr_pool_t *cont);</b>
  +  <dd>
  +Create a socket from an existing descriptor and local and remote
  +socket addresses.
  +<p><img src="../images//tip.gif"> If you only know the descriptor/handle or if it isn't really
  +     a true socket, use apr_put_os_sock() instead.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	apr_sock</th><td>The new socket that has been set up
  +</td></tr>
  +<tr valign=top><th align=right>
  +	os_sock_info</th><td>The os representation of the socket handle and
  +       other characteristics of the socket
  +</td></tr>
  +<tr valign=top><th align=right>
  +	cont</th><td>The pool to use</td></tr>
  +</table>
  +  </dl></dl>
  +
   <a name="apr_put_os_dir"></a>
   <dl>
     <dt>
  @@ -335,7 +376,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +3 -3      apr-site/docs/APR_strings_library.html
  
  Index: APR_strings_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/APR_strings_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- APR_strings_library.html	2000/11/18 03:40:40	1.2
  +++ APR_strings_library.html	2000/12/04 18:14:04	1.3
  @@ -70,10 +70,10 @@
     <dt><b>Parameters</b><dd>
   	<table width="85%">
   <tr valign=top><th align=right>
  -	The</th><td>first string to compare
  +	a</th><td>The first string to compare
   </td></tr>
   <tr valign=top><th align=right>
  -	The</th><td>second string to compare</td></tr>
  +	b</th><td>The second string to compare</td></tr>
   </table>
     <dt><b>Return Value</b>
     <dd>Either <0, 0, or >0.  If the first string is less than the second
  @@ -237,7 +237,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +21 -2     apr-site/docs/Dynamic_Object_Handling.html
  
  Index: Dynamic_Object_Handling.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/Dynamic_Object_Handling.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Dynamic_Object_Handling.html	2000/11/18 03:40:40	1.2
  +++ Dynamic_Object_Handling.html	2000/12/04 18:14:04	1.3
  @@ -12,6 +12,25 @@
     <b>
   
   </b>
  +<h2>Global Variables</h2>
  +  <blockquote>
  +
  +  <a name="apr_dso_handle_sym_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_dso_handle_sym_t ;</b>
  +<dd>
  +Structure for referencing symbols from dynamic objects
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_dso_handle_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_dso_handle_t ;</b>
  +<dd>
  +Structure for referencing dynamic objects
  +<p><dl>
  +</dl></dl>
  +</blockquote>
   <h2>Global Functions</h2>
     <blockquote>
   
  @@ -71,7 +90,7 @@
   	ressym</th><td>Location to store the loaded symbol
   </td></tr>
   <tr valign=top><th align=right>
  -	handle</th><td>handle to load from.
  +	handle</th><td>handle to load the symbol from.
   </td></tr>
   <tr valign=top><th align=right>
   	symname</th><td>Name of the symbol to load.</td></tr>
  @@ -97,7 +116,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +24 -2     apr-site/docs/Error_Codes.html
  
  Index: Error_Codes.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/Error_Codes.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Error_Codes.html	2000/11/18 03:40:40	1.2
  +++ Error_Codes.html	2000/12/04 18:14:04	1.3
  @@ -20,7 +20,8 @@
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>int apr_canonical_error(apr_status_t err);</b>
     <dd>
  -Convert an APR error to a canonical error
  +Type for specifying an error or status code.
  + Convert an APR error to a canonical error
   <p><img src="../images//tip.gif"> see apr/APRDesgin for an explanation of why this is necessary.
   <p><dl>
   
  @@ -31,12 +32,33 @@
   </table>
     <dt><b>Return Value</b>
     <dd>The canonical error value<p></dl></dl>
  +
  +<a name="apr_strerror"></a>
  +<dl>
  +  <dt>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>char *apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize);</b>
  +  <dd>
  +Return a human readable string describing the specified error.
  +<p><dl>
  +
  +  <dt><b>Parameters</b><dd>
  +	<table width="85%">
  +<tr valign=top><th align=right>
  +	statcode</th><td>The error code the get a string for.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	buf</th><td>A buffer to hold the error string.
  +</td></tr>
  +<tr valign=top><th align=right>
  +	bufsize</th><td>Size of the buffer to hold the string.</td></tr>
  +</table>
  +  </dl></dl>
   </blockquote>
   
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +5 -5      apr-site/docs/Fnmatch_functions.html
  
  Index: Fnmatch_functions.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/Fnmatch_functions.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Fnmatch_functions.html	2000/11/18 03:40:40	1.2
  +++ Fnmatch_functions.html	2000/12/04 18:14:04	1.3
  @@ -34,10 +34,10 @@
   <tr valign=top><th align=right>
   	flags</th><td>flags to use in the match.  Bitwise OR of:
   <PRE>
  -             FNM_NOESCAPE   --  Disable backslash escaping
  -             FNM_PATHNAME   --  Slash must be matched by slash
  -             FNM_PERIOD     --  Period must be matched by period
  -             FNM_CASE_BLIND --  Compare characters case-insensitively.
  +             FNM_NOESCAPE       Disable backslash escaping
  +             FNM_PATHNAME       Slash must be matched by slash
  +             FNM_PERIOD         Period must be matched by period
  +             FNM_CASE_BLIND     Compare characters case-insensitively.
   </PRE></td></tr>
   </table>
     </dl></dl>
  @@ -62,7 +62,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +1 -1      apr-site/docs/General.html
  
  Index: General.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/General.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- General.html	2000/11/18 03:40:40	1.2
  +++ General.html	2000/12/04 18:14:04	1.3
  @@ -68,7 +68,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +28 -9     apr-site/docs/Hash_Tables.html
  
  Index: Hash_Tables.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/Hash_Tables.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Hash_Tables.html	2000/11/18 03:40:40	1.2
  +++ Hash_Tables.html	2000/12/04 18:14:04	1.3
  @@ -12,13 +12,32 @@
     <b>
   
   </b>
  +<h2>Global Variables</h2>
  +  <blockquote>
  +
  +  <a name="apr_hash_index_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_index_t ;</b>
  +<dd>
  +Abstract type for scanning hash tables.
  +<p><dl>
  +</dl></dl>
  +
  +  <a name="apr_hash_t"></a>
  +    <dl><dt>
  +	<b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_t ;</b>
  +<dd>
  +Abstract type for hash tables.
  +<p><dl>
  +</dl></dl>
  +</blockquote>
   <h2>Global Functions</h2>
     <blockquote>
   
  -<a name="apr_hash_index_t"></a>
  +<a name="apr_hash_index_t-2"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_index_t * apr_hash_first(apr_hash_t *ht);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_index_t *apr_hash_first(apr_hash_t *ht);</b>
     <dd>
   Start iterating over the entries in a hash table.
   <p><img src="../images//tip.gif"> Example:
  @@ -49,10 +68,10 @@
     <dt><b>Return Value</b>
     <dd>a pointer to the iteration state, or NULL if there are no entries.<p></dl></dl>
   
  -<a name="apr_hash_index_t-2"></a>
  +<a name="apr_hash_index_t-3"></a>
   <dl>
     <dt>
  -   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_index_t * apr_hash_next(apr_hash_index_t *hi);</b>
  +   <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_index_t *apr_hash_next(apr_hash_index_t *hi);</b>
     <dd>
   Continue iterating over the entries in a hash table.
   <p><dl>
  @@ -65,12 +84,12 @@
     <dt><b>Return Value</b>
     <dd>a pointer to the updated iteration state.  NULL if there are no more  *         entries.<p></dl></dl>
   
  -<a name="apr_hash_t"></a>
  +<a name="apr_hash_t-2"></a>
   <dl>
     <dt>
      <b><img src="../images/ball2.gif" width=19 height=17 align=texttop>apr_hash_t *apr_make_hash(apr_pool_t *pool);</b>
     <dd>
  -Create a hash table within a pool.
  +Create a hash table.
   <p><dl>
   
     <dt><b>Parameters</b><dd>
  @@ -99,7 +118,7 @@
   	key</th><td>Pointer to the key
   </td></tr>
   <tr valign=top><th align=right>
  -	klen</th><td>Length of the key. Can be APR_HASH_KEY_STRING.
  +	klen</th><td>Length of the key. Can be APR_HASH_KEY_STRING to use the string length.
   </td></tr>
   <tr valign=top><th align=right>
   	val</th><td>Value to associate with the key</td></tr>
  @@ -123,7 +142,7 @@
   	key</th><td>Pointer to the key
   </td></tr>
   <tr valign=top><th align=right>
  -	klen</th><td>Length of the key. Can be APR_HASH_KEY_STRING.</td></tr>
  +	klen</th><td>Length of the key. Can be APR_HASH_KEY_STRING to use the string length.</td></tr>
   </table>
     <dt><b>Return Value</b>
     <dd>Returns NULL if the key is not present.<p></dl></dl>
  @@ -158,7 +177,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +1 -1      apr-site/docs/Shared_Memory_library.html
  
  Index: Shared_Memory_library.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/Shared_Memory_library.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Shared_Memory_library.html	2000/11/18 03:40:40	1.2
  +++ Shared_Memory_library.html	2000/12/04 18:14:05	1.3
  @@ -195,7 +195,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +89 -33    apr-site/docs/master.html
  
  Index: master.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/master.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- master.html	2000/11/18 03:45:46	1.2
  +++ master.html	2000/12/04 18:14:05	1.3
  @@ -3,6 +3,7 @@
       <title>Master Index</title>
     </head>
     <body bgcolor="#FFFFFF" text=#0000ff link=#0020ff vlink=#0020ff>
  +    <center><img src="../images/ScanDocSmall.jpg" border="0" /></center>
       <p>
       <a href="packages.html" target="Documentation">Master Index</a>
       </p>
  @@ -18,32 +19,45 @@
   </dir><a href="APR_File_handling.html" target="Documentation"><b>APR File handling</b></a><br>
     <dir>
   <li><a href="APR_File_handling.html#apr_finfo_t" target="Documentation">struct apr_finfo_t</a>
  +<li><a href="APR_File_handling.html#apr_canon_t" target="Documentation">apr_canon_t </a>
   <li><a href="APR_File_handling.html#apr_close" target="Documentation">apr_status_t apr_close(apr_file_t *file)</a>
   <li><a href="APR_File_handling.html#apr_closedir" target="Documentation">apr_status_t apr_closedir(apr_dir_t *thedir)</a>
  +<li><a href="APR_File_handling.html#apr_count_canonical_elements" target="Documentation">int apr_count_canonical_elements(const apr_canon_t *trusted_name)</a>
   <li><a href="APR_File_handling.html#apr_create_namedpipe" target="Documentation">apr_status_t apr_create_namedpipe(const char *filename, apr_fileperms_t perm, apr_pool_t *cont)</a>
   <li><a href="APR_File_handling.html#apr_create_pipe" target="Documentation">apr_status_t apr_create_pipe(apr_file_t **in, apr_file_t **out, apr_pool_t *cont)</a>
  +<li><a href="APR_File_handling.html#apr_dev_t" target="Documentation">apr_dev_t </a>
   <li><a href="APR_File_handling.html#apr_dir_entry_ftype" target="Documentation">apr_status_t apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t *thedir)</a>
   <li><a href="APR_File_handling.html#apr_dir_entry_mtime" target="Documentation">apr_status_t apr_dir_entry_mtime(apr_time_t *mtime, apr_dir_t *thedir)</a>
   <li><a href="APR_File_handling.html#apr_dir_entry_size" target="Documentation">apr_status_t apr_dir_entry_size(apr_size_t *size, apr_dir_t *thedir)</a>
  +<li><a href="APR_File_handling.html#apr_dir_t" target="Documentation">apr_dir_t </a>
   <li><a href="APR_File_handling.html#apr_dupfile" target="Documentation">apr_status_t apr_dupfile(apr_file_t **new_file, apr_file_t *old_file, apr_pool_t *p)</a>
   <li><a href="APR_File_handling.html#apr_eof" target="Documentation">apr_status_t apr_eof(apr_file_t *fptr)</a>
   <li><a href="APR_File_handling.html#apr_ferror" target="Documentation">apr_status_t apr_ferror(apr_file_t *fptr)</a>
   <li><a href="APR_File_handling.html#apr_fgets" target="Documentation">apr_status_t apr_fgets(char *str, int len, apr_file_t *thefile)</a>
  +<li><a href="APR_File_handling.html#apr_file_t" target="Documentation">apr_file_t </a>
  +<li><a href="APR_File_handling.html#apr_fileperms_t" target="Documentation">apr_fileperms_t </a>
   <li><a href="APR_File_handling.html#apr_flush" target="Documentation">apr_status_t apr_flush(apr_file_t *thefile)</a>
   <li><a href="APR_File_handling.html#apr_full_read" target="Documentation">apr_status_t apr_full_read(apr_file_t *thefile, void *buf, apr_size_t nbytes, apr_size_t *bytes_read)</a>
   <li><a href="APR_File_handling.html#apr_full_write" target="Documentation">apr_status_t apr_full_write(apr_file_t *thefile, const void *buf, apr_size_t nbytes, apr_size_t *bytes_written)</a>
  +<li><a href="APR_File_handling.html#apr_get_canonical_elements" target="Documentation">apr_status_t apr_get_canonical_elements(char **path_elements, const apr_canon_t *trusted_name, int firstelement, int lastelement, apr_pool_t *pool)</a>
  +<li><a href="APR_File_handling.html#apr_get_canonical_elements_length" target="Documentation">int apr_get_canonical_elements_length(const apr_canon_t *trusted_name, int firstelement, int lastelement)</a>
  +<li><a href="APR_File_handling.html#apr_get_canonical_name" target="Documentation">apr_status_t apr_get_canonical_name(char **path, const apr_canon_t *trusted_name, apr_pool_t *pool)</a>
   <li><a href="APR_File_handling.html#apr_get_dir_filename" target="Documentation">apr_status_t apr_get_dir_filename(char **new_path, apr_dir_t *thedir)</a>
   <li><a href="APR_File_handling.html#apr_get_filedata" target="Documentation">apr_status_t apr_get_filedata(void **data, const char *key, apr_file_t *file)</a>
   <li><a href="APR_File_handling.html#apr_get_filename" target="Documentation">apr_status_t apr_get_filename(char **new_path, apr_file_t *thefile)</a>
   <li><a href="APR_File_handling.html#apr_get_pipe_timeout" target="Documentation">apr_status_t apr_get_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t *timeout)</a>
   <li><a href="APR_File_handling.html#apr_getc" target="Documentation">apr_status_t apr_getc(char *ch, apr_file_t *thefile)</a>
   <li><a href="APR_File_handling.html#apr_getfileinfo" target="Documentation">apr_status_t apr_getfileinfo(apr_finfo_t *finfo, apr_file_t *thefile)</a>
  +<li><a href="APR_File_handling.html#apr_gid_t" target="Documentation">apr_gid_t </a>
  +<li><a href="APR_File_handling.html#apr_ino_t" target="Documentation">apr_ino_t </a>
   <li><a href="APR_File_handling.html#apr_is_absolute" target="Documentation">apr_status_t apr_is_absolute(apr_canon_t **path)</a>
   <li><a href="APR_File_handling.html#apr_is_relative" target="Documentation">apr_status_t apr_is_relative(apr_canon_t **path)</a>
   <li><a href="APR_File_handling.html#apr_is_virtualroot" target="Documentation">apr_status_t apr_is_virtualroot(apr_canon_t **path, int elements)</a>
  +<li><a href="APR_File_handling.html#apr_lock_file" target="Documentation">apr_status_t apr_lock_file(apr_file_t *thefile, int type)</a>
   <li><a href="APR_File_handling.html#apr_lstat" target="Documentation">apr_status_t apr_lstat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)</a>
   <li><a href="APR_File_handling.html#apr_make_canonical_name" target="Documentation">apr_status_t apr_make_canonical_name(apr_canon_t **new_name, const apr_canon_t *trusted_name, const char *child_name, int options, apr_pool_t *pool)</a>
   <li><a href="APR_File_handling.html#apr_make_dir" target="Documentation">apr_status_t apr_make_dir(const char *path, apr_fileperms_t perm, apr_pool_t *cont)</a>
  +<li><a href="APR_File_handling.html#apr_merge_canonical_name" target="Documentation">apr_status_t apr_merge_canonical_name(apr_canon_t **new_name, const apr_canon_t *trusted_name, const apr_canon_t *child_name, int options, apr_pool_t *pool)</a>
   <li><a href="APR_File_handling.html#apr_open" target="Documentation">apr_status_t apr_open(apr_file_t **new_file, const char *fname, apr_int32_t flag, apr_fileperms_t perm, apr_pool_t *cont)</a>
   <li><a href="APR_File_handling.html#apr_open_stderr" target="Documentation">apr_status_t apr_open_stderr(apr_file_t **thefile, apr_pool_t *cont)</a>
   <li><a href="APR_File_handling.html#apr_opendir" target="Documentation">apr_status_t apr_opendir(apr_dir_t **new_dir, const char *dirname, apr_pool_t *cont)</a>
  @@ -60,10 +74,14 @@
   <li><a href="APR_File_handling.html#apr_set_pipe_timeout" target="Documentation">apr_status_t apr_set_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t timeout)</a>
   <li><a href="APR_File_handling.html#apr_setfileperms" target="Documentation">apr_status_t apr_setfileperms(const char *fname, apr_fileperms_t perms)</a>
   <li><a href="APR_File_handling.html#apr_stat" target="Documentation">apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)</a>
  +<li><a href="APR_File_handling.html#apr_uid_t" target="Documentation">apr_uid_t </a>
   <li><a href="APR_File_handling.html#apr_ungetc" target="Documentation">apr_status_t apr_ungetc(char ch, apr_file_t *thefile)</a>
  +<li><a href="APR_File_handling.html#apr_unlock_file" target="Documentation">apr_status_t apr_unlock_file(apr_file_t *thefile)</a>
   <li><a href="APR_File_handling.html#apr_write" target="Documentation">apr_status_t apr_write(apr_file_t *thefile, const void *buf, apr_size_t *nbytes)</a>
   <li><a href="APR_File_handling.html#apr_writev" target="Documentation">apr_status_t apr_writev(apr_file_t *thefile, const struct iovec *vec, apr_size_t nvec, apr_size_t *nbytes)</a>
   <li><a href="APR_File_handling.html#int" target="Documentation">int apr_fprintf(apr_file_t *fptr, const char *format, ...)</a>
  +<li><a href="APR_File_handling.html#time" target="Documentation">                                           or thread can hold a shared lock
  +                                           at any given time</a>
   </dir><a href="APR_I18N_translation_library.html" target="Documentation"><b>APR I18N translation library</b></a><br>
     <dir>
   <li><a href="APR_I18N_translation_library.html#apr_xlate_close" target="Documentation">apr_status_t apr_xlate_close(apr_xlate_t *convset)</a>
  @@ -89,26 +107,25 @@
   </dir><a href="APR_Network_library.html" target="Documentation"><b>APR Network library</b></a><br>
     <dir>
   <li><a href="APR_Network_library.html#apr_hdtr_t" target="Documentation">struct apr_hdtr_t</a>
  +<li><a href="APR_Network_library.html#apr_sockaddr_t" target="Documentation">struct apr_sockaddr_t</a>
   <li><a href="APR_Network_library.html#apr_accept" target="Documentation">apr_status_t apr_accept(apr_socket_t **new_sock, apr_socket_t *sock, apr_pool_t *connection_pool)</a>
  -<li><a href="APR_Network_library.html#apr_add_poll_socket" target="Documentation">apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, apr_socket_t *socket, apr_int16_t event)</a>
  -<li><a href="APR_Network_library.html#apr_bind" target="Documentation">apr_status_t apr_bind(apr_socket_t *sock)</a>
  +<li><a href="APR_Network_library.html#apr_add_poll_socket" target="Documentation">apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock, apr_int16_t event)</a>
  +<li><a href="APR_Network_library.html#apr_bind" target="Documentation">apr_status_t apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa)</a>
   <li><a href="APR_Network_library.html#apr_clear_poll_sockets" target="Documentation">apr_status_t apr_clear_poll_sockets(apr_pollfd_t *aprset, apr_int16_t events)</a>
   <li><a href="APR_Network_library.html#apr_close_socket" target="Documentation">apr_status_t apr_close_socket(apr_socket_t *thesocket)</a>
   <li><a href="APR_Network_library.html#apr_connect" target="Documentation">apr_status_t apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa)</a>
   <li><a href="APR_Network_library.html#apr_create_socket" target="Documentation">apr_status_t apr_create_socket(apr_socket_t **new_sock, int family, int type, apr_pool_t *cont)</a>
  -<li><a href="APR_Network_library.html#apr_create_tcp_socket" target="Documentation">apr_status_t apr_create_tcp_socket(apr_socket_t **new_sock, apr_pool_t *cont)</a>
   <li><a href="APR_Network_library.html#apr_get_hostname" target="Documentation">apr_status_t apr_get_hostname(char **name, apr_interface_e which, apr_socket_t *sock)</a>
   <li><a href="APR_Network_library.html#apr_get_inaddr" target="Documentation">apr_status_t apr_get_inaddr(apr_in_addr_t *addr, char *hostname)</a>
  -<li><a href="APR_Network_library.html#apr_get_ipaddr" target="Documentation">apr_status_t apr_get_ipaddr(char **addr, apr_interface_e which, apr_socket_t *sock)</a>
  -<li><a href="APR_Network_library.html#apr_get_local_name" target="Documentation">apr_status_t apr_get_local_name(struct sockaddr_in **name, apr_socket_t *sock)</a>
  +<li><a href="APR_Network_library.html#apr_get_ipaddr" target="Documentation">apr_status_t apr_get_ipaddr(char **addr, apr_sockaddr_t *sockaddr)</a>
   <li><a href="APR_Network_library.html#apr_get_polldata" target="Documentation">apr_status_t apr_get_polldata(apr_pollfd_t *pollfd, const char *key, void *data)</a>
  -<li><a href="APR_Network_library.html#apr_get_port" target="Documentation">apr_status_t apr_get_port(apr_port_t *port, apr_interface_e which, apr_socket_t *sock)</a>
  -<li><a href="APR_Network_library.html#apr_get_remote_name" target="Documentation">apr_status_t apr_get_remote_name(struct sockaddr_in **name, apr_socket_t *sock)</a>
  +<li><a href="APR_Network_library.html#apr_get_port" target="Documentation">apr_status_t apr_get_port(apr_port_t *port, apr_sockaddr_t *sockaddr)</a>
   <li><a href="APR_Network_library.html#apr_get_revents" target="Documentation">apr_status_t apr_get_revents(apr_int16_t *event, apr_socket_t *sock, apr_pollfd_t *aprset)</a>
  -<li><a href="APR_Network_library.html#apr_get_socket_inaddr" target="Documentation">apr_status_t apr_get_socket_inaddr(apr_in_addr_t *addr, apr_interface_e which, apr_socket_t *sock)</a>
  +<li><a href="APR_Network_library.html#apr_get_sockaddr" target="Documentation">apr_status_t apr_get_sockaddr(apr_sockaddr_t **sa, apr_interface_e which, apr_socket_t *sock)</a>
   <li><a href="APR_Network_library.html#apr_get_socketdata" target="Documentation">apr_status_t apr_get_socketdata(void **data, const char *key, apr_socket_t *sock)</a>
   <li><a href="APR_Network_library.html#apr_getaddrinfo" target="Documentation">apr_status_t apr_getaddrinfo(apr_sockaddr_t **sa, const char *hostname, apr_int32_t family, apr_port_t port, apr_int32_t flags, apr_pool_t *p)</a>
   <li><a href="APR_Network_library.html#apr_gethostname" target="Documentation">apr_status_t apr_gethostname(char *buf, int len, apr_pool_t *cont)</a>
  +<li><a href="APR_Network_library.html#apr_getservbyname" target="Documentation">apr_status_t apr_getservbyname(apr_sockaddr_t *sockaddr, const char *servname)</a>
   <li><a href="APR_Network_library.html#apr_getsocketopt" target="Documentation">apr_status_t apr_getsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t* on)</a>
   <li><a href="APR_Network_library.html#apr_listen" target="Documentation">apr_status_t apr_listen(apr_socket_t *sock, apr_int32_t backlog)</a>
   <li><a href="APR_Network_library.html#apr_mask_poll_socket" target="Documentation">apr_status_t apr_mask_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock, apr_int16_t events)</a>
  @@ -118,9 +135,9 @@
   <li><a href="APR_Network_library.html#apr_send" target="Documentation">apr_status_t apr_send(apr_socket_t *sock, const char *buf, apr_size_t *len)</a>
   <li><a href="APR_Network_library.html#apr_sendfile" target="Documentation">apr_status_t apr_sendfile(apr_socket_t *sock, apr_file_t *file, apr_hdtr_t *hdtr, apr_off_t *offset, apr_size_t *len, apr_int32_t flags)</a>
   <li><a href="APR_Network_library.html#apr_sendv" target="Documentation">apr_status_t apr_sendv(apr_socket_t *sock, const struct iovec *vec, apr_int32_t nvec, apr_size_t *len)</a>
  -<li><a href="APR_Network_library.html#apr_set_ipaddr" target="Documentation">apr_status_t apr_set_ipaddr(apr_socket_t *sock, apr_interface_e which, const char *addr)</a>
  +<li><a href="APR_Network_library.html#apr_set_ipaddr" target="Documentation">apr_status_t apr_set_ipaddr(apr_sockaddr_t *sockaddr, const char *addr)</a>
   <li><a href="APR_Network_library.html#apr_set_polldata" target="Documentation">apr_status_t apr_set_polldata(apr_pollfd_t *pollfd, void *data, const char *key, apr_status_t (*cleanup) (void *))</a>
  -<li><a href="APR_Network_library.html#apr_set_port" target="Documentation">apr_status_t apr_set_port(apr_socket_t *sock, apr_interface_e which, apr_port_t port)</a>
  +<li><a href="APR_Network_library.html#apr_set_port" target="Documentation">apr_status_t apr_set_port(apr_sockaddr_t *sockaddr, apr_port_t port)</a>
   <li><a href="APR_Network_library.html#apr_set_socketdata" target="Documentation">apr_status_t apr_set_socketdata(apr_socket_t *sock, void *data, const char *key, apr_status_t (*cleanup) (void*))</a>
   <li><a href="APR_Network_library.html#apr_setsocketopt" target="Documentation">apr_status_t apr_setsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t on)</a>
   <li><a href="APR_Network_library.html#apr_setup_poll" target="Documentation">apr_status_t apr_setup_poll(apr_pollfd_t **new_poll, apr_int32_t num, apr_pool_t *cont)</a>
  @@ -129,7 +146,7 @@
   </dir><a href="APR_Process_library.html" target="Documentation"><b>APR Process library</b></a><br>
     <dir>
   <li><a href="APR_Process_library.html#apr_check_other_child" target="Documentation">void apr_check_other_child(void)</a>
  -<li><a href="APR_Process_library.html#apr_create_process" target="Documentation">apr_status_t apr_create_process(apr_proc_t *new_proc, const char *progname, char *const *args, char **env, apr_procattr_t *attr, apr_pool_t *cont)</a>
  +<li><a href="APR_Process_library.html#apr_create_process" target="Documentation">apr_status_t apr_create_process(apr_proc_t *new_proc, const char *progname, const char * const *args, const char * const *env, apr_procattr_t *attr, apr_pool_t *cont)</a>
   <li><a href="APR_Process_library.html#apr_createprocattr_init" target="Documentation">apr_status_t apr_createprocattr_init(apr_procattr_t **new_attr, apr_pool_t *cont)</a>
   <li><a href="APR_Process_library.html#apr_detach" target="Documentation">apr_status_t apr_detach(void)</a>
   <li><a href="APR_Process_library.html#apr_fork" target="Documentation">apr_status_t apr_fork(apr_proc_t *proc, apr_pool_t *cont)</a>
  @@ -148,9 +165,13 @@
   <li><a href="APR_Process_library.html#apr_unregister_other_child" target="Documentation">void apr_unregister_other_child(void *data)</a>
   <li><a href="APR_Process_library.html#apr_wait_all_procs" target="Documentation">apr_status_t apr_wait_all_procs(apr_proc_t *proc, apr_wait_t *status, apr_wait_how_e waithow, apr_pool_t *p)</a>
   <li><a href="APR_Process_library.html#apr_wait_proc" target="Documentation">apr_status_t apr_wait_proc(apr_proc_t *proc, apr_wait_how_e waithow)</a>
  +<li><a href="APR_Process_library.html#void-30" target="Documentation">void apr_note_subprocess(struct apr_pool_t *a, apr_proc_t *pid, enum kill_conditions how)</a>
   </dir><a href="APR_Random_Functions.html" target="Documentation"><b>APR Random Functions</b></a><br>
     <dir>
   <li><a href="APR_Random_Functions.html#apr_generate_random_bytes" target="Documentation">apr_status_t apr_generate_random_bytes(unsigned char * buf, int length)</a>
  +<li><a href="APR_Random_Functions.html#apr_initialize" target="Documentation">apr_status_t apr_initialize(void)</a>
  +<li><a href="APR_Random_Functions.html#apr_set_abort" target="Documentation">apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont)</a>
  +<li><a href="APR_Random_Functions.html#apr_terminate" target="Documentation">void apr_terminate(void)</a>
   </dir><a href="APR_Table_library.html" target="Documentation"><b>APR Table library</b></a><br>
     <dir>
   <li><a href="APR_Table_library.html#apr_array_header_t" target="Documentation">struct apr_array_header_t</a>
  @@ -158,10 +179,45 @@
   <li><a href="APR_Table_library.html#apr_btable_t" target="Documentation">struct apr_btable_t</a>
   <li><a href="APR_Table_library.html#apr_table_entry_t" target="Documentation">struct apr_table_entry_t</a>
   <li><a href="APR_Table_library.html#apr_table_t" target="Documentation">struct apr_table_t</a>
  +<li><a href="APR_Table_library.html#" target="Documentation">(apr_array_header_t *)</a>
  +<li><a href="APR_Table_library.html#apr_array_header_t" target="Documentation">apr_array_header_t *apr_table_elts(apr_table_t *t)</a>
  +<li><a href="APR_Table_library.html#apr_array_header_t-2" target="Documentation">apr_array_header_t *apr_table_elts(apr_table_t *t)</a>
  +<li><a href="APR_Table_library.html#apr_array_header_t-3" target="Documentation">apr_array_header_t *apr_copy_array(apr_pool_t *p, const apr_array_header_t *arr)</a>
  +<li><a href="APR_Table_library.html#apr_array_header_t-4" target="Documentation">apr_array_header_t *apr_copy_array_hdr(apr_pool_t *p, const apr_array_header_t *arr)</a>
  +<li><a href="APR_Table_library.html#apr_array_header_t-5" target="Documentation">apr_array_header_t *apr_append_arrays(apr_pool_t *p, const apr_array_header_t *first, const apr_array_header_t *second)</a>
  +<li><a href="APR_Table_library.html#apr_btable_t" target="Documentation">apr_btable_t *apr_overlay_tables(apr_pool_t *p, const apr_btable_t *overlay, const apr_btable_t *base);</a>
   <li><a href="APR_Table_library.html#apr_item_t" target="Documentation"> apr_item_t</a>
  +<li><a href="APR_Table_library.html#apr_table_t" target="Documentation">apr_table_t *apr_make_table(apr_pool_t *p, int nelts)</a>
  +<li><a href="APR_Table_library.html#apr_table_t-2" target="Documentation">apr_table_t *apr_make_btable(apr_pool_t *p, int nelts)</a>
  +<li><a href="APR_Table_library.html#apr_table_t-3" target="Documentation">apr_table_t *) apr_copy_table(apr_pool_t *p, const apr_table_t *t)</a>
  +<li><a href="APR_Table_library.html#apr_table_t-4" target="Documentation">apr_table_t *) apr_copy_btable(apr_pool_t *p, const apr_btable_t *t)</a>
  +<li><a href="APR_Table_library.html#apr_table_t-5" target="Documentation">apr_table_t *apr_overlay_tables(apr_pool_t *p, const apr_table_t *overlay, const apr_table_t *base);</a>
  +<li><a href="APR_Table_library.html#char-8" target="Documentation">char *apr_array_pstrcat(apr_pool_t *p, const apr_array_header_t *arr, const char sep)</a>
  +<li><a href="APR_Table_library.html#const-2" target="Documentation">const char *apr_table_get(const apr_table_t *t, const char *key)</a>
  +<li><a href="APR_Table_library.html#const-3" target="Documentation">const apr_item_t *apr_btable_get(const apr_btable_t *t, const char *key)</a>
  +<li><a href="APR_Table_library.html#void-11" target="Documentation">void *apr_push_array(apr_array_header_t *arr)</a>
  +<li><a href="APR_Table_library.html#void-12" target="Documentation">void apr_array_cat(apr_array_header_t *dst, const apr_array_header_t *src)</a>
  +<li><a href="APR_Table_library.html#void-13" target="Documentation">void apr_clear_table(apr_table_t *t)</a>
  +<li><a href="APR_Table_library.html#void-14" target="Documentation">void apr_clear_btable(apr_btable_t *t)</a>
  +<li><a href="APR_Table_library.html#void-15" target="Documentation">void apr_table_set(apr_table_t *t, const char *key, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-16" target="Documentation">void apr_btable_set(apr_btable_t *t, const char *key, size_t size, const void *val)</a>
  +<li><a href="APR_Table_library.html#void-17" target="Documentation">void apr_table_setn(apr_table_t *t, const char *key, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-18" target="Documentation">void apr_btable_setn(apr_btable_t *t, const char *key, size_t size, const void *val)</a>
  +<li><a href="APR_Table_library.html#void-19" target="Documentation">void apr_table_unset(apr_table_t *t, const char *key)</a>
  +<li><a href="APR_Table_library.html#void-20" target="Documentation">void apr_btable_unset(apr_btable_t *t, const char *key)</a>
  +<li><a href="APR_Table_library.html#void-21" target="Documentation">void apr_table_merge(apr_table_t *t, const char *key, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-22" target="Documentation">void apr_table_mergen(apr_table_t *t, const char *key, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-23" target="Documentation">void apr_table_add(apr_table_t *t, const char *key, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-24" target="Documentation">void apr_btable_add(apr_btable_t *t, const char *key, size_t size, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-25" target="Documentation">void apr_table_addn(apr_table_t *t, const char *key, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-26" target="Documentation">void apr_btable_addn(apr_btable_t *t, const char *key, size_t size, const char *val)</a>
  +<li><a href="APR_Table_library.html#void-27" target="Documentation">void apr_table_do(int (*comp) (void *, const char *, const char *), void *rec, const apr_table_t *t, ...)</a>
  +<li><a href="APR_Table_library.html#void-28" target="Documentation">void apr_table_vdo(int (*comp) (void *, const char *, const char *), void *rec, const apr_table_t *t, va_list vp)</a>
  +<li><a href="APR_Table_library.html#void-29" target="Documentation">void apr_overlap_tables(apr_table_t *a, const apr_table_t *b, unsigned flags)</a>
   </dir><a href="APR_Thread_library.html" target="Documentation"><b>APR Thread library</b></a><br>
     <dir>
   <li><a href="APR_Thread_library.html#apr_proc_t" target="Documentation">struct apr_proc_t</a>
  +<li><a href="APR_Thread_library.html#process_chain" target="Documentation">struct process_chain</a>
   <li><a href="APR_Thread_library.html#apr_create_thread" target="Documentation">apr_status_t apr_create_thread(apr_thread_t **new_thread, apr_threadattr_t *attr, apr_thread_start_t func, void *data, apr_pool_t *cont)</a>
   <li><a href="APR_Thread_library.html#apr_create_thread_private" target="Documentation">apr_status_t apr_create_thread_private(apr_threadkey_t **key, void (*dest)(void *), apr_pool_t *cont)</a>
   <li><a href="APR_Thread_library.html#apr_create_threadattr" target="Documentation">apr_status_t apr_create_threadattr(apr_threadattr_t **new_attr, apr_pool_t *cont)</a>
  @@ -192,26 +248,24 @@
   </dir><a href="APR_UUID_Handling.html" target="Documentation"><b>APR UUID Handling</b></a><br>
     <dir>
   <li><a href="APR_UUID_Handling.html#apr_status_t-15" target="Documentation">apr_status_t apr_parse_uuid(apr_uuid_t *uuid, const char *uuid_str)</a>
  -<li><a href="APR_UUID_Handling.html#void-12" target="Documentation">void apr_get_uuid(apr_uuid_t *uuid)</a>
  -<li><a href="APR_UUID_Handling.html#void-13" target="Documentation">void apr_format_uuid(apr_pool_t *p, const apr_uuid_t *uuid)</a>
  +<li><a href="APR_UUID_Handling.html#void-31" target="Documentation">void apr_get_uuid(apr_uuid_t *uuid)</a>
  +<li><a href="APR_UUID_Handling.html#void-32" target="Documentation">void apr_format_uuid(apr_pool_t *p, const apr_uuid_t *uuid)</a>
   </dir><a href="APR_command_arguments.html" target="Documentation"><b>APR command arguments</b></a><br>
     <dir>
  +<li><a href="APR_command_arguments.html#apr_getopt_option_t" target="Documentation">struct apr_getopt_option_t</a>
   <li><a href="APR_command_arguments.html#apr_getopt_t" target="Documentation">struct apr_getopt_t</a>
  -<li><a href="APR_command_arguments.html#apr_getopt_long_t-has_arg" target="Documentation">    int has_arg</a>
  -<li><a href="APR_command_arguments.html#apr_getopt_long_t-name" target="Documentation">    const char *name</a>
  -<li><a href="APR_command_arguments.html#apr_getopt_long_t-val" target="Documentation">    int val</a>
   <li><a href="APR_command_arguments.html#apr_status_t-2" target="Documentation">apr_status_t apr_initopt(apr_getopt_t **os, apr_pool_t *cont,int argc, char *const *argv)</a>
   <li><a href="APR_command_arguments.html#apr_status_t-3" target="Documentation">apr_status_t apr_getopt(apr_getopt_t *os, const char *opts, char *optch, const char **optarg)</a>
  -<li><a href="APR_command_arguments.html#apr_status_t-4" target="Documentation">apr_status_t apr_getopt_long(apr_getopt_t *os, const char *opts, const apr_getopt_long_t *longopts, int *optval, const char **optarg) </a>
  +<li><a href="APR_command_arguments.html#apr_status_t-4" target="Documentation">apr_status_t apr_getopt_long(apr_getopt_t *os, const apr_getopt_option_t *opts, int *optch, const char **optarg)</a>
   </dir><a href="APR_general-purpose_library.html" target="Documentation"><b>APR general-purpose library</b></a><br>
     <dir>
  +<li><a href="APR_general-purpose_library.html#apr_vformatter_buff_t" target="Documentation">struct apr_vformatter_buff_t</a>
   <li><a href="APR_general-purpose_library.html#apr_status_t-5" target="Documentation">apr_status_t apr_validate_password(const char *passwd, const char *hash)</a>
   <li><a href="APR_general-purpose_library.html#apr_status_t-6" target="Documentation">apr_status_t apr_getpass(const char *prompt, char *pwbuf, size_t *bufsize)</a>
   <li><a href="APR_general-purpose_library.html#const" target="Documentation">const char * apr_filename_of_pathname(const char *pathname)</a>
   <li><a href="APR_general-purpose_library.html#int-3" target="Documentation">int apr_vformatter(int (*flush_func)(apr_vformatter_buff_t *b), apr_vformatter_buff_t *c, const char *fmt, va_list ap)</a>
   <li><a href="APR_general-purpose_library.html#int-4" target="Documentation">int apr_snprintf(char *buf, size_t len, const char *format, ...)</a>
   <li><a href="APR_general-purpose_library.html#int-5" target="Documentation">int apr_vsnprintf(char *buf, size_t len, const char *format, va_list ap)</a>
  -<li><a href="APR_general-purpose_library.html#void-4" target="Documentation">void apr_note_subprocess(struct apr_pool_t *a, apr_proc_t *pid, enum kill_conditions how)</a>
   </dir><a href="APR_lock_library.html" target="Documentation"><b>APR lock library</b></a><br>
     <dir>
   <li><a href="APR_lock_library.html#apr_child_init_lock" target="Documentation">apr_status_t apr_child_init_lock(apr_lock_t **lock, const char *fname, apr_pool_t *cont)</a>
  @@ -227,31 +281,27 @@
   <li><a href="APR_memory_allocation.html#apr_pool_t-apr_pool_t" target="Documentation">struct apr_pool_t</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t-cleanup" target="Documentation">struct cleanup</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t-process_chain" target="Documentation">struct process_chain</a>
  -<li><a href="APR_memory_allocation.html#process_chain" target="Documentation">struct process_chain</a>
   <li><a href="APR_memory_allocation.html#apr_create_pool" target="Documentation">apr_status_t apr_create_pool(apr_pool_t **newcont, apr_pool_t *cont)</a>
   <li><a href="APR_memory_allocation.html#apr_get_userdata" target="Documentation">apr_status_t apr_get_userdata(void **data, const char *key, apr_pool_t *cont)</a>
   <li><a href="APR_memory_allocation.html#apr_init_alloc" target="Documentation">apr_status_t apr_init_alloc(void)</a>
  -<li><a href="APR_memory_allocation.html#apr_initialize" target="Documentation">apr_status_t apr_initialize(void)</a>
   <li><a href="APR_memory_allocation.html#apr_pool_t" target="Documentation">apr_pool_t *apr_make_sub_pool(apr_pool_t *p, int (*apr_abort)(int retcode))</a>
  -<li><a href="APR_memory_allocation.html#apr_set_abort" target="Documentation">apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont)</a>
   <li><a href="APR_memory_allocation.html#apr_set_userdata" target="Documentation">apr_status_t apr_set_userdata(const void *data, const char *key, apr_status_t (*cleanup) (void *), apr_pool_t *cont)</a>
   <li><a href="APR_memory_allocation.html#apr_size_t" target="Documentation">apr_size_t apr_bytes_in_pool(apr_pool_t *p)</a>
   <li><a href="APR_memory_allocation.html#apr_size_t-2" target="Documentation">apr_size_t apr_bytes_in_free_blocks(void)</a>
   <li><a href="APR_memory_allocation.html#apr_status_t-12" target="Documentation">apr_status_t apr_run_cleanup(apr_pool_t *p, void *data, apr_status_t (*cleanup) (void *))</a>
   <li><a href="APR_memory_allocation.html#apr_status_t-13" target="Documentation">apr_status_t apr_null_cleanup(void *data)</a>
  -<li><a href="APR_memory_allocation.html#apr_strerror" target="Documentation">char *apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize)</a>
   <li><a href="APR_memory_allocation.html#apr_term_alloc" target="Documentation">void apr_term_alloc(void)</a>
  -<li><a href="APR_memory_allocation.html#apr_terminate" target="Documentation">void apr_terminate(void)</a>
   <li><a href="APR_memory_allocation.html#int-6" target="Documentation">int apr_pool_is_ancestor(apr_pool_t *a, apr_pool_t *b)</a>
  -<li><a href="APR_memory_allocation.html#void-10" target="Documentation">void apr_kill_cleanup(apr_pool_t *p, const void *data, apr_status_t (*cleanup) (void *))</a>
  -<li><a href="APR_memory_allocation.html#void-11" target="Documentation">void apr_cleanup_for_exec(void)</a>
  -<li><a href="APR_memory_allocation.html#void-5" target="Documentation">void apr_clear_pool(apr_pool_t *p)</a>
  -<li><a href="APR_memory_allocation.html#void-6" target="Documentation">void apr_destroy_pool(apr_pool_t *p)</a>
  -<li><a href="APR_memory_allocation.html#void-7" target="Documentation">void *apr_palloc(apr_pool_t *c, apr_size_t reqsize)</a>
  -<li><a href="APR_memory_allocation.html#void-8" target="Documentation">void *apr_pcalloc(apr_pool_t *p, apr_size_t size)</a>
  -<li><a href="APR_memory_allocation.html#void-9" target="Documentation">void apr_register_cleanup(apr_pool_t *p, const void *data, apr_status_t (*plain_cleanup) (void *), apr_status_t (*child_cleanup) (void *))</a>
  +<li><a href="APR_memory_allocation.html#void-10" target="Documentation">void apr_cleanup_for_exec(void)</a>
  +<li><a href="APR_memory_allocation.html#void-4" target="Documentation">void apr_clear_pool(apr_pool_t *p)</a>
  +<li><a href="APR_memory_allocation.html#void-5" target="Documentation">void apr_destroy_pool(apr_pool_t *p)</a>
  +<li><a href="APR_memory_allocation.html#void-6" target="Documentation">void *apr_palloc(apr_pool_t *c, apr_size_t reqsize)</a>
  +<li><a href="APR_memory_allocation.html#void-7" target="Documentation">void *apr_pcalloc(apr_pool_t *p, apr_size_t size)</a>
  +<li><a href="APR_memory_allocation.html#void-8" target="Documentation">void apr_register_cleanup(apr_pool_t *p, const void *data, apr_status_t (*plain_cleanup) (void *), apr_status_t (*child_cleanup) (void *))</a>
  +<li><a href="APR_memory_allocation.html#void-9" target="Documentation">void apr_kill_cleanup(apr_pool_t *p, const void *data, apr_status_t (*cleanup) (void *))</a>
   </dir><a href="APR_portability_Routines.html" target="Documentation"><b>APR portability Routines</b></a><br>
     <dir>
  +<li><a href="APR_portability_Routines.html#apr_os_sock_info_t" target="Documentation">struct apr_os_sock_info_t</a>
   <li><a href="APR_portability_Routines.html#apr_get_os_dir" target="Documentation">apr_status_t apr_get_os_dir(apr_os_dir_t **thedir, apr_dir_t *dir)</a>
   <li><a href="APR_portability_Routines.html#apr_get_os_exp_time" target="Documentation">apr_status_t apr_get_os_exp_time(apr_os_exp_time_t **ostime, apr_exploded_time_t *aprtime)</a>
   <li><a href="APR_portability_Routines.html#apr_get_os_file" target="Documentation">apr_status_t apr_get_os_file(apr_os_file_t *thefile, apr_file_t *file)</a>
  @@ -260,6 +310,7 @@
   <li><a href="APR_portability_Routines.html#apr_get_os_sock" target="Documentation">apr_status_t apr_get_os_sock(apr_os_sock_t *thesock, apr_socket_t *sock)</a>
   <li><a href="APR_portability_Routines.html#apr_get_os_thread" target="Documentation">apr_status_t apr_get_os_thread(apr_os_thread_t **thethd, apr_thread_t *thd)</a>
   <li><a href="APR_portability_Routines.html#apr_get_os_threadkey" target="Documentation">apr_status_t apr_get_os_threadkey(apr_os_threadkey_t *thekey, apr_threadkey_t *key)</a>
  +<li><a href="APR_portability_Routines.html#apr_make_os_sock" target="Documentation">apr_status_t apr_make_os_sock(apr_socket_t **apr_sock, apr_os_sock_info_t *os_sock_info, apr_pool_t *cont)</a>
   <li><a href="APR_portability_Routines.html#apr_put_os_dir" target="Documentation">apr_status_t apr_put_os_dir(apr_dir_t **dir, apr_os_dir_t *thedir, apr_pool_t *cont)</a>
   <li><a href="APR_portability_Routines.html#apr_put_os_exp_time" target="Documentation">apr_status_t apr_put_os_exp_time(apr_exploded_time_t *aprtime, apr_os_exp_time_t **ostime, apr_pool_t *cont)</a>
   <li><a href="APR_portability_Routines.html#apr_put_os_file" target="Documentation">apr_status_t apr_put_os_file(apr_file_t **file, apr_os_file_t *thefile, apr_pool_t *cont)</a>
  @@ -283,21 +334,26 @@
   </dir><a href="Dynamic_Object_Handling.html" target="Documentation"><b>Dynamic Object Handling</b></a><br>
     <dir>
   <li><a href="Dynamic_Object_Handling.html#apr_dso_error" target="Documentation">const char *apr_dso_error(apr_dso_handle_t *dso, char *buf, apr_size_t bufsize)</a>
  +<li><a href="Dynamic_Object_Handling.html#apr_dso_handle_sym_t" target="Documentation">apr_dso_handle_sym_t </a>
  +<li><a href="Dynamic_Object_Handling.html#apr_dso_handle_t" target="Documentation">apr_dso_handle_t </a>
   <li><a href="Dynamic_Object_Handling.html#apr_dso_load" target="Documentation">apr_status_t apr_dso_load(apr_dso_handle_t **res_handle, const char *path, apr_pool_t *ctx)</a>
   <li><a href="Dynamic_Object_Handling.html#apr_dso_sym" target="Documentation">apr_status_t apr_dso_sym(apr_dso_handle_sym_t *ressym, apr_dso_handle_t *handle, const char *symname)</a>
   <li><a href="Dynamic_Object_Handling.html#apr_dso_unload" target="Documentation">apr_status_t apr_dso_unload(apr_dso_handle_t *handle)</a>
   </dir><a href="Error_Codes.html" target="Documentation"><b>Error Codes</b></a><br>
     <dir>
   <li><a href="Error_Codes.html#apr_canonical_error" target="Documentation">int apr_canonical_error(apr_status_t err)</a>
  +<li><a href="Error_Codes.html#apr_strerror" target="Documentation">char *apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize)</a>
   </dir><a href="Fnmatch_functions.html" target="Documentation"><b>Fnmatch functions</b></a><br>
     <dir>
   <li><a href="Fnmatch_functions.html#apr_status_t" target="Documentation">apr_status_t apr_fnmatch(const char *pattern, const char *strings, int flags)</a>
   <li><a href="Fnmatch_functions.html#int-2" target="Documentation">int apr_is_fnmatch(const char *pattern)</a>
   </dir><a href="Hash_Tables.html" target="Documentation"><b>Hash Tables</b></a><br>
     <dir>
  -<li><a href="Hash_Tables.html#apr_hash_index_t" target="Documentation">apr_hash_index_t * apr_hash_first(apr_hash_t *ht)</a>
  -<li><a href="Hash_Tables.html#apr_hash_index_t-2" target="Documentation">apr_hash_index_t * apr_hash_next(apr_hash_index_t *hi)</a>
  -<li><a href="Hash_Tables.html#apr_hash_t" target="Documentation">apr_hash_t *apr_make_hash(apr_pool_t *pool)</a>
  +<li><a href="Hash_Tables.html#apr_hash_index_t" target="Documentation">apr_hash_index_t </a>
  +<li><a href="Hash_Tables.html#apr_hash_index_t-2" target="Documentation">apr_hash_index_t *apr_hash_first(apr_hash_t *ht)</a>
  +<li><a href="Hash_Tables.html#apr_hash_index_t-3" target="Documentation">apr_hash_index_t *apr_hash_next(apr_hash_index_t *hi)</a>
  +<li><a href="Hash_Tables.html#apr_hash_t" target="Documentation">apr_hash_t </a>
  +<li><a href="Hash_Tables.html#apr_hash_t-2" target="Documentation">apr_hash_t *apr_make_hash(apr_pool_t *pool)</a>
   <li><a href="Hash_Tables.html#void" target="Documentation">void apr_hash_set(apr_hash_t *ht, const void *key, apr_size_t klen, const void *val)</a>
   <li><a href="Hash_Tables.html#void-2" target="Documentation">void *apr_hash_get(apr_hash_t *ht, const void *key, apr_size_t klen)</a>
   <li><a href="Hash_Tables.html#void-3" target="Documentation">void apr_hash_this(apr_hash_index_t *hi, const void **key, apr_size_t *klen, void **val);</a>
  
  
  
  1.3       +1 -1      apr-site/docs/packages.html
  
  Index: packages.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/packages.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- packages.html	2000/11/18 03:40:40	1.2
  +++ packages.html	2000/12/04 18:14:05	1.3
  @@ -36,7 +36,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>
  
  
  
  1.3       +1 -1      apr-site/docs/to-do.html
  
  Index: to-do.html
  ===================================================================
  RCS file: /home/cvs/apr-site/docs/to-do.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- to-do.html	2000/11/18 03:40:40	1.2
  +++ to-do.html	2000/12/04 18:14:05	1.3
  @@ -11,7 +11,7 @@
       <hr size=4>
       &copy 2000 [Apache Software Foundation]<br>
       Generated by <a href="http://scandoc.sourceforge.net/"><b>ScanDoc 0.12</b></a><br>
  -    Last Updated: Fri Nov 17 19:40:19 2000
  +    Last Updated: Mon Dec  4 10:10:38 2000
   <br>
     </body>
   </html>