apr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jerenkra...@apache.org
Subject svn commit: r151768 [19/47] - in apr/site/trunk/docs/docs/apr: ./ iconv/ util/
Date Mon, 07 Feb 2005 23:11:59 GMT
Modified: apr/site/trunk/docs/docs/apr/apr__errno_8h.html
URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr/apr__errno_8h.html?view=diff&r1=151767&r2=151768
==============================================================================
--- apr/site/trunk/docs/docs/apr/apr__errno_8h.html (original)
+++ apr/site/trunk/docs/docs/apr/apr__errno_8h.html Mon Feb  7 15:10:17 2005
@@ -3,9 +3,10 @@
 <title>Apache Portable Runtime: apr_errno.h File Reference</title>
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.3.8 -->
+<!-- Generated by Doxygen 1.3.7 -->
 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
-<h1>apr_errno.h File Reference</h1>APR Error Codes. <a href="#_details">More...</a>
+<h1>apr_errno.h File Reference</h1>APR Error Codes.  
+<a href="#_details">More...</a>
 <p>
 <code>#include "apr.h"</code><br>
 
@@ -341,8 +342,8 @@
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 APR Error Codes. 
 <p>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:36:05 2004 for Apache Portable Runtime by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Feb 7 13:18:25 2005 for Apache Portable Runtime by
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address>
 </body>
 </html>

Modified: apr/site/trunk/docs/docs/apr/apr__file__info_8h-source.html
URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr/apr__file__info_8h-source.html?view=diff&r1=151767&r2=151768
==============================================================================
--- apr/site/trunk/docs/docs/apr/apr__file__info_8h-source.html (original)
+++ apr/site/trunk/docs/docs/apr/apr__file__info_8h-source.html Mon Feb  7 15:10:17 2005
@@ -3,412 +3,429 @@
 <title>Apache Portable Runtime: apr_file_info.h Source File</title>
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.3.8 -->
+<!-- Generated by Doxygen 1.3.7 -->
 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
-<h1>apr_file_info.h</h1><a href="apr__file__info_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2004 The Apache Software Foundation</span>
-00002 <span class="comment"> *</span>
-00003 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
-00004 <span class="comment"> * you may not use this file except in compliance with the License.</span>
-00005 <span class="comment"> * You may obtain a copy of the License at</span>
-00006 <span class="comment"> *</span>
-00007 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
-00008 <span class="comment"> *</span>
-00009 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
-00010 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
-00011 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
-00012 <span class="comment"> * See the License for the specific language governing permissions and</span>
-00013 <span class="comment"> * limitations under the License.</span>
-00014 <span class="comment"> */</span>
-00015 
-00016 <span class="preprocessor">#ifndef APR_FILE_INFO_H</span>
-00017 <span class="preprocessor"></span><span class="preprocessor">#define APR_FILE_INFO_H</span>
-00018 <span class="preprocessor"></span><span class="comment"></span>
-00019 <span class="comment">/**</span>
-00020 <span class="comment"> * @file apr_file_info.h</span>
-00021 <span class="comment"> * @brief APR File Information</span>
-00022 <span class="comment"> */</span>
-00023 
-00024 <span class="preprocessor">#include "apr.h"</span>
-00025 <span class="preprocessor">#include "<a class="code" href="apr__user_8h.html">apr_user.h</a>"</span>
-00026 <span class="preprocessor">#include "<a class="code" href="apr__pools_8h.html">apr_pools.h</a>"</span>
-00027 <span class="preprocessor">#include "<a class="code" href="apr__tables_8h.html">apr_tables.h</a>"</span>
-00028 <span class="preprocessor">#include "<a class="code" href="apr__time_8h.html">apr_time.h</a>"</span>
-00029 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span>
-00030 
-00031 <span class="preprocessor">#if APR_HAVE_SYS_UIO_H</span>
-00032 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/uio.h&gt;</span>
-00033 <span class="preprocessor">#endif</span>
-00034 <span class="preprocessor"></span>
-00035 <span class="preprocessor">#ifdef __cplusplus</span>
-00036 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
-00037 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
-00038 <span class="comment"></span>
-00039 <span class="comment">/**</span>
-00040 <span class="comment"> * @defgroup apr_file_info File Information</span>
-00041 <span class="comment"> * @ingroup APR </span>
-00042 <span class="comment"> * @{</span>
-00043 <span class="comment"> */</span>
-00044 
-00045 <span class="comment">/* Many applications use the type member to determine the</span>
-00046 <span class="comment"> * existance of a file or initialization of the file info,</span>
-00047 <span class="comment"> * so the APR_NOFILE value must be distinct from APR_UNKFILE.</span>
-00048 <span class="comment"> */</span>
-00049 <span class="comment"></span>
-00050 <span class="comment">/** apr_filetype_e values for the filetype member of the </span>
-00051 <span class="comment"> * apr_file_info_t structure</span>
-00052 <span class="comment"> * @warning: Not all of the filetypes below can be determined.</span>
-00053 <span class="comment"> * For example, a given platform might not correctly report </span>
-00054 <span class="comment"> * a socket descriptor as APR_SOCK if that type isn't </span>
-00055 <span class="comment"> * well-identified on that platform.  In such cases where</span>
-00056 <span class="comment"> * a filetype exists but cannot be described by the recognized</span>
-00057 <span class="comment"> * flags below, the filetype will be APR_UNKFILE.  If the</span>
-00058 <span class="comment"> * filetype member is not determined, the type will be APR_NOFILE.</span>
-00059 <span class="comment"> */</span>
-00060 
-<a name="l00061"></a><a class="code" href="group__apr__file__info.html#ga4">00061</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-00062     <a class="code" href="group__apr__file__info.html#gga4a52">APR_NOFILE</a> = 0,     <span class="comment">/**&lt; no file type determined */</span>
-00063     <a class="code" href="group__apr__file__info.html#gga4a53">APR_REG</a>,            <span class="comment">/**&lt; a regular file */</span>
-00064     <a class="code" href="group__apr__file__info.html#gga4a54">APR_DIR</a>,            <span class="comment">/**&lt; a directory */</span>
-00065     <a class="code" href="group__apr__file__info.html#gga4a55">APR_CHR</a>,            <span class="comment">/**&lt; a character device */</span>
-00066     <a class="code" href="group__apr__file__info.html#gga4a56">APR_BLK</a>,            <span class="comment">/**&lt; a block device */</span>
-00067     <a class="code" href="group__apr__file__info.html#gga4a57">APR_PIPE</a>,           <span class="comment">/**&lt; a FIFO / pipe */</span>
-00068     <a class="code" href="group__apr__file__info.html#gga4a58">APR_LNK</a>,            <span class="comment">/**&lt; a symbolic link */</span>
-00069     <a class="code" href="group__apr__file__info.html#gga4a59">APR_SOCK</a>,           <span class="comment">/**&lt; a [unix domain] socket */</span>
-00070     <a class="code" href="group__apr__file__info.html#gga4a60">APR_UNKFILE</a> = 127   <span class="comment">/**&lt; a file of some other unknown type */</span>
-00071 } <a class="code" href="group__apr__file__info.html#ga4">apr_filetype_e</a>; 
-00072 <span class="comment"></span>
-00073 <span class="comment">/**</span>
-00074 <span class="comment"> * @defgroup apr_file_permissions File Permissions flags </span>
-00075 <span class="comment"> * @{</span>
-00076 <span class="comment"> */</span>
-00077 
-<a name="l00078"></a><a class="code" href="group__apr__file__permissions.html#ga0">00078</a> <span class="preprocessor">#define APR_USETID      0x8000 </span><span class="comment">/**&lt; Set user id */</span>
-<a name="l00079"></a><a class="code" href="group__apr__file__permissions.html#ga1">00079</a> <span class="preprocessor">#define APR_UREAD       0x0400 </span><span class="comment">/**&lt; Read by user */</span>
-<a name="l00080"></a><a class="code" href="group__apr__file__permissions.html#ga2">00080</a> <span class="preprocessor">#define APR_UWRITE      0x0200 </span><span class="comment">/**&lt; Write by user */</span>
-<a name="l00081"></a><a class="code" href="group__apr__file__permissions.html#ga3">00081</a> <span class="preprocessor">#define APR_UEXECUTE    0x0100 </span><span class="comment">/**&lt; Execute by user */</span>
-00082 
-<a name="l00083"></a><a class="code" href="group__apr__file__permissions.html#ga4">00083</a> <span class="preprocessor">#define APR_GSETID      0x4000 </span><span class="comment">/**&lt; Set group id */</span>
-<a name="l00084"></a><a class="code" href="group__apr__file__permissions.html#ga5">00084</a> <span class="preprocessor">#define APR_GREAD       0x0040 </span><span class="comment">/**&lt; Read by group */</span>
-<a name="l00085"></a><a class="code" href="group__apr__file__permissions.html#ga6">00085</a> <span class="preprocessor">#define APR_GWRITE      0x0020 </span><span class="comment">/**&lt; Write by group */</span>
-<a name="l00086"></a><a class="code" href="group__apr__file__permissions.html#ga7">00086</a> <span class="preprocessor">#define APR_GEXECUTE    0x0010 </span><span class="comment">/**&lt; Execute by group */</span>
-00087 
-<a name="l00088"></a><a class="code" href="group__apr__file__permissions.html#ga8">00088</a> <span class="preprocessor">#define APR_WSTICKY     0x2000 </span><span class="comment">/**&lt; Sticky bit */</span>
-<a name="l00089"></a><a class="code" href="group__apr__file__permissions.html#ga9">00089</a> <span class="preprocessor">#define APR_WREAD       0x0004 </span><span class="comment">/**&lt; Read by others */</span>
-<a name="l00090"></a><a class="code" href="group__apr__file__permissions.html#ga10">00090</a> <span class="preprocessor">#define APR_WWRITE      0x0002 </span><span class="comment">/**&lt; Write by others */</span>
-<a name="l00091"></a><a class="code" href="group__apr__file__permissions.html#ga11">00091</a> <span class="preprocessor">#define APR_WEXECUTE    0x0001 </span><span class="comment">/**&lt; Execute by others */</span>
-00092 
-<a name="l00093"></a><a class="code" href="group__apr__file__permissions.html#ga12">00093</a> <span class="preprocessor">#define APR_OS_DEFAULT  0x0FFF </span><span class="comment">/**&lt; use OS's default permissions */</span>
-00094 
-00095 <span class="comment">/* additional permission flags for apr_file_copy  and apr_file_append */</span>
-<a name="l00096"></a><a class="code" href="group__apr__file__permissions.html#ga13">00096</a> <span class="preprocessor">#define APR_FILE_SOURCE_PERMS 0x1000 </span><span class="comment">/**&lt; Copy source file's permissions */</span>
-00097 <span class="comment"></span>
-00098 <span class="comment">/** @} */</span>
-00099 
-00100 <span class="comment"></span>
-00101 <span class="comment">/**</span>
-00102 <span class="comment"> * Structure for referencing directories.</span>
-00103 <span class="comment"> */</span>
-<a name="l00104"></a><a class="code" href="group__apr__file__info.html#ga0">00104</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__apr__file__info.html#ga0">apr_dir_t</a>          <a class="code" href="group__apr__file__info.html#ga0">apr_dir_t</a>;<span class="comment"></span>
-00105 <span class="comment">/**</span>
-00106 <span class="comment"> * Structure for determining file permissions.</span>
-00107 <span class="comment"> */</span>
-<a name="l00108"></a><a class="code" href="group__apr__file__info.html#ga1">00108</a> <span class="keyword">typedef</span> apr_int32_t               <a class="code" href="group__apr__file__info.html#ga1">apr_fileperms_t</a>;
-00109 <span class="preprocessor">#if (defined WIN32) || (defined NETWARE)</span>
-00110 <span class="preprocessor"></span><span class="comment">/**</span>
-00111 <span class="comment"> * Structure for determining the inode of the file.</span>
-00112 <span class="comment"> */</span>
-00113 <span class="keyword">typedef</span> apr_uint64_t              <a class="code" href="group__apr__file__info.html#ga2">apr_ino_t</a>;<span class="comment"></span>
-00114 <span class="comment">/**</span>
-00115 <span class="comment"> * Structure for determining the device the file is on.</span>
-00116 <span class="comment"> */</span>
-00117 <span class="keyword">typedef</span> apr_uint32_t              <a class="code" href="group__apr__file__info.html#ga3">apr_dev_t</a>;
-00118 <span class="preprocessor">#else</span>
-00119 <span class="preprocessor"></span><span class="comment">/** The inode of the file. */</span>
-<a name="l00120"></a><a class="code" href="group__apr__file__info.html#ga2">00120</a> <span class="keyword">typedef</span> ino_t                     <a class="code" href="group__apr__file__info.html#ga2">apr_ino_t</a>;<span class="comment"></span>
-00121 <span class="comment">/**</span>
-00122 <span class="comment"> * Structure for determining the device the file is on.</span>
-00123 <span class="comment"> */</span>
-<a name="l00124"></a><a class="code" href="group__apr__file__info.html#ga3">00124</a> <span class="keyword">typedef</span> dev_t                     <a class="code" href="group__apr__file__info.html#ga3">apr_dev_t</a>;
-00125 <span class="preprocessor">#endif</span>
-00126 <span class="preprocessor"></span><span class="comment"></span>
-00127 <span class="comment">/**</span>
-00128 <span class="comment"> * @defgroup apr_file_stat Stat Functions</span>
-00129 <span class="comment"> * @{</span>
-00130 <span class="comment"> */</span><span class="comment"></span>
-00131 <span class="comment">/** file info structure */</span>
-<a name="l00132"></a><a class="code" href="group__apr__file__stat.html#ga0">00132</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__finfo__t.html">apr_finfo_t</a>        <a class="code" href="group__apr__file__stat.html#ga0">apr_finfo_t</a>;
-00133 
-<a name="l00134"></a><a class="code" href="group__apr__file__stat.html#ga2">00134</a> <span class="preprocessor">#define APR_FINFO_LINK   0x00000001 </span><span class="comment">/**&lt; Stat the link not the file itself if it is a link */</span>
-<a name="l00135"></a><a class="code" href="group__apr__file__stat.html#ga3">00135</a> <span class="preprocessor">#define APR_FINFO_MTIME  0x00000010 </span><span class="comment">/**&lt; Modification Time */</span>
-<a name="l00136"></a><a class="code" href="group__apr__file__stat.html#ga4">00136</a> <span class="preprocessor">#define APR_FINFO_CTIME  0x00000020 </span><span class="comment">/**&lt; Creation or inode-changed time */</span>
-<a name="l00137"></a><a class="code" href="group__apr__file__stat.html#ga5">00137</a> <span class="preprocessor">#define APR_FINFO_ATIME  0x00000040 </span><span class="comment">/**&lt; Access Time */</span>
-<a name="l00138"></a><a class="code" href="group__apr__file__stat.html#ga6">00138</a> <span class="preprocessor">#define APR_FINFO_SIZE   0x00000100 </span><span class="comment">/**&lt; Size of the file */</span>
-<a name="l00139"></a><a class="code" href="group__apr__file__stat.html#ga7">00139</a> <span class="preprocessor">#define APR_FINFO_CSIZE  0x00000200 </span><span class="comment">/**&lt; Storage size consumed by the file */</span>
-<a name="l00140"></a><a class="code" href="group__apr__file__stat.html#ga8">00140</a> <span class="preprocessor">#define APR_FINFO_DEV    0x00001000 </span><span class="comment">/**&lt; Device */</span>
-<a name="l00141"></a><a class="code" href="group__apr__file__stat.html#ga9">00141</a> <span class="preprocessor">#define APR_FINFO_INODE  0x00002000 </span><span class="comment">/**&lt; Inode */</span>
-<a name="l00142"></a><a class="code" href="group__apr__file__stat.html#ga10">00142</a> <span class="preprocessor">#define APR_FINFO_NLINK  0x00004000 </span><span class="comment">/**&lt; Number of links */</span>
-<a name="l00143"></a><a class="code" href="group__apr__file__stat.html#ga11">00143</a> <span class="preprocessor">#define APR_FINFO_TYPE   0x00008000 </span><span class="comment">/**&lt; Type */</span>
-<a name="l00144"></a><a class="code" href="group__apr__file__stat.html#ga12">00144</a> <span class="preprocessor">#define APR_FINFO_USER   0x00010000 </span><span class="comment">/**&lt; User */</span>
-<a name="l00145"></a><a class="code" href="group__apr__file__stat.html#ga13">00145</a> <span class="preprocessor">#define APR_FINFO_GROUP  0x00020000 </span><span class="comment">/**&lt; Group */</span>
-<a name="l00146"></a><a class="code" href="group__apr__file__stat.html#ga14">00146</a> <span class="preprocessor">#define APR_FINFO_UPROT  0x00100000 </span><span class="comment">/**&lt; User protection bits */</span>
-<a name="l00147"></a><a class="code" href="group__apr__file__stat.html#ga15">00147</a> <span class="preprocessor">#define APR_FINFO_GPROT  0x00200000 </span><span class="comment">/**&lt; Group protection bits */</span>
-<a name="l00148"></a><a class="code" href="group__apr__file__stat.html#ga16">00148</a> <span class="preprocessor">#define APR_FINFO_WPROT  0x00400000 </span><span class="comment">/**&lt; World protection bits */</span>
-<a name="l00149"></a><a class="code" href="group__apr__file__stat.html#ga17">00149</a> <span class="preprocessor">#define APR_FINFO_ICASE  0x01000000 </span><span class="comment">/**&lt; if dev is case insensitive */</span>
-<a name="l00150"></a><a class="code" href="group__apr__file__stat.html#ga18">00150</a> <span class="preprocessor">#define APR_FINFO_NAME   0x02000000 </span><span class="comment">/**&lt; -&gt;name in proper case */</span>
-00151 
-<a name="l00152"></a><a class="code" href="group__apr__file__stat.html#ga19">00152</a> <span class="preprocessor">#define APR_FINFO_MIN    0x00008170 </span><span class="comment">/**&lt; type, mtime, ctime, atime, size */</span>
-<a name="l00153"></a><a class="code" href="group__apr__file__stat.html#ga20">00153</a> <span class="preprocessor">#define APR_FINFO_IDENT  0x00003000 </span><span class="comment">/**&lt; dev and inode */</span>
-<a name="l00154"></a><a class="code" href="group__apr__file__stat.html#ga21">00154</a> <span class="preprocessor">#define APR_FINFO_OWNER  0x00030000 </span><span class="comment">/**&lt; user and group */</span>
-<a name="l00155"></a><a class="code" href="group__apr__file__stat.html#ga22">00155</a> <span class="preprocessor">#define APR_FINFO_PROT   0x00700000 </span><span class="comment">/**&lt;  all protections */</span>
-<a name="l00156"></a><a class="code" href="group__apr__file__stat.html#ga23">00156</a> <span class="preprocessor">#define APR_FINFO_NORM   0x0073b170 </span><span class="comment">/**&lt;  an atomic unix apr_stat() */</span>
-<a name="l00157"></a><a class="code" href="group__apr__file__stat.html#ga24">00157</a> <span class="preprocessor">#define APR_FINFO_DIRENT 0x02000000 </span><span class="comment">/**&lt;  an atomic unix apr_dir_read() */</span>
-00158 <span class="comment"></span>
-00159 <span class="comment">/**</span>
-00160 <span class="comment"> * The file information structure.  This is analogous to the POSIX</span>
-00161 <span class="comment"> * stat structure.</span>
-00162 <span class="comment"> */</span>
-<a name="l00163"></a><a class="code" href="structapr__finfo__t.html">00163</a> <span class="keyword">struct </span><a class="code" href="group__apr__file__stat.html#ga0">apr_finfo_t</a> {<span class="comment"></span>
-00164 <span class="comment">    /** Allocates memory and closes lingering handles in the specified pool */</span>
-<a name="l00165"></a><a class="code" href="structapr__finfo__t.html#o0">00165</a>     <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *<a class="code" href="structapr__finfo__t.html#o0">pool</a>;<span class="comment"></span>
-00166 <span class="comment">    /** The bitmask describing valid fields of this apr_finfo_t structure </span>
-00167 <span class="comment">     *  including all available 'wanted' fields and potentially more */</span>
-<a name="l00168"></a><a class="code" href="structapr__finfo__t.html#o1">00168</a>     apr_int32_t <a class="code" href="structapr__finfo__t.html#o1">valid</a>;<span class="comment"></span>
-00169 <span class="comment">    /** The access permissions of the file.  Mimics Unix access rights. */</span>
-<a name="l00170"></a><a class="code" href="structapr__finfo__t.html#o2">00170</a>     <a class="code" href="group__apr__file__info.html#ga1">apr_fileperms_t</a> <a class="code" href="structapr__finfo__t.html#o2">protection</a>;<span class="comment"></span>
-00171 <span class="comment">    /** The type of file.  One of APR_REG, APR_DIR, APR_CHR, APR_BLK, APR_PIPE, </span>
-00172 <span class="comment">     * APR_LNK or APR_SOCK.  If the type is undetermined, the value is APR_NOFILE.</span>
-00173 <span class="comment">     * If the type cannot be determined, the value is APR_UNKFILE.</span>
-00174 <span class="comment">     */</span>
-<a name="l00175"></a><a class="code" href="structapr__finfo__t.html#o3">00175</a>     <a class="code" href="group__apr__file__info.html#ga4">apr_filetype_e</a> <a class="code" href="structapr__finfo__t.html#o3">filetype</a>;<span class="comment"></span>
-00176 <span class="comment">    /** The user id that owns the file */</span>
-<a name="l00177"></a><a class="code" href="structapr__finfo__t.html#o4">00177</a>     <a class="code" href="group__apr__user.html#ga0">apr_uid_t</a> <a class="code" href="structapr__finfo__t.html#o4">user</a>;<span class="comment"></span>
-00178 <span class="comment">    /** The group id that owns the file */</span>
-<a name="l00179"></a><a class="code" href="structapr__finfo__t.html#o5">00179</a>     <a class="code" href="group__apr__user.html#ga1">apr_gid_t</a> <a class="code" href="structapr__finfo__t.html#o5">group</a>;<span class="comment"></span>
-00180 <span class="comment">    /** The inode of the file. */</span>
-<a name="l00181"></a><a class="code" href="structapr__finfo__t.html#o6">00181</a>     <a class="code" href="group__apr__file__info.html#ga2">apr_ino_t</a> <a class="code" href="structapr__finfo__t.html#o6">inode</a>;<span class="comment"></span>
-00182 <span class="comment">    /** The id of the device the file is on. */</span>
-<a name="l00183"></a><a class="code" href="structapr__finfo__t.html#o7">00183</a>     <a class="code" href="group__apr__file__info.html#ga3">apr_dev_t</a> <a class="code" href="structapr__finfo__t.html#o7">device</a>;<span class="comment"></span>
-00184 <span class="comment">    /** The number of hard links to the file. */</span>
-<a name="l00185"></a><a class="code" href="structapr__finfo__t.html#o8">00185</a>     apr_int32_t <a class="code" href="structapr__finfo__t.html#o8">nlink</a>;<span class="comment"></span>
-00186 <span class="comment">    /** The size of the file */</span>
-<a name="l00187"></a><a class="code" href="structapr__finfo__t.html#o9">00187</a>     apr_off_t <a class="code" href="structapr__finfo__t.html#o9">size</a>;<span class="comment"></span>
-00188 <span class="comment">    /** The storage size consumed by the file */</span>
-<a name="l00189"></a><a class="code" href="structapr__finfo__t.html#o10">00189</a>     apr_off_t <a class="code" href="structapr__finfo__t.html#o10">csize</a>;<span class="comment"></span>
-00190 <span class="comment">    /** The time the file was last accessed */</span>
-<a name="l00191"></a><a class="code" href="structapr__finfo__t.html#o11">00191</a>     <a class="code" href="group__apr__time.html#ga2">apr_time_t</a> <a class="code" href="structapr__finfo__t.html#o11">atime</a>;<span class="comment"></span>
-00192 <span class="comment">    /** The time the file was last modified */</span>
-<a name="l00193"></a><a class="code" href="structapr__finfo__t.html#o12">00193</a>     <a class="code" href="group__apr__time.html#ga2">apr_time_t</a> <a class="code" href="structapr__finfo__t.html#o12">mtime</a>;<span class="comment"></span>
-00194 <span class="comment">    /** The time the file was created, or the inode was last changed */</span>
-<a name="l00195"></a><a class="code" href="structapr__finfo__t.html#o13">00195</a>     <a class="code" href="group__apr__time.html#ga2">apr_time_t</a> <a class="code" href="structapr__finfo__t.html#o13">ctime</a>;<span class="comment"></span>
-00196 <span class="comment">    /** The pathname of the file (possibly unrooted) */</span>
-<a name="l00197"></a><a class="code" href="structapr__finfo__t.html#o14">00197</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__finfo__t.html#o14">fname</a>;<span class="comment"></span>
-00198 <span class="comment">    /** The file's name (no path) in filesystem case */</span>
-<a name="l00199"></a><a class="code" href="structapr__finfo__t.html#o15">00199</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__finfo__t.html#o15">name</a>;<span class="comment"></span>
-00200 <span class="comment">    /** The file's handle, if accessed (can be submitted to apr_duphandle) */</span>
-<a name="l00201"></a><a class="code" href="structapr__finfo__t.html#o16">00201</a>     <span class="keyword">struct </span><a class="code" href="group__apr__file__io.html#ga2">apr_file_t</a> *<a class="code" href="structapr__finfo__t.html#o16">filehand</a>;
-00202 };
-00203 <span class="comment"></span>
-00204 <span class="comment">/**</span>
-00205 <span class="comment"> * get the specified file's stats.  The file is specified by filename, </span>
-00206 <span class="comment"> * instead of using a pre-opened file.</span>
-00207 <span class="comment"> * @param finfo Where to store the information about the file, which is</span>
-00208 <span class="comment"> * never touched if the call fails.</span>
-00209 <span class="comment"> * @param fname The name of the file to stat.</span>
-00210 <span class="comment"> * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values </span>
-00211 <span class="comment"> * @param pool the pool to use to allocate the new file. </span>
-00212 <span class="comment"> */</span> 
-00213 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_stat(apr_finfo_t *finfo, const <span class="keywordtype">char</span> *fname,
-00214                                    apr_int32_t wanted, <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *pool);
-00215 <span class="comment"></span>
-00216 <span class="comment">/** @} */</span><span class="comment"></span>
-00217 <span class="comment">/**</span>
-00218 <span class="comment"> * @defgroup apr_dir Directory Manipulation Functions</span>
-00219 <span class="comment"> * @{</span>
-00220 <span class="comment"> */</span>
-00221 <span class="comment"></span>
-00222 <span class="comment">/**</span>
-00223 <span class="comment"> * Open the specified directory.</span>
-00224 <span class="comment"> * @param new_dir The opened directory descriptor.</span>
-00225 <span class="comment"> * @param dirname The full path to the directory (use / on all systems)</span>
-00226 <span class="comment"> * @param pool The pool to use.</span>
-00227 <span class="comment"> */</span>                        
-00228 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_dir_open(apr_dir_t **new_dir, 
-00229                                        const <span class="keywordtype">char</span> *dirname, 
-00230                                        <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *pool);
-00231 <span class="comment"></span>
-00232 <span class="comment">/**</span>
-00233 <span class="comment"> * close the specified directory. </span>
-00234 <span class="comment"> * @param thedir the directory descriptor to close.</span>
-00235 <span class="comment"> */</span>                        
-00236 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_dir_close(apr_dir_t *thedir);
-00237 <span class="comment"></span>
-00238 <span class="comment">/**</span>
-00239 <span class="comment"> * Read the next entry from the specified directory. </span>
-00240 <span class="comment"> * @param finfo the file info structure and filled in by apr_dir_read</span>
-00241 <span class="comment"> * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values </span>
-00242 <span class="comment"> * @param thedir the directory descriptor returned from apr_dir_open</span>
-00243 <span class="comment"> * @remark No ordering is guaranteed for the entries read.</span>
+<h1>apr_file_info.h</h1><a href="apr__file__info_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as</span>
+00002 <span class="comment"> * applicable.</span>
+00003 <span class="comment"> *</span>
+00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
+00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
+00006 <span class="comment"> * You may obtain a copy of the License at</span>
+00007 <span class="comment"> *</span>
+00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
+00009 <span class="comment"> *</span>
+00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
+00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
+00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
+00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
+00014 <span class="comment"> * limitations under the License.</span>
+00015 <span class="comment"> */</span>
+00016 
+00017 <span class="preprocessor">#ifndef APR_FILE_INFO_H</span>
+00018 <span class="preprocessor"></span><span class="preprocessor">#define APR_FILE_INFO_H</span>
+00019 <span class="preprocessor"></span><span class="comment"></span>
+00020 <span class="comment">/**</span>
+00021 <span class="comment"> * @file apr_file_info.h</span>
+00022 <span class="comment"> * @brief APR File Information</span>
+00023 <span class="comment"> */</span>
+00024 
+00025 <span class="preprocessor">#include "apr.h"</span>
+00026 <span class="preprocessor">#include "<a class="code" href="apr__user_8h.html">apr_user.h</a>"</span>
+00027 <span class="preprocessor">#include "<a class="code" href="apr__pools_8h.html">apr_pools.h</a>"</span>
+00028 <span class="preprocessor">#include "<a class="code" href="apr__tables_8h.html">apr_tables.h</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="apr__time_8h.html">apr_time.h</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span>
+00031 
+00032 <span class="preprocessor">#if APR_HAVE_SYS_UIO_H</span>
+00033 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/uio.h&gt;</span>
+00034 <span class="preprocessor">#endif</span>
+00035 <span class="preprocessor"></span>
+00036 <span class="preprocessor">#ifdef __cplusplus</span>
+00037 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
+00038 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+00039 <span class="comment"></span>
+00040 <span class="comment">/**</span>
+00041 <span class="comment"> * @defgroup apr_file_info File Information</span>
+00042 <span class="comment"> * @ingroup APR </span>
+00043 <span class="comment"> * @{</span>
+00044 <span class="comment"> */</span>
+00045 
+00046 <span class="comment">/* Many applications use the type member to determine the</span>
+00047 <span class="comment"> * existance of a file or initialization of the file info,</span>
+00048 <span class="comment"> * so the APR_NOFILE value must be distinct from APR_UNKFILE.</span>
+00049 <span class="comment"> */</span>
+00050 <span class="comment"></span>
+00051 <span class="comment">/** apr_filetype_e values for the filetype member of the </span>
+00052 <span class="comment"> * apr_file_info_t structure</span>
+00053 <span class="comment"> * @warning: Not all of the filetypes below can be determined.</span>
+00054 <span class="comment"> * For example, a given platform might not correctly report </span>
+00055 <span class="comment"> * a socket descriptor as APR_SOCK if that type isn't </span>
+00056 <span class="comment"> * well-identified on that platform.  In such cases where</span>
+00057 <span class="comment"> * a filetype exists but cannot be described by the recognized</span>
+00058 <span class="comment"> * flags below, the filetype will be APR_UNKFILE.  If the</span>
+00059 <span class="comment"> * filetype member is not determined, the type will be APR_NOFILE.</span>
+00060 <span class="comment"> */</span>
+00061 
+<a name="l00062"></a><a class="code" href="group__apr__file__info.html#ga4">00062</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+00063     <a class="code" href="group__apr__file__info.html#gga4a66">APR_NOFILE</a> = 0,     <span class="comment">/**&lt; no file type determined */</span>
+00064     <a class="code" href="group__apr__file__info.html#gga4a67">APR_REG</a>,            <span class="comment">/**&lt; a regular file */</span>
+00065     <a class="code" href="group__apr__file__info.html#gga4a68">APR_DIR</a>,            <span class="comment">/**&lt; a directory */</span>
+00066     <a class="code" href="group__apr__file__info.html#gga4a69">APR_CHR</a>,            <span class="comment">/**&lt; a character device */</span>
+00067     <a class="code" href="group__apr__file__info.html#gga4a70">APR_BLK</a>,            <span class="comment">/**&lt; a block device */</span>
+00068     <a class="code" href="group__apr__file__info.html#gga4a71">APR_PIPE</a>,           <span class="comment">/**&lt; a FIFO / pipe */</span>
+00069     <a class="code" href="group__apr__file__info.html#gga4a72">APR_LNK</a>,            <span class="comment">/**&lt; a symbolic link */</span>
+00070     <a class="code" href="group__apr__file__info.html#gga4a73">APR_SOCK</a>,           <span class="comment">/**&lt; a [unix domain] socket */</span>
+00071     <a class="code" href="group__apr__file__info.html#gga4a74">APR_UNKFILE</a> = 127   <span class="comment">/**&lt; a file of some other unknown type */</span>
+00072 } <a class="code" href="group__apr__file__info.html#ga4">apr_filetype_e</a>; 
+00073 <span class="comment"></span>
+00074 <span class="comment">/**</span>
+00075 <span class="comment"> * @defgroup apr_file_permissions File Permissions flags </span>
+00076 <span class="comment"> * @{</span>
+00077 <span class="comment"> */</span>
+00078 
+<a name="l00079"></a><a class="code" href="group__apr__file__permissions.html#ga0">00079</a> <span class="preprocessor">#define APR_FPROT_USETID      0x8000 </span><span class="comment">/**&lt; Set user id */</span>
+<a name="l00080"></a><a class="code" href="group__apr__file__permissions.html#ga1">00080</a> <span class="preprocessor">#define APR_FPROT_UREAD       0x0400 </span><span class="comment">/**&lt; Read by user */</span>
+<a name="l00081"></a><a class="code" href="group__apr__file__permissions.html#ga2">00081</a> <span class="preprocessor">#define APR_FPROT_UWRITE      0x0200 </span><span class="comment">/**&lt; Write by user */</span>
+<a name="l00082"></a><a class="code" href="group__apr__file__permissions.html#ga3">00082</a> <span class="preprocessor">#define APR_FPROT_UEXECUTE    0x0100 </span><span class="comment">/**&lt; Execute by user */</span>
+00083 
+<a name="l00084"></a><a class="code" href="group__apr__file__permissions.html#ga4">00084</a> <span class="preprocessor">#define APR_FPROT_GSETID      0x4000 </span><span class="comment">/**&lt; Set group id */</span>
+<a name="l00085"></a><a class="code" href="group__apr__file__permissions.html#ga5">00085</a> <span class="preprocessor">#define APR_FPROT_GREAD       0x0040 </span><span class="comment">/**&lt; Read by group */</span>
+<a name="l00086"></a><a class="code" href="group__apr__file__permissions.html#ga6">00086</a> <span class="preprocessor">#define APR_FPROT_GWRITE      0x0020 </span><span class="comment">/**&lt; Write by group */</span>
+<a name="l00087"></a><a class="code" href="group__apr__file__permissions.html#ga7">00087</a> <span class="preprocessor">#define APR_FPROT_GEXECUTE    0x0010 </span><span class="comment">/**&lt; Execute by group */</span>
+00088 
+<a name="l00089"></a><a class="code" href="group__apr__file__permissions.html#ga8">00089</a> <span class="preprocessor">#define APR_FPROT_WSTICKY     0x2000 </span><span class="comment">/**&lt; Sticky bit */</span>
+<a name="l00090"></a><a class="code" href="group__apr__file__permissions.html#ga9">00090</a> <span class="preprocessor">#define APR_FPROT_WREAD       0x0004 </span><span class="comment">/**&lt; Read by others */</span>
+<a name="l00091"></a><a class="code" href="group__apr__file__permissions.html#ga10">00091</a> <span class="preprocessor">#define APR_FPROT_WWRITE      0x0002 </span><span class="comment">/**&lt; Write by others */</span>
+<a name="l00092"></a><a class="code" href="group__apr__file__permissions.html#ga11">00092</a> <span class="preprocessor">#define APR_FPROT_WEXECUTE    0x0001 </span><span class="comment">/**&lt; Execute by others */</span>
+00093 
+<a name="l00094"></a><a class="code" href="group__apr__file__permissions.html#ga12">00094</a> <span class="preprocessor">#define APR_FPROT_OS_DEFAULT  0x0FFF </span><span class="comment">/**&lt; use OS's default permissions */</span>
+00095 
+00096 <span class="comment">/* additional permission flags for apr_file_copy  and apr_file_append */</span>
+<a name="l00097"></a><a class="code" href="group__apr__file__permissions.html#ga13">00097</a> <span class="preprocessor">#define APR_FPROT_FILE_SOURCE_PERMS 0x1000 </span><span class="comment">/**&lt; Copy source file's permissions */</span>
+00098     
+00099 <span class="comment">/* backcompat */</span>
+<a name="l00100"></a><a class="code" href="group__apr__file__permissions.html#ga14">00100</a> <span class="preprocessor">#define APR_USETID     APR_FPROT_USETID     </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_USETID     */</span>
+<a name="l00101"></a><a class="code" href="group__apr__file__permissions.html#ga15">00101</a> <span class="preprocessor">#define APR_UREAD      APR_FPROT_UREAD      </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_UREAD      */</span>
+<a name="l00102"></a><a class="code" href="group__apr__file__permissions.html#ga16">00102</a> <span class="preprocessor">#define APR_UWRITE     APR_FPROT_UWRITE     </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_UWRITE     */</span>
+<a name="l00103"></a><a class="code" href="group__apr__file__permissions.html#ga17">00103</a> <span class="preprocessor">#define APR_UEXECUTE   APR_FPROT_UEXECUTE   </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_UEXECUTE   */</span>
+<a name="l00104"></a><a class="code" href="group__apr__file__permissions.html#ga18">00104</a> <span class="preprocessor">#define APR_GSETID     APR_FPROT_GSETID     </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_GSETID     */</span>
+<a name="l00105"></a><a class="code" href="group__apr__file__permissions.html#ga19">00105</a> <span class="preprocessor">#define APR_GREAD      APR_FPROT_GREAD      </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_GREAD      */</span>
+<a name="l00106"></a><a class="code" href="group__apr__file__permissions.html#ga20">00106</a> <span class="preprocessor">#define APR_GWRITE     APR_FPROT_GWRITE     </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_GWRITE     */</span>
+<a name="l00107"></a><a class="code" href="group__apr__file__permissions.html#ga21">00107</a> <span class="preprocessor">#define APR_GEXECUTE   APR_FPROT_GEXECUTE   </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_GEXECUTE   */</span>
+<a name="l00108"></a><a class="code" href="group__apr__file__permissions.html#ga22">00108</a> <span class="preprocessor">#define APR_WSTICKY    APR_FPROT_WSTICKY    </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_WSTICKY    */</span>
+<a name="l00109"></a><a class="code" href="group__apr__file__permissions.html#ga23">00109</a> <span class="preprocessor">#define APR_WREAD      APR_FPROT_WREAD      </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_WREAD      */</span>
+<a name="l00110"></a><a class="code" href="group__apr__file__permissions.html#ga24">00110</a> <span class="preprocessor">#define APR_WWRITE     APR_FPROT_WWRITE     </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_WWRITE     */</span>
+<a name="l00111"></a><a class="code" href="group__apr__file__permissions.html#ga25">00111</a> <span class="preprocessor">#define APR_WEXECUTE   APR_FPROT_WEXECUTE   </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_WEXECUTE   */</span>
+<a name="l00112"></a><a class="code" href="group__apr__file__permissions.html#ga26">00112</a> <span class="preprocessor">#define APR_OS_DEFAULT APR_FPROT_OS_DEFAULT </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_OS_DEFAULT */</span>
+<a name="l00113"></a><a class="code" href="group__apr__file__permissions.html#ga27">00113</a> <span class="preprocessor">#define APR_FILE_SOURCE_PERMS APR_FPROT_FILE_SOURCE_PERMS </span><span class="comment">/**&lt; @deprecated @see APR_FPROT_FILE_SOURCE_PERMS */</span>
+00114     <span class="comment"></span>
+00115 <span class="comment">/** @} */</span>
+00116 
+00117 <span class="comment"></span>
+00118 <span class="comment">/**</span>
+00119 <span class="comment"> * Structure for referencing directories.</span>
+00120 <span class="comment"> */</span>
+<a name="l00121"></a><a class="code" href="group__apr__file__info.html#ga0">00121</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__apr__file__info.html#ga0">apr_dir_t</a>          <a class="code" href="group__apr__file__info.html#ga0">apr_dir_t</a>;<span class="comment"></span>
+00122 <span class="comment">/**</span>
+00123 <span class="comment"> * Structure for determining file permissions.</span>
+00124 <span class="comment"> */</span>
+<a name="l00125"></a><a class="code" href="group__apr__file__info.html#ga1">00125</a> <span class="keyword">typedef</span> apr_int32_t               <a class="code" href="group__apr__file__info.html#ga1">apr_fileperms_t</a>;
+00126 <span class="preprocessor">#if (defined WIN32) || (defined NETWARE)</span>
+00127 <span class="preprocessor"></span><span class="comment">/**</span>
+00128 <span class="comment"> * Structure for determining the inode of the file.</span>
+00129 <span class="comment"> */</span>
+00130 <span class="keyword">typedef</span> apr_uint64_t              <a class="code" href="group__apr__file__info.html#ga2">apr_ino_t</a>;<span class="comment"></span>
+00131 <span class="comment">/**</span>
+00132 <span class="comment"> * Structure for determining the device the file is on.</span>
+00133 <span class="comment"> */</span>
+00134 <span class="keyword">typedef</span> apr_uint32_t              <a class="code" href="group__apr__file__info.html#ga3">apr_dev_t</a>;
+00135 <span class="preprocessor">#else</span>
+00136 <span class="preprocessor"></span><span class="comment">/** The inode of the file. */</span>
+<a name="l00137"></a><a class="code" href="group__apr__file__info.html#ga2">00137</a> <span class="keyword">typedef</span> ino_t                     <a class="code" href="group__apr__file__info.html#ga2">apr_ino_t</a>;<span class="comment"></span>
+00138 <span class="comment">/**</span>
+00139 <span class="comment"> * Structure for determining the device the file is on.</span>
+00140 <span class="comment"> */</span>
+<a name="l00141"></a><a class="code" href="group__apr__file__info.html#ga3">00141</a> <span class="keyword">typedef</span> dev_t                     <a class="code" href="group__apr__file__info.html#ga3">apr_dev_t</a>;
+00142 <span class="preprocessor">#endif</span>
+00143 <span class="preprocessor"></span><span class="comment"></span>
+00144 <span class="comment">/**</span>
+00145 <span class="comment"> * @defgroup apr_file_stat Stat Functions</span>
+00146 <span class="comment"> * @{</span>
+00147 <span class="comment"> */</span><span class="comment"></span>
+00148 <span class="comment">/** file info structure */</span>
+<a name="l00149"></a><a class="code" href="group__apr__file__stat.html#ga0">00149</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__finfo__t.html">apr_finfo_t</a>        <a class="code" href="group__apr__file__stat.html#ga0">apr_finfo_t</a>;
+00150 
+<a name="l00151"></a><a class="code" href="group__apr__file__stat.html#ga2">00151</a> <span class="preprocessor">#define APR_FINFO_LINK   0x00000001 </span><span class="comment">/**&lt; Stat the link not the file itself if it is a link */</span>
+<a name="l00152"></a><a class="code" href="group__apr__file__stat.html#ga3">00152</a> <span class="preprocessor">#define APR_FINFO_MTIME  0x00000010 </span><span class="comment">/**&lt; Modification Time */</span>
+<a name="l00153"></a><a class="code" href="group__apr__file__stat.html#ga4">00153</a> <span class="preprocessor">#define APR_FINFO_CTIME  0x00000020 </span><span class="comment">/**&lt; Creation or inode-changed time */</span>
+<a name="l00154"></a><a class="code" href="group__apr__file__stat.html#ga5">00154</a> <span class="preprocessor">#define APR_FINFO_ATIME  0x00000040 </span><span class="comment">/**&lt; Access Time */</span>
+<a name="l00155"></a><a class="code" href="group__apr__file__stat.html#ga6">00155</a> <span class="preprocessor">#define APR_FINFO_SIZE   0x00000100 </span><span class="comment">/**&lt; Size of the file */</span>
+<a name="l00156"></a><a class="code" href="group__apr__file__stat.html#ga7">00156</a> <span class="preprocessor">#define APR_FINFO_CSIZE  0x00000200 </span><span class="comment">/**&lt; Storage size consumed by the file */</span>
+<a name="l00157"></a><a class="code" href="group__apr__file__stat.html#ga8">00157</a> <span class="preprocessor">#define APR_FINFO_DEV    0x00001000 </span><span class="comment">/**&lt; Device */</span>
+<a name="l00158"></a><a class="code" href="group__apr__file__stat.html#ga9">00158</a> <span class="preprocessor">#define APR_FINFO_INODE  0x00002000 </span><span class="comment">/**&lt; Inode */</span>
+<a name="l00159"></a><a class="code" href="group__apr__file__stat.html#ga10">00159</a> <span class="preprocessor">#define APR_FINFO_NLINK  0x00004000 </span><span class="comment">/**&lt; Number of links */</span>
+<a name="l00160"></a><a class="code" href="group__apr__file__stat.html#ga11">00160</a> <span class="preprocessor">#define APR_FINFO_TYPE   0x00008000 </span><span class="comment">/**&lt; Type */</span>
+<a name="l00161"></a><a class="code" href="group__apr__file__stat.html#ga12">00161</a> <span class="preprocessor">#define APR_FINFO_USER   0x00010000 </span><span class="comment">/**&lt; User */</span>
+<a name="l00162"></a><a class="code" href="group__apr__file__stat.html#ga13">00162</a> <span class="preprocessor">#define APR_FINFO_GROUP  0x00020000 </span><span class="comment">/**&lt; Group */</span>
+<a name="l00163"></a><a class="code" href="group__apr__file__stat.html#ga14">00163</a> <span class="preprocessor">#define APR_FINFO_UPROT  0x00100000 </span><span class="comment">/**&lt; User protection bits */</span>
+<a name="l00164"></a><a class="code" href="group__apr__file__stat.html#ga15">00164</a> <span class="preprocessor">#define APR_FINFO_GPROT  0x00200000 </span><span class="comment">/**&lt; Group protection bits */</span>
+<a name="l00165"></a><a class="code" href="group__apr__file__stat.html#ga16">00165</a> <span class="preprocessor">#define APR_FINFO_WPROT  0x00400000 </span><span class="comment">/**&lt; World protection bits */</span>
+<a name="l00166"></a><a class="code" href="group__apr__file__stat.html#ga17">00166</a> <span class="preprocessor">#define APR_FINFO_ICASE  0x01000000 </span><span class="comment">/**&lt; if dev is case insensitive */</span>
+<a name="l00167"></a><a class="code" href="group__apr__file__stat.html#ga18">00167</a> <span class="preprocessor">#define APR_FINFO_NAME   0x02000000 </span><span class="comment">/**&lt; -&gt;name in proper case */</span>
+00168 
+<a name="l00169"></a><a class="code" href="group__apr__file__stat.html#ga19">00169</a> <span class="preprocessor">#define APR_FINFO_MIN    0x00008170 </span><span class="comment">/**&lt; type, mtime, ctime, atime, size */</span>
+<a name="l00170"></a><a class="code" href="group__apr__file__stat.html#ga20">00170</a> <span class="preprocessor">#define APR_FINFO_IDENT  0x00003000 </span><span class="comment">/**&lt; dev and inode */</span>
+<a name="l00171"></a><a class="code" href="group__apr__file__stat.html#ga21">00171</a> <span class="preprocessor">#define APR_FINFO_OWNER  0x00030000 </span><span class="comment">/**&lt; user and group */</span>
+<a name="l00172"></a><a class="code" href="group__apr__file__stat.html#ga22">00172</a> <span class="preprocessor">#define APR_FINFO_PROT   0x00700000 </span><span class="comment">/**&lt;  all protections */</span>
+<a name="l00173"></a><a class="code" href="group__apr__file__stat.html#ga23">00173</a> <span class="preprocessor">#define APR_FINFO_NORM   0x0073b170 </span><span class="comment">/**&lt;  an atomic unix apr_stat() */</span>
+<a name="l00174"></a><a class="code" href="group__apr__file__stat.html#ga24">00174</a> <span class="preprocessor">#define APR_FINFO_DIRENT 0x02000000 </span><span class="comment">/**&lt;  an atomic unix apr_dir_read() */</span>
+00175 <span class="comment"></span>
+00176 <span class="comment">/**</span>
+00177 <span class="comment"> * The file information structure.  This is analogous to the POSIX</span>
+00178 <span class="comment"> * stat structure.</span>
+00179 <span class="comment"> */</span>
+<a name="l00180"></a><a class="code" href="structapr__finfo__t.html">00180</a> <span class="keyword">struct </span><a class="code" href="group__apr__file__stat.html#ga0">apr_finfo_t</a> {<span class="comment"></span>
+00181 <span class="comment">    /** Allocates memory and closes lingering handles in the specified pool */</span>
+<a name="l00182"></a><a class="code" href="structapr__finfo__t.html#o0">00182</a>     <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *<a class="code" href="structapr__finfo__t.html#o0">pool</a>;<span class="comment"></span>
+00183 <span class="comment">    /** The bitmask describing valid fields of this apr_finfo_t structure </span>
+00184 <span class="comment">     *  including all available 'wanted' fields and potentially more */</span>
+<a name="l00185"></a><a class="code" href="structapr__finfo__t.html#o1">00185</a>     apr_int32_t <a class="code" href="structapr__finfo__t.html#o1">valid</a>;<span class="comment"></span>
+00186 <span class="comment">    /** The access permissions of the file.  Mimics Unix access rights. */</span>
+<a name="l00187"></a><a class="code" href="structapr__finfo__t.html#o2">00187</a>     <a class="code" href="group__apr__file__info.html#ga1">apr_fileperms_t</a> <a class="code" href="structapr__finfo__t.html#o2">protection</a>;<span class="comment"></span>
+00188 <span class="comment">    /** The type of file.  One of APR_REG, APR_DIR, APR_CHR, APR_BLK, APR_PIPE, </span>
+00189 <span class="comment">     * APR_LNK or APR_SOCK.  If the type is undetermined, the value is APR_NOFILE.</span>
+00190 <span class="comment">     * If the type cannot be determined, the value is APR_UNKFILE.</span>
+00191 <span class="comment">     */</span>
+<a name="l00192"></a><a class="code" href="structapr__finfo__t.html#o3">00192</a>     <a class="code" href="group__apr__file__info.html#ga4">apr_filetype_e</a> <a class="code" href="structapr__finfo__t.html#o3">filetype</a>;<span class="comment"></span>
+00193 <span class="comment">    /** The user id that owns the file */</span>
+<a name="l00194"></a><a class="code" href="structapr__finfo__t.html#o4">00194</a>     <a class="code" href="group__apr__user.html#ga0">apr_uid_t</a> <a class="code" href="structapr__finfo__t.html#o4">user</a>;<span class="comment"></span>
+00195 <span class="comment">    /** The group id that owns the file */</span>
+<a name="l00196"></a><a class="code" href="structapr__finfo__t.html#o5">00196</a>     <a class="code" href="group__apr__user.html#ga1">apr_gid_t</a> <a class="code" href="structapr__finfo__t.html#o5">group</a>;<span class="comment"></span>
+00197 <span class="comment">    /** The inode of the file. */</span>
+<a name="l00198"></a><a class="code" href="structapr__finfo__t.html#o6">00198</a>     <a class="code" href="group__apr__file__info.html#ga2">apr_ino_t</a> <a class="code" href="structapr__finfo__t.html#o6">inode</a>;<span class="comment"></span>
+00199 <span class="comment">    /** The id of the device the file is on. */</span>
+<a name="l00200"></a><a class="code" href="structapr__finfo__t.html#o7">00200</a>     <a class="code" href="group__apr__file__info.html#ga3">apr_dev_t</a> <a class="code" href="structapr__finfo__t.html#o7">device</a>;<span class="comment"></span>
+00201 <span class="comment">    /** The number of hard links to the file. */</span>
+<a name="l00202"></a><a class="code" href="structapr__finfo__t.html#o8">00202</a>     apr_int32_t <a class="code" href="structapr__finfo__t.html#o8">nlink</a>;<span class="comment"></span>
+00203 <span class="comment">    /** The size of the file */</span>
+<a name="l00204"></a><a class="code" href="structapr__finfo__t.html#o9">00204</a>     apr_off_t <a class="code" href="structapr__finfo__t.html#o9">size</a>;<span class="comment"></span>
+00205 <span class="comment">    /** The storage size consumed by the file */</span>
+<a name="l00206"></a><a class="code" href="structapr__finfo__t.html#o10">00206</a>     apr_off_t <a class="code" href="structapr__finfo__t.html#o10">csize</a>;<span class="comment"></span>
+00207 <span class="comment">    /** The time the file was last accessed */</span>
+<a name="l00208"></a><a class="code" href="structapr__finfo__t.html#o11">00208</a>     <a class="code" href="group__apr__time.html#ga2">apr_time_t</a> <a class="code" href="structapr__finfo__t.html#o11">atime</a>;<span class="comment"></span>
+00209 <span class="comment">    /** The time the file was last modified */</span>
+<a name="l00210"></a><a class="code" href="structapr__finfo__t.html#o12">00210</a>     <a class="code" href="group__apr__time.html#ga2">apr_time_t</a> <a class="code" href="structapr__finfo__t.html#o12">mtime</a>;<span class="comment"></span>
+00211 <span class="comment">    /** The time the file was created, or the inode was last changed */</span>
+<a name="l00212"></a><a class="code" href="structapr__finfo__t.html#o13">00212</a>     <a class="code" href="group__apr__time.html#ga2">apr_time_t</a> <a class="code" href="structapr__finfo__t.html#o13">ctime</a>;<span class="comment"></span>
+00213 <span class="comment">    /** The pathname of the file (possibly unrooted) */</span>
+<a name="l00214"></a><a class="code" href="structapr__finfo__t.html#o14">00214</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__finfo__t.html#o14">fname</a>;<span class="comment"></span>
+00215 <span class="comment">    /** The file's name (no path) in filesystem case */</span>
+<a name="l00216"></a><a class="code" href="structapr__finfo__t.html#o15">00216</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__finfo__t.html#o15">name</a>;<span class="comment"></span>
+00217 <span class="comment">    /** The file's handle, if accessed (can be submitted to apr_duphandle) */</span>
+<a name="l00218"></a><a class="code" href="structapr__finfo__t.html#o16">00218</a>     <span class="keyword">struct </span><a class="code" href="group__apr__file__io.html#ga2">apr_file_t</a> *<a class="code" href="structapr__finfo__t.html#o16">filehand</a>;
+00219 };
+00220 <span class="comment"></span>
+00221 <span class="comment">/**</span>
+00222 <span class="comment"> * get the specified file's stats.  The file is specified by filename, </span>
+00223 <span class="comment"> * instead of using a pre-opened file.</span>
+00224 <span class="comment"> * @param finfo Where to store the information about the file, which is</span>
+00225 <span class="comment"> * never touched if the call fails.</span>
+00226 <span class="comment"> * @param fname The name of the file to stat.</span>
+00227 <span class="comment"> * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values </span>
+00228 <span class="comment"> * @param pool the pool to use to allocate the new file. </span>
+00229 <span class="comment"> */</span> 
+00230 APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const <span class="keywordtype">char</span> *fname,
+00231                                    apr_int32_t wanted, apr_pool_t *pool);
+00232 <span class="comment"></span>
+00233 <span class="comment">/** @} */</span><span class="comment"></span>
+00234 <span class="comment">/**</span>
+00235 <span class="comment"> * @defgroup apr_dir Directory Manipulation Functions</span>
+00236 <span class="comment"> * @{</span>
+00237 <span class="comment"> */</span>
+00238 <span class="comment"></span>
+00239 <span class="comment">/**</span>
+00240 <span class="comment"> * Open the specified directory.</span>
+00241 <span class="comment"> * @param new_dir The opened directory descriptor.</span>
+00242 <span class="comment"> * @param dirname The full path to the directory (use / on all systems)</span>
+00243 <span class="comment"> * @param pool The pool to use.</span>
 00244 <span class="comment"> */</span>                        
-00245 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted,
-00246                                        apr_dir_t *thedir);
-00247 <span class="comment"></span>
-00248 <span class="comment">/**</span>
-00249 <span class="comment"> * Rewind the directory to the first entry.</span>
-00250 <span class="comment"> * @param thedir the directory descriptor to rewind.</span>
-00251 <span class="comment"> */</span>                        
-00252 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_dir_rewind(apr_dir_t *thedir);<span class="comment"></span>
-00253 <span class="comment">/** @} */</span>
+00245 APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new_dir, 
+00246                                        const <span class="keywordtype">char</span> *dirname, 
+00247                                        apr_pool_t *pool);
+00248 <span class="comment"></span>
+00249 <span class="comment">/**</span>
+00250 <span class="comment"> * close the specified directory. </span>
+00251 <span class="comment"> * @param thedir the directory descriptor to close.</span>
+00252 <span class="comment"> */</span>                        
+00253 APR_DECLARE(apr_status_t) apr_dir_close(apr_dir_t *thedir);
 00254 <span class="comment"></span>
 00255 <span class="comment">/**</span>
-00256 <span class="comment"> * @defgroup apr_filepath Filepath Manipulation Functions</span>
-00257 <span class="comment"> * @{</span>
-00258 <span class="comment"> */</span>
-00259 <span class="comment"></span>
-00260 <span class="comment">/** Cause apr_filepath_merge to fail if addpath is above rootpath */</span>
-<a name="l00261"></a><a class="code" href="group__apr__filepath.html#ga7">00261</a> #define APR_FILEPATH_NOTABOVEROOT   0x01
-00262 <span class="comment"></span>
-00263 <span class="comment">/** internal: Only meaningful with APR_FILEPATH_NOTABOVEROOT */</span>
-<a name="l00264"></a><a class="code" href="group__apr__filepath.html#ga8">00264</a> #define APR_FILEPATH_SECUREROOTTEST 0x02
-00265 <span class="comment"></span>
-00266 <span class="comment">/** Cause apr_filepath_merge to fail if addpath is above rootpath,</span>
-00267 <span class="comment"> * even given a rootpath /foo/bar and an addpath ../bar/bash</span>
-00268 <span class="comment"> */</span>
-<a name="l00269"></a><a class="code" href="group__apr__filepath.html#ga9">00269</a> #define APR_FILEPATH_SECUREROOT     0x03
-00270 <span class="comment"></span>
-00271 <span class="comment">/** Fail apr_filepath_merge if the merged path is relative */</span>
-<a name="l00272"></a><a class="code" href="group__apr__filepath.html#ga10">00272</a> #define APR_FILEPATH_NOTRELATIVE    0x04
-00273 <span class="comment"></span>
-00274 <span class="comment">/** Fail apr_filepath_merge if the merged path is absolute */</span>
-<a name="l00275"></a><a class="code" href="group__apr__filepath.html#ga11">00275</a> #define APR_FILEPATH_NOTABSOLUTE    0x08
+00256 <span class="comment"> * Read the next entry from the specified directory. </span>
+00257 <span class="comment"> * @param finfo the file info structure and filled in by apr_dir_read</span>
+00258 <span class="comment"> * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values </span>
+00259 <span class="comment"> * @param thedir the directory descriptor returned from apr_dir_open</span>
+00260 <span class="comment"> * @remark No ordering is guaranteed for the entries read.</span>
+00261 <span class="comment"> */</span>                        
+00262 APR_DECLARE(apr_status_t) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted,
+00263                                        apr_dir_t *thedir);
+00264 <span class="comment"></span>
+00265 <span class="comment">/**</span>
+00266 <span class="comment"> * Rewind the directory to the first entry.</span>
+00267 <span class="comment"> * @param thedir the directory descriptor to rewind.</span>
+00268 <span class="comment"> */</span>                        
+00269 APR_DECLARE(apr_status_t) apr_dir_rewind(apr_dir_t *thedir);<span class="comment"></span>
+00270 <span class="comment">/** @} */</span>
+00271 <span class="comment"></span>
+00272 <span class="comment">/**</span>
+00273 <span class="comment"> * @defgroup apr_filepath Filepath Manipulation Functions</span>
+00274 <span class="comment"> * @{</span>
+00275 <span class="comment"> */</span>
 00276 <span class="comment"></span>
-00277 <span class="comment">/** Return the file system's native path format (e.g. path delimiters</span>
-00278 <span class="comment"> * of ':' on MacOS9, '\' on Win32, etc.) */</span>
-<a name="l00279"></a><a class="code" href="group__apr__filepath.html#ga12">00279</a> #define APR_FILEPATH_NATIVE         0x10
-00280 <span class="comment"></span>
-00281 <span class="comment">/** Resolve the true case of existing directories and file elements</span>
-00282 <span class="comment"> * of addpath, (resolving any aliases on Win32) and append a proper </span>
-00283 <span class="comment"> * trailing slash if a directory</span>
-00284 <span class="comment"> */</span>
-<a name="l00285"></a><a class="code" href="group__apr__filepath.html#ga13">00285</a> #define APR_FILEPATH_TRUENAME       0x20
-00286 <span class="comment"></span>
-00287 <span class="comment">/**</span>
-00288 <span class="comment"> * Extract the rootpath from the given filepath</span>
-00289 <span class="comment"> * @param rootpath the root file path returned with APR_SUCCESS or APR_EINCOMPLETE</span>
-00290 <span class="comment"> * @param filepath the pathname to parse for its root component</span>
-00291 <span class="comment"> * @param flags the desired rules to apply, from</span>
-00292 <span class="comment"> * &lt;PRE&gt;</span>
-00293 <span class="comment"> *      APR_FILEPATH_NATIVE    Use native path seperators (e.g. '\' on Win32)</span>
-00294 <span class="comment"> *      APR_FILEPATH_TRUENAME  Tests that the root exists, and makes it proper</span>
-00295 <span class="comment"> * &lt;/PRE&gt;</span>
-00296 <span class="comment"> * @param p the pool to allocate the new path string from</span>
-00297 <span class="comment"> * @remark on return, filepath points to the first non-root character in the</span>
-00298 <span class="comment"> * given filepath.  In the simplest example, given a filepath of "/foo", </span>
-00299 <span class="comment"> * returns the rootpath of "/" and filepath points at "foo".  This is far </span>
-00300 <span class="comment"> * more complex on other platforms, which will canonicalize the root form</span>
-00301 <span class="comment"> * to a consistant format, given the APR_FILEPATH_TRUENAME flag, and also</span>
-00302 <span class="comment"> * test for the validity of that root (e.g., that a drive d:/ or network </span>
-00303 <span class="comment"> * share //machine/foovol/). </span>
-00304 <span class="comment"> * The function returns APR_ERELATIVE if filepath isn't rooted (an</span>
-00305 <span class="comment"> * error), APR_EINCOMPLETE if the root path is ambigious (but potentially</span>
-00306 <span class="comment"> * legitimate, e.g. "/" on Windows is incomplete because it doesn't specify</span>
-00307 <span class="comment"> * the drive letter), or APR_EBADPATH if the root is simply invalid.</span>
-00308 <span class="comment"> * APR_SUCCESS is returned if filepath is an absolute path.</span>
-00309 <span class="comment"> */</span>
-00310 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_root(const <span class="keywordtype">char</span> **rootpath, 
-00311                                             const <span class="keywordtype">char</span> **filepath, 
-00312                                             apr_int32_t flags,
-00313                                             <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);
-00314 <span class="comment"></span>
-00315 <span class="comment">/**</span>
-00316 <span class="comment"> * Merge additional file path onto the previously processed rootpath</span>
-00317 <span class="comment"> * @param newpath the merged paths returned</span>
-00318 <span class="comment"> * @param rootpath the root file path (NULL uses the current working path)</span>
-00319 <span class="comment"> * @param addpath the path to add to the root path</span>
-00320 <span class="comment"> * @param flags the desired APR_FILEPATH_ rules to apply when merging</span>
-00321 <span class="comment"> * @param p the pool to allocate the new path string from</span>
-00322 <span class="comment"> * @remark if the flag APR_FILEPATH_TRUENAME is given, and the addpath </span>
-00323 <span class="comment"> * contains wildcard characters ('*', '?') on platforms that don't support </span>
-00324 <span class="comment"> * such characters within filenames, the paths will be merged, but the </span>
-00325 <span class="comment"> * result code will be APR_EPATHWILD, and all further segments will not</span>
-00326 <span class="comment"> * reflect the true filenames including the wildcard and following segments.</span>
-00327 <span class="comment"> */</span>                        
-00328 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_merge(<span class="keywordtype">char</span> **newpath, 
-00329                                              const <span class="keywordtype">char</span> *rootpath,
-00330                                              const <span class="keywordtype">char</span> *addpath, 
-00331                                              apr_int32_t flags,
-00332                                              <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);
-00333 <span class="comment"></span>
-00334 <span class="comment">/**</span>
-00335 <span class="comment"> * Split a search path into separate components</span>
-00336 <span class="comment"> * @param pathelts the returned components of the search path</span>
-00337 <span class="comment"> * @param liststr the search path (e.g., &lt;tt&gt;getenv("PATH")&lt;/tt&gt;)</span>
-00338 <span class="comment"> * @param p the pool to allocate the array and path components from</span>
-00339 <span class="comment"> * @remark empty path componenta do not become part of @a pathelts.</span>
-00340 <span class="comment"> * @remark the path separator in @a liststr is system specific;</span>
-00341 <span class="comment"> * e.g., ':' on Unix, ';' on Windows, etc.</span>
-00342 <span class="comment"> */</span>
-00343 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_list_split(<a class="code" href="structapr__array__header__t.html">apr_array_header_t</a> **pathelts,
-00344                                                   const <span class="keywordtype">char</span> *liststr,
-00345                                                   <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);
-00346 <span class="comment"></span>
-00347 <span class="comment">/**</span>
-00348 <span class="comment"> * Merge a list of search path components into a single search path</span>
-00349 <span class="comment"> * @param liststr the returned search path; may be NULL if @a pathelts is empty</span>
-00350 <span class="comment"> * @param pathelts the components of the search path</span>
-00351 <span class="comment"> * @param p the pool to allocate the search path from</span>
-00352 <span class="comment"> * @remark emtpy strings in the source array are ignored.</span>
-00353 <span class="comment"> * @remark the path separator in @a liststr is system specific;</span>
-00354 <span class="comment"> * e.g., ':' on Unix, ';' on Windows, etc.</span>
-00355 <span class="comment"> */</span>
-00356 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_list_merge(<span class="keywordtype">char</span> **liststr,
-00357                                                   <a class="code" href="structapr__array__header__t.html">apr_array_header_t</a> *pathelts,
-00358                                                   <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);
-00359 <span class="comment"></span>
-00360 <span class="comment">/**</span>
-00361 <span class="comment"> * Return the default file path (for relative file names)</span>
-00362 <span class="comment"> * @param path the default path string returned</span>
-00363 <span class="comment"> * @param flags optional flag APR_FILEPATH_NATIVE to retrieve the</span>
-00364 <span class="comment"> *              default file path in os-native format.</span>
-00365 <span class="comment"> * @param p the pool to allocate the default path string from</span>
-00366 <span class="comment"> */</span>
-00367 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_get(<span class="keywordtype">char</span> **path, apr_int32_t flags,
-00368                                            <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);
-00369 <span class="comment"></span>
-00370 <span class="comment">/**</span>
-00371 <span class="comment"> * Set the default file path (for relative file names)</span>
-00372 <span class="comment"> * @param path the default path returned</span>
-00373 <span class="comment"> * @param p the pool to allocate any working storage</span>
-00374 <span class="comment"> */</span>
-00375 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_set(const <span class="keywordtype">char</span> *path, <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);
+00277 <span class="comment">/** Cause apr_filepath_merge to fail if addpath is above rootpath */</span>
+<a name="l00278"></a><a class="code" href="group__apr__filepath.html#ga7">00278</a> #define APR_FILEPATH_NOTABOVEROOT   0x01
+00279 <span class="comment"></span>
+00280 <span class="comment">/** internal: Only meaningful with APR_FILEPATH_NOTABOVEROOT */</span>
+<a name="l00281"></a><a class="code" href="group__apr__filepath.html#ga8">00281</a> #define APR_FILEPATH_SECUREROOTTEST 0x02
+00282 <span class="comment"></span>
+00283 <span class="comment">/** Cause apr_filepath_merge to fail if addpath is above rootpath,</span>
+00284 <span class="comment"> * even given a rootpath /foo/bar and an addpath ../bar/bash</span>
+00285 <span class="comment"> */</span>
+<a name="l00286"></a><a class="code" href="group__apr__filepath.html#ga9">00286</a> #define APR_FILEPATH_SECUREROOT     0x03
+00287 <span class="comment"></span>
+00288 <span class="comment">/** Fail apr_filepath_merge if the merged path is relative */</span>
+<a name="l00289"></a><a class="code" href="group__apr__filepath.html#ga10">00289</a> #define APR_FILEPATH_NOTRELATIVE    0x04
+00290 <span class="comment"></span>
+00291 <span class="comment">/** Fail apr_filepath_merge if the merged path is absolute */</span>
+<a name="l00292"></a><a class="code" href="group__apr__filepath.html#ga11">00292</a> #define APR_FILEPATH_NOTABSOLUTE    0x08
+00293 <span class="comment"></span>
+00294 <span class="comment">/** Return the file system's native path format (e.g. path delimiters</span>
+00295 <span class="comment"> * of ':' on MacOS9, '\' on Win32, etc.) */</span>
+<a name="l00296"></a><a class="code" href="group__apr__filepath.html#ga12">00296</a> #define APR_FILEPATH_NATIVE         0x10
+00297 <span class="comment"></span>
+00298 <span class="comment">/** Resolve the true case of existing directories and file elements</span>
+00299 <span class="comment"> * of addpath, (resolving any aliases on Win32) and append a proper </span>
+00300 <span class="comment"> * trailing slash if a directory</span>
+00301 <span class="comment"> */</span>
+<a name="l00302"></a><a class="code" href="group__apr__filepath.html#ga13">00302</a> #define APR_FILEPATH_TRUENAME       0x20
+00303 <span class="comment"></span>
+00304 <span class="comment">/**</span>
+00305 <span class="comment"> * Extract the rootpath from the given filepath</span>
+00306 <span class="comment"> * @param rootpath the root file path returned with APR_SUCCESS or APR_EINCOMPLETE</span>
+00307 <span class="comment"> * @param filepath the pathname to parse for its root component</span>
+00308 <span class="comment"> * @param flags the desired rules to apply, from</span>
+00309 <span class="comment"> * &lt;PRE&gt;</span>
+00310 <span class="comment"> *      APR_FILEPATH_NATIVE    Use native path seperators (e.g. '\' on Win32)</span>
+00311 <span class="comment"> *      APR_FILEPATH_TRUENAME  Tests that the root exists, and makes it proper</span>
+00312 <span class="comment"> * &lt;/PRE&gt;</span>
+00313 <span class="comment"> * @param p the pool to allocate the new path string from</span>
+00314 <span class="comment"> * @remark on return, filepath points to the first non-root character in the</span>
+00315 <span class="comment"> * given filepath.  In the simplest example, given a filepath of "/foo", </span>
+00316 <span class="comment"> * returns the rootpath of "/" and filepath points at "foo".  This is far </span>
+00317 <span class="comment"> * more complex on other platforms, which will canonicalize the root form</span>
+00318 <span class="comment"> * to a consistant format, given the APR_FILEPATH_TRUENAME flag, and also</span>
+00319 <span class="comment"> * test for the validity of that root (e.g., that a drive d:/ or network </span>
+00320 <span class="comment"> * share //machine/foovol/). </span>
+00321 <span class="comment"> * The function returns APR_ERELATIVE if filepath isn't rooted (an</span>
+00322 <span class="comment"> * error), APR_EINCOMPLETE if the root path is ambigious (but potentially</span>
+00323 <span class="comment"> * legitimate, e.g. "/" on Windows is incomplete because it doesn't specify</span>
+00324 <span class="comment"> * the drive letter), or APR_EBADPATH if the root is simply invalid.</span>
+00325 <span class="comment"> * APR_SUCCESS is returned if filepath is an absolute path.</span>
+00326 <span class="comment"> */</span>
+00327 APR_DECLARE(apr_status_t) apr_filepath_root(const <span class="keywordtype">char</span> **rootpath, 
+00328                                             const <span class="keywordtype">char</span> **filepath, 
+00329                                             apr_int32_t flags,
+00330                                             apr_pool_t *p);
+00331 <span class="comment"></span>
+00332 <span class="comment">/**</span>
+00333 <span class="comment"> * Merge additional file path onto the previously processed rootpath</span>
+00334 <span class="comment"> * @param newpath the merged paths returned</span>
+00335 <span class="comment"> * @param rootpath the root file path (NULL uses the current working path)</span>
+00336 <span class="comment"> * @param addpath the path to add to the root path</span>
+00337 <span class="comment"> * @param flags the desired APR_FILEPATH_ rules to apply when merging</span>
+00338 <span class="comment"> * @param p the pool to allocate the new path string from</span>
+00339 <span class="comment"> * @remark if the flag APR_FILEPATH_TRUENAME is given, and the addpath </span>
+00340 <span class="comment"> * contains wildcard characters ('*', '?') on platforms that don't support </span>
+00341 <span class="comment"> * such characters within filenames, the paths will be merged, but the </span>
+00342 <span class="comment"> * result code will be APR_EPATHWILD, and all further segments will not</span>
+00343 <span class="comment"> * reflect the true filenames including the wildcard and following segments.</span>
+00344 <span class="comment"> */</span>                        
+00345 APR_DECLARE(apr_status_t) apr_filepath_merge(<span class="keywordtype">char</span> **newpath, 
+00346                                              const <span class="keywordtype">char</span> *rootpath,
+00347                                              const <span class="keywordtype">char</span> *addpath, 
+00348                                              apr_int32_t flags,
+00349                                              apr_pool_t *p);
+00350 <span class="comment"></span>
+00351 <span class="comment">/**</span>
+00352 <span class="comment"> * Split a search path into separate components</span>
+00353 <span class="comment"> * @param pathelts the returned components of the search path</span>
+00354 <span class="comment"> * @param liststr the search path (e.g., &lt;tt&gt;getenv("PATH")&lt;/tt&gt;)</span>
+00355 <span class="comment"> * @param p the pool to allocate the array and path components from</span>
+00356 <span class="comment"> * @remark empty path componenta do not become part of @a pathelts.</span>
+00357 <span class="comment"> * @remark the path separator in @a liststr is system specific;</span>
+00358 <span class="comment"> * e.g., ':' on Unix, ';' on Windows, etc.</span>
+00359 <span class="comment"> */</span>
+00360 APR_DECLARE(apr_status_t) apr_filepath_list_split(<a class="code" href="structapr__array__header__t.html">apr_array_header_t</a> **pathelts,
+00361                                                   const <span class="keywordtype">char</span> *liststr,
+00362                                                   apr_pool_t *p);
+00363 <span class="comment"></span>
+00364 <span class="comment">/**</span>
+00365 <span class="comment"> * Merge a list of search path components into a single search path</span>
+00366 <span class="comment"> * @param liststr the returned search path; may be NULL if @a pathelts is empty</span>
+00367 <span class="comment"> * @param pathelts the components of the search path</span>
+00368 <span class="comment"> * @param p the pool to allocate the search path from</span>
+00369 <span class="comment"> * @remark emtpy strings in the source array are ignored.</span>
+00370 <span class="comment"> * @remark the path separator in @a liststr is system specific;</span>
+00371 <span class="comment"> * e.g., ':' on Unix, ';' on Windows, etc.</span>
+00372 <span class="comment"> */</span>
+00373 APR_DECLARE(apr_status_t) apr_filepath_list_merge(<span class="keywordtype">char</span> **liststr,
+00374                                                   <a class="code" href="structapr__array__header__t.html">apr_array_header_t</a> *pathelts,
+00375                                                   apr_pool_t *p);
 00376 <span class="comment"></span>
-00377 <span class="comment">/** The FilePath character encoding is unknown */</span>
-<a name="l00378"></a><a class="code" href="group__apr__filepath.html#ga14">00378</a> #define APR_FILEPATH_ENCODING_UNKNOWN  0
-00379 <span class="comment"></span>
-00380 <span class="comment">/** The FilePath character encoding is locale-dependent */</span>
-<a name="l00381"></a><a class="code" href="group__apr__filepath.html#ga15">00381</a> #define APR_FILEPATH_ENCODING_LOCALE   1
-00382 <span class="comment"></span>
-00383 <span class="comment">/** The FilePath character encoding is UTF-8 */</span>
-<a name="l00384"></a><a class="code" href="group__apr__filepath.html#ga16">00384</a> #define APR_FILEPATH_ENCODING_UTF8     2
-00385 <span class="comment"></span>
-00386 <span class="comment">/**</span>
-00387 <span class="comment"> * Determine the encoding used internally by the FilePath functions</span>
-00388 <span class="comment"> * @param style points to a variable which receives the encoding style flag</span>
-00389 <span class="comment"> * @param p the pool to allocate any working storage</span>
-00390 <span class="comment"> * @remark Use @c apr_os_locale_encoding and/or @c apr_os_default_encoding</span>
-00391 <span class="comment"> * to get the name of the path encoding if it's not UTF-8.</span>
-00392 <span class="comment"> */</span>
-00393 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_filepath_encoding(<span class="keywordtype">int</span> *style, <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p);<span class="comment"></span>
-00394 <span class="comment">/** @} */</span>
-00395 <span class="comment"></span>
-00396 <span class="comment">/** @} */</span>
-00397 
-00398 #ifdef __cplusplus
-00399 }
-00400 #endif
-00401 
-00402 #endif  <span class="comment">/* ! APR_FILE_INFO_H */</span>
-</div></pre><hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:36:04 2004 for Apache Portable Runtime by
+00377 <span class="comment">/**</span>
+00378 <span class="comment"> * Return the default file path (for relative file names)</span>
+00379 <span class="comment"> * @param path the default path string returned</span>
+00380 <span class="comment"> * @param flags optional flag APR_FILEPATH_NATIVE to retrieve the</span>
+00381 <span class="comment"> *              default file path in os-native format.</span>
+00382 <span class="comment"> * @param p the pool to allocate the default path string from</span>
+00383 <span class="comment"> */</span>
+00384 APR_DECLARE(apr_status_t) apr_filepath_get(<span class="keywordtype">char</span> **path, apr_int32_t flags,
+00385                                            apr_pool_t *p);
+00386 <span class="comment"></span>
+00387 <span class="comment">/**</span>
+00388 <span class="comment"> * Set the default file path (for relative file names)</span>
+00389 <span class="comment"> * @param path the default path returned</span>
+00390 <span class="comment"> * @param p the pool to allocate any working storage</span>
+00391 <span class="comment"> */</span>
+00392 APR_DECLARE(apr_status_t) apr_filepath_set(const <span class="keywordtype">char</span> *path, apr_pool_t *p);
+00393 <span class="comment"></span>
+00394 <span class="comment">/** The FilePath character encoding is unknown */</span>
+<a name="l00395"></a><a class="code" href="group__apr__filepath.html#ga14">00395</a> #define APR_FILEPATH_ENCODING_UNKNOWN  0
+00396 <span class="comment"></span>
+00397 <span class="comment">/** The FilePath character encoding is locale-dependent */</span>
+<a name="l00398"></a><a class="code" href="group__apr__filepath.html#ga15">00398</a> #define APR_FILEPATH_ENCODING_LOCALE   1
+00399 <span class="comment"></span>
+00400 <span class="comment">/** The FilePath character encoding is UTF-8 */</span>
+<a name="l00401"></a><a class="code" href="group__apr__filepath.html#ga16">00401</a> #define APR_FILEPATH_ENCODING_UTF8     2
+00402 <span class="comment"></span>
+00403 <span class="comment">/**</span>
+00404 <span class="comment"> * Determine the encoding used internally by the FilePath functions</span>
+00405 <span class="comment"> * @param style points to a variable which receives the encoding style flag</span>
+00406 <span class="comment"> * @param p the pool to allocate any working storage</span>
+00407 <span class="comment"> * @remark Use @c apr_os_locale_encoding and/or @c apr_os_default_encoding</span>
+00408 <span class="comment"> * to get the name of the path encoding if it's not UTF-8.</span>
+00409 <span class="comment"> */</span>
+00410 APR_DECLARE(apr_status_t) apr_filepath_encoding(<span class="keywordtype">int</span> *style, apr_pool_t *p);<span class="comment"></span>
+00411 <span class="comment">/** @} */</span>
+00412 <span class="comment"></span>
+00413 <span class="comment">/** @} */</span>
+00414 
+00415 #ifdef __cplusplus
+00416 }
+00417 #endif
+00418 
+00419 #endif  <span class="comment">/* ! APR_FILE_INFO_H */</span>
+</div></pre><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 7 13:18:25 2005 for Apache Portable Runtime by
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address>
 </body>
 </html>



Mime
View raw message