Hiya,
    Attached patch adds APR_DECLARE statements to the file_io.h
functions (hopefully).
            Gregory Nicholls.
? fileio.patch
Index: apr_file_io.h
===================================================================
RCS file: /home/cvspublic/apr/include/apr_file_io.h,v
retrieving revision 1.85
diff -u -d -b -r1.85 apr_file_io.h
--- apr_file_io.h       2001/01/05 19:40:05     1.85
+++ apr_file_io.h       2001/01/14 17:29:03
@@ -274,8 +274,9 @@
  * 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.
+ * @deffunc 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)
  */
-apr_status_t apr_make_canonical_name(apr_canon_t **new_name, 
+APR_DECLARE(apr_status_t) apr_make_canonical_name(apr_canon_t **new_name,
                                      const apr_canon_t *trusted_name, 
                                      const char *child_name, 
                                      int options,
@@ -290,8 +291,9 @@
  * @param options See apr_make_canonical_name for options 
  * @param pool The pool to allocate the new_name out of.
  * @see apr_make_canonical_name
+ * @deffunc apr_status_t apr_merge_canonical_name(apr_canon_t **new_name, 
const apr_canon_t *trusted_name, const char *child_name, int options, 
apr_pool_t *pool)
  */
-apr_status_t apr_merge_canonical_name(apr_canon_t **new_name,
+APR_DECLARE(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,
@@ -302,8 +304,9 @@
  * @param path A location to store the canocical name
  * @param trusted_name An already canonicalized file path
  * @param pool The pool to allocate the path out of.
+ * @deffunc apr_status_t apr_get_canonical_name(char **path, const apr_canon_t 
*trusted_name, apr_pool_t pool)
  */
-apr_status_t apr_get_canonical_name(char **path, 
+APR_DECLARE(apr_status_t) apr_get_canonical_name(char **path,
                                     const apr_canon_t *trusted_name, 
                                     apr_pool_t *pool);
 
@@ -311,8 +314,9 @@
  * Count the number of elements in a canonical name.
  * @param trusted_name An already canonicalized file path
  * @return The number of elements in the name
+ * @deffunc int apr_count_canonical_elements(const apr_canon_t *trusted_name)
  */
-int apr_count_canonical_elements(const apr_canon_t *trusted_name);
+APR_DECLARE(int) apr_count_canonical_elements(const apr_canon_t *trusted_name);
 
 /**
  * Query the length of some elements of the canonical name
@@ -322,8 +326,9 @@
  * @param lastelement The numerical position of the element to end the
  *        length at.
  * @return The length of requested elements.
+ * @deffunc int apr_count_canonical_elements_length(const apr_canon_t 
*trusted_name, int firstelement, int lastelement)
  */
-int apr_get_canonical_elements_length(const apr_canon_t *trusted_name,
+APR_DECLARE(int) apr_get_canonical_elements_length(const apr_canon_t 
*trusted_name,
                                       int firstelement, int lastelement);
 
 /**
@@ -335,8 +340,9 @@
  * @param lastelement The numerical position of the element to end the
  *        length at.
  * @param pool The pool to allocate the path out of.
+ * @deffunc apr_status_t apr_get_canonical_elements_length(char 
**path_elements, const apr_canon_t *trusted_name, int firstelement, int 
lastelement, apr_pool_t *pool)
  */
-apr_status_t apr_get_canonical_elements(char **path_elements,
+APR_DECLARE(apr_status_t) apr_get_canonical_elements(char **path_elements,
                                         const apr_canon_t *trusted_name,
                                         int firstelement, int lastelement,
                                         apr_pool_t *pool);
@@ -347,15 +353,17 @@
  * @warning Do not trust !apr_is_absolute to determine if the path is 
  *          relative.  Also, test apr_is_virtualroot to avoid non-filesystem 
  *          pseudo roots.
+ * @deffunc apr_status_t apr_is_absolute(apr_canon_t **path)
  */
-apr_status_t apr_is_absolute(apr_canon_t **path);
+APR_DECLARE(apr_status_t) apr_is_absolute(apr_canon_t **path);
 
 /**
  * Determine if a canonical name is relative
  * @param path The canonical name to check
  * @warning Do not trust !apr_is_relative to determine if the path is absolute
+ * @deffunc apr_status_t apr_is_relative(apr_canon_t **path)
  */
-apr_status_t apr_is_relative(apr_canon_t **path);
+APR_DECLARE(apr_status_t) apr_is_relative(apr_canon_t **path);
 
 /**
  * Determine if the elements 0..elements resolves to a platform's non-physical 
@@ -363,8 +371,9 @@
  * UNC paths.
  * @param path The canonical name to check
  * @param elements The number of elements to check.
+ * @deffunc apr_status_t apr_is_virtualroot(apr_canon_t **path, int elements)
  */
-apr_status_t apr_is_virtualroot(apr_canon_t **path, int elements);
+APR_DECLARE(apr_status_t) apr_is_virtualroot(apr_canon_t **path, int elements);
 #endif
 
 /**
@@ -389,23 +398,26 @@
  * @tip If perm is APR_OS_DEFAULT and the file is being created, appropriate 
  *      default permissions will be used.  *arg1 must point to a valid file_t, 
  *      or NULL (in which case it will be allocated)
+ * @deffunc 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)
  */
-apr_status_t apr_open(apr_file_t **new_file, const char *fname, apr_int32_t 
flag, 
+APR_DECLARE(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);
 
 /**
  * Close the specified file.
  * @param file The file descriptor to close.
+ * @deffunc apr_status_t apr_close(apr_file_t *file)
  */
-apr_status_t apr_close(apr_file_t *file);
+APR_DECLARE(apr_status_t) apr_close(apr_file_t *file);
 
 /**
  * delete the specified file.
  * @param path The full path to the file (using / on all systems)
  * @param cont The pool to use.
  * @tip If the file is open, it won't be removed until all instances are 
closed.
+ * @deffunc apr_status_t apr_remove_file(const char *path, apr_pool_t *cont)
  */
-apr_status_t apr_remove_file(const char *path, apr_pool_t *cont);
+APR_DECLARE(apr_status_t) apr_remove_file(const char *path, apr_pool_t *cont);
 
 /**
  * rename the specified file.
@@ -414,30 +426,34 @@
  * @param pool The pool to use.
  * @tip If a file exists at the new location, then it will be overwritten.  
  *      Moving files or directories across devices may not be possible.
+ * @deffunc apr_status_t apr_rename_file(const char *from_path, const char 
*to_path, apr_pool_t *pool)
  */
-apr_status_t apr_rename_file(const char *from_path, const char *to_path,
+APR_DECLARE(apr_status_t) apr_rename_file(const char *from_path, const char 
*to_path,
                              apr_pool_t *pool);
 
 /**
  * Are we at the end of the file
  * @param fptr The apr file we are testing.
  * @tip Returns APR_EOF if we are at the end of file, APR_SUCCESS otherwise.
+ * @deffunc apr_status_t apr_eof(apr_file_t *fptr)
  */
-apr_status_t apr_eof(apr_file_t *fptr);
+APR_DECLARE(apr_status_t) apr_eof(apr_file_t *fptr);
 
 /**
  * Is there an error on the stream?
  * @param fptr The apr file we are testing.
  * @tip Returns -1 if the error indicator is set, APR_SUCCESS otherwise.
+ * @deffunc apr_status_t apr_ferror(apr_file_t *fptr)
  */
-apr_status_t apr_ferror(apr_file_t *fptr);
+APR_DECLARE(apr_status_t) apr_ferror(apr_file_t *fptr);
 
 /**
  * open standard error as an apr file pointer.
  * @param thefile The apr file to use as stderr.
  * @param cont The pool to allocate the file out of.
+ * @deffunc apr_status_t apr_open_stderr(apr_file_t **thefile, apr_pool_t 
*cont)
  */
-apr_status_t apr_open_stderr(apr_file_t **thefile, apr_pool_t *cont);
+APR_DECLARE(apr_status_t) apr_open_stderr(apr_file_t **thefile, apr_pool_t 
*cont);
 
 /**
  * Read data from the specified file.
@@ -454,8 +470,9 @@
  *      error to be returned.
  *
  *      APR_EINTR is never returned.
+ * @deffunc apr_status_t apr_read(apr_file_t *thefile, void *buf, apr_size_t 
*nbytes)
  */
-apr_status_t apr_read(apr_file_t *thefile, void *buf, apr_size_t *nbytes);
+APR_DECLARE(apr_status_t) apr_read(apr_file_t *thefile, void *buf, apr_size_t 
*nbytes);
 
 /**
  * Write data to the specified file.
@@ -471,8 +488,9 @@
  *      It is possible for both bytes to be written and an error to be 
returned.
  *
  *      APR_EINTR is never returned.
+ * @deffunc apr_status_t apr_write(apr_file_t *thefile, const void *buf, 
apr_size_t *nbytes)
  */
-apr_status_t apr_write(apr_file_t *thefile, const void *buf, apr_size_t 
*nbytes);
+APR_DECLARE(apr_status_t) apr_write(apr_file_t *thefile, const void *buf, 
apr_size_t *nbytes);
 
 /**
  * Write data from iovec array to the specified file.
@@ -488,8 +506,9 @@
  *      apr_writev is available even if the underlying operating system 
  *
  *      doesn't provide writev().
+ * @deffunc apr_status_t apr_writev(apr_file_t *thefile, const struct iovec 
*vec, apr_size_t *nvec, apr_size_t *nbytes)
  */
-apr_status_t apr_writev(apr_file_t *thefile, const struct iovec *vec, 
+APR_DECLARE(apr_status_t) apr_writev(apr_file_t *thefile, const struct iovec 
*vec,
                       apr_size_t nvec, apr_size_t *nbytes);
 
 /**
@@ -509,8 +528,9 @@
  *      error to be returned.
  *
  *      APR_EINTR is never returned.
+ * @deffunc apr_status_t apr_full_read(apr_file_t *thefile, void *buf, 
apr_size_t nbytes, apr_size_t *bytes_read)
  */
-apr_status_t apr_full_read(apr_file_t *thefile, void *buf, apr_size_t nbytes,
+APR_DECLARE(apr_status_t) apr_full_read(apr_file_t *thefile, void *buf, 
apr_size_t nbytes,
                          apr_size_t *bytes_read);
 
 /**
@@ -528,51 +548,58 @@
  *      It is possible for both bytes to be written and an error to be 
returned.
  *
  *      APR_EINTR is never returned.
+ * @deffunc apr_status_t apr_full_write(apr_file_t *thefile, const void *buf, 
apr_size_t nbytes, apr_size_t *bytes_written)
  */
-apr_status_t apr_full_write(apr_file_t *thefile, const void *buf,
+APR_DECLARE(apr_status_t) apr_full_write(apr_file_t *thefile, const void *buf,
                           apr_size_t nbytes, apr_size_t *bytes_written);
 
 /**
  * put a character into the specified file.
  * @param ch The character to write.
  * @param thefile The file descriptor to write to
+ * @deffunc apr_status_t apr_putc(char ch, apr_file_t *thefile)
  */
-apr_status_t apr_putc(char ch, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_putc(char ch, apr_file_t *thefile);
 
 /**
  * get a character from the specified file.
  * @param ch The character to write.
  * @param thefile The file descriptor to write to
+ * @deffunc apr_status_t apr_getc(char *ch, apr_file_t *thefile)
  */
-apr_status_t apr_getc(char *ch, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_getc(char *ch, apr_file_t *thefile);
 
 /**
  * put a character back onto a specified stream.
  * @param ch The character to write.
  * @param thefile The file descriptor to write to
+ * @deffunc apr_status_t apr_ungetc(char ch, apr_file_t *thefile)
  */
-apr_status_t apr_ungetc(char ch, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_ungetc(char ch, apr_file_t *thefile);
 
 /**
  * Get a string from a specified file.
  * @param str The buffer to store the string in. 
  * @param len The length of the string
  * @param thefile The file descriptor to read from
+ * @deffunc apr_status_t apr_fgets(char *str, int len,  apr_file_t *thefile)
  */
-apr_status_t apr_fgets(char *str, int len, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_fgets(char *str, int len, apr_file_t *thefile);
 
 /**
  * Put the string into a specified file.
  * @param str The string to write. 
  * @param thefile The file descriptor to write to
+ * @deffunc apr_status_t apr_puts(const char *str, apr_file_t *thefile)
  */
-apr_status_t apr_puts(const char *str, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_puts(const char *str, apr_file_t *thefile);
 
 /**
  * Flush the file's buffer.
  * @param thefile The file descriptor to flush
+ * @deffunc apr_status_t apr_flush(apr_file_t *thefile)
  */
-apr_status_t apr_flush(apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_flush(apr_file_t *thefile);
 
 /**
  * duplicate the specified file descriptor.
@@ -580,15 +607,17 @@
  * @param old_file The file to duplicate.
  * @param p The pool to use for the new file.
  * @tip *arg1 must point to a valid apr_file_t, or point to NULL
+ * @deffunc apr_status_t apr_dupfile(apr_file_t **thefile, apr_file_t 
*old_file, apr_pool_t *p)
  */         
-apr_status_t apr_dupfile(apr_file_t **new_file, apr_file_t *old_file, 
apr_pool_t *p);
+APR_DECLARE(apr_status_t) apr_dupfile(apr_file_t **new_file, apr_file_t 
*old_file, apr_pool_t *p);
 
 /**
  * get the specified file's stats.
  * @param finfo Where to store the information about the file.
  * @param thefile The file to get information about.
+ * @deffunc apr_status_t apr_getfileinfo(apr_finfo_t *finfo, apr_file_t 
*thefile)
  */ 
-apr_status_t apr_getfileinfo(apr_finfo_t *finfo, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_getfileinfo(apr_finfo_t *finfo, apr_file_t 
*thefile);
 
 /**
  * set the specified file's permission bits.
@@ -599,8 +628,9 @@
  *      are specified which could not be set.
  *
  *      Platforms which do not implement this feature will return APR_ENOTIMPL.
+ * @deffunc apr_status_t apr_setfileperms(const char *fname, apr_fileperms_t 
perms)
  */
-apr_status_t apr_setfileperms(const char *fname, apr_fileperms_t perms);
+APR_DECLARE(apr_status_t) apr_setfileperms(const char *fname, apr_fileperms_t 
perms);
 
 /**
  * get the specified file's stats.  The file is specified by filename, 
@@ -609,8 +639,9 @@
  * never touched if the call fails.
  * @param fname The name of the file to stat.
  * @param cont the pool to use to allocate the new file. 
+ * @deffunc apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
  */ 
-apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont);
+APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont);
 
 /**
  * get the specified file's stats.  The file is specified by filename, 
@@ -620,8 +651,9 @@
  * never touched if the call fails.
  * @param fname The name of the file to stat.
  * @param cont the pool to use to allocate the new file. 
+ * @deffunc apr_status_t apr_lstat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
  */ 
-apr_status_t apr_lstat(apr_finfo_t *finfo, const char *fname, apr_pool_t 
*cont);
+APR_DECLARE(apr_status_t) apr_lstat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont);
 
 /**
  * Move the read/write file offset to a specified byte within a file.
@@ -634,83 +666,94 @@
  * @param offset The offset to move the pointer to.
  * @tip The third argument is modified to be the offset the pointer
           was actually moved to.
+ * @deffunc apr_status_t apr_seekt(apr_file_t *thefile, apr_seek_where_t 
where, apr_off_t *offset)
  */
-apr_status_t apr_seek(apr_file_t *thefile, apr_seek_where_t where,apr_off_t 
*offset);
+APR_DECLARE(apr_status_t) apr_seek(apr_file_t *thefile, apr_seek_where_t 
where,apr_off_t *offset);
 
 /**
  * Open the specified directory.
  * @param new_dir The opened directory descriptor.
  * @param dirname The full path to the directory (use / on all systems)
  * @param cont The pool to use.
+ * @deffunc apr_status_t apr_dir_open(apr_dir_t **new_dir, const char 
*dirname, apr_pool_t *cont)
  */                        
-apr_status_t apr_dir_open(apr_dir_t **new_dir, const char *dirname, apr_pool_t 
*cont);
+APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new_dir, const char 
*dirname, apr_pool_t *cont);
 
 /**
  * close the specified directory. 
  * @param thedir the directory descriptor to close.
+ * @deffunc apr_status_t apr_closedir(apr_dir_t *thedir)
  */                        
-apr_status_t apr_closedir(apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_closedir(apr_dir_t *thedir);
 
 /**
  * Read the next entry from the specified directory. 
  * @param thedir the directory descriptor to read from, and fill out.
  * @tip All systems return . and .. as the first two files.
+ * @deffunc apr_status_t apr_readdir(apr_dir_t *thedir)
  */                        
-apr_status_t apr_readdir(apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_readdir(apr_dir_t *thedir);
 
 /**
  * Rewind the directory to the first entry.
  * @param thedir the directory descriptor to rewind.
+ * @deffunc apr_status_t apr_rewinddir(apr_dir_t *thedir)
  */                        
-apr_status_t apr_rewinddir(apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_rewinddir(apr_dir_t *thedir);
 
 /**
  * Create a new directory on the file system.
  * @param path the path for the directory to be created.  (use / on all 
systems)
  * @param perm Permissions for the new direcoty.
  * @param cont the pool to use.
+ * @deffunc apr_status_t apr_make_dir(const char *path, apr_fileperms_t perm, 
apr_pool_t *cont)
  */                        
-apr_status_t apr_make_dir(const char *path, apr_fileperms_t perm, 
+APR_DECLARE(apr_status_t) apr_make_dir(const char *path, apr_fileperms_t perm,
                         apr_pool_t *cont);
 
 /**
  * Remove directory from the file system.
  * @param path the path for the directory to be removed.  (use / on all 
systems)
  * @param cont the pool to use.
+ * @deffunc apr_status_t apr_remove_dir(const char *path, apr_pool_t *cont)
  */                        
-apr_status_t apr_remove_dir(const char *path, apr_pool_t *cont);
+APR_DECLARE(apr_status_t) apr_remove_dir(const char *path, apr_pool_t *cont);
 
 /**
  * Create an anonymous pipe.
  * @param in The file descriptor to use as input to the pipe.
  * @param out The file descriptor to use as output from the pipe.
  * @param cont The pool to operate on.
+ * @deffunc apr_status_t apr_create_pipe(apr_file_t **in, apr_file_t **out, 
apr_pool_t *cont)
  */
-apr_status_t apr_create_pipe(apr_file_t **in, apr_file_t **out, apr_pool_t 
*cont);
+APR_DECLARE(apr_status_t) apr_create_pipe(apr_file_t **in, apr_file_t **out, 
apr_pool_t *cont);
 
 /**
  * Create a named pipe.
  * @param filename The filename of the named pipe
  * @param perm The permissions for the newly created pipe.
  * @param cont The pool to operate on.
+ * @deffunc apr_status_t apr_create_namedpipe(const char *filename 
apr_fileperms_t perm, apr_pool_t *cont)
  */
-apr_status_t apr_create_namedpipe(const char *filename, apr_fileperms_t perm, 
+APR_DECLARE(apr_status_t) apr_create_namedpipe(const char *filename, 
apr_fileperms_t perm,
                                 apr_pool_t *cont);
 
 /**
  * Get the timeout value for a pipe or manipulate the blocking state.
  * @param thepipe The pipe we are getting a timeout for.
  * @param timeout The current timeout value in microseconds. 
+ * @deffunc apr_status_t apr_get_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t *timeout)
  */
-apr_status_t apr_get_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
*timeout);
+APR_DECLARE(apr_status_t) apr_get_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t *timeout);
 
 /**
  * Set the timeout value for a pipe or manipulate the blocking state.
  * @param thepipe The pipe we are setting a timeout on.
  * @param timeout The timeout value in microseconds.  Values < 0 mean wait 
  *        forever, 0 means do not wait at all.
+ * @deffunc apr_status_t apr_set_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t timeout)
  */
-apr_status_t apr_set_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
timeout);
+APR_DECLARE(apr_status_t) apr_set_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t timeout);
 
 /** file (un)locking functions. */
 
@@ -722,14 +765,16 @@
  * block.
  * @param thefile The file to lock.
  * @param type The type of lock to establish on the file.
+ * @deffunc apr_status_t apr_lock_file(apr_file_t *thefile, int type)
  */
-apr_status_t apr_lock_file(apr_file_t *thefile, int type);
+APR_DECLARE(apr_status_t) apr_lock_file(apr_file_t *thefile, int type);
 
 /**
  * Remove any outstanding locks on the file.
  * @param thefile The file to unlock.
+ * @deffunc apr_status_t apr_unlock_file(apr_file_t *thefile)
  */
-apr_status_t apr_unlock_file(apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_unlock_file(apr_file_t *thefile);
 
 /**accessor and general file_io functions. */
 
@@ -737,23 +782,26 @@
  * return the file name of the current file.
  * @param new_path The path of the file.  
  * @param thefile The currently open file.
+ * @deffunc apr_status_t apr_get_filename(const char **new_path, apr_file_t 
*thefile)
  */                     
-apr_status_t apr_get_filename(const char **new_path, apr_file_t *thefile);
+APR_DECLARE(apr_status_t) apr_get_filename(const char **new_path, apr_file_t 
*thefile);
 
 /**
  * Get the file name of the current directory entry.
  * @param new_path the file name of the directory entry. 
  * @param thedir the currently open directory.
+ * @deffunc apr_status_t apr_get_dir_filename(const char **new_path, apr_dir_t 
*thedir)
  */                        
-apr_status_t apr_get_dir_filename(const char **new_path, apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_get_dir_filename(const char **new_path, 
apr_dir_t *thedir);
 
 /**
  * Return the data associated with the current file.
  * @param data The user data associated with the file.  
  * @param key The key to use for retreiving data associated with this file.
  * @param file The currently open file.
+ * @deffunc apr_status_t apr_get_filedata(void **data, const char *key, 
apr_file_t *file)
  */                     
-apr_status_t apr_get_filedata(void **data, const char *key, apr_file_t *file);
+APR_DECLARE(apr_status_t) apr_get_filedata(void **data, const char *key, 
apr_file_t *file);
 
 /**
  * Set the data associated with the current file.
@@ -761,30 +809,34 @@
  * @param data The user data to associate with the file.  
  * @param key The key to use for assocaiteing data with the file.
  * @param cleanup The cleanup routine to use when the file is destroyed.
+ * @deffunc apr_status_t apr_set_filedata(apr_file_t *file, void *data, const 
char *key, apr_status_t (*cleanup) (void *))
  */                     
-apr_status_t apr_set_filedata(apr_file_t *file, void *data, const char *key,
+APR_DECLARE(apr_status_t) apr_set_filedata(apr_file_t *file, void *data, const 
char *key,
                             apr_status_t (*cleanup) (void *));
 
 /**
  * Get the size of the current directory entry.
  * @param size the size of the directory entry. 
  * @param thedir the currently open directory.
+ * @deffunc apr_status_t apr_dir_entry_size(apr_size_t *size, apr_dir_t 
*thedir)
  */                        
-apr_status_t apr_dir_entry_size(apr_size_t *size, apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_dir_entry_size(apr_size_t *size, apr_dir_t 
*thedir);
 
 /**
  * Get the last modified time of the current directory entry.
  * @param mtime the last modified time of the directory entry. 
  * @param thedir the currently open directory.
+ * @deffunc apr_status_t apr_dir_entry_mtime(apr_time_t *mtime, apr_dir_t 
*thedir)
  */ 
-apr_status_t apr_dir_entry_mtime(apr_time_t *mtime, apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_dir_entry_mtime(apr_time_t *mtime, apr_dir_t 
*thedir);
 
 /**
  * Get the file type of the current directory entry.
  * @param type the file type of the directory entry. 
  * @param thedir the currently open directory.
+ * @deffunc apr_status_t apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t 
*thedir)
  */
-apr_status_t apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t *thedir);
+APR_DECLARE(apr_status_t) apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t 
*thedir);
 
 /**
  * Write a string to a file using a printf format.
@@ -802,5 +854,3 @@
 #endif
 
 #endif  /* ! APR_FILE_IO_H */
-
-
Index: os2/dir.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/dir.c,v
retrieving revision 1.21
diff -u -d -b -r1.21 dir.c
--- os2/dir.c   2001/01/05 19:40:05     1.21
+++ os2/dir.c   2001/01/14 17:30:04
@@ -69,7 +69,7 @@
 
 
 
-apr_status_t apr_dir_open(apr_dir_t **new, const char *dirname, apr_pool_t 
*cntxt)
+APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new, const char *dirname, 
apr_pool_t *cntxt)
 {
     apr_dir_t *thedir = (apr_dir_t *)apr_palloc(cntxt, sizeof(apr_dir_t));
     
@@ -91,7 +91,7 @@
 
 
 
-apr_status_t apr_closedir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_closedir(apr_dir_t *thedir)
 {
     int rv = 0;
     
@@ -108,7 +108,7 @@
 
 
 
-apr_status_t apr_readdir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_readdir(apr_dir_t *thedir)
 {
     int rv;
     ULONG entries = 1;
@@ -137,28 +137,28 @@
 
 
 
-apr_status_t apr_rewinddir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_rewinddir(apr_dir_t *thedir)
 {
     return apr_closedir(thedir);
 }
 
 
 
-apr_status_t apr_make_dir(const char *path, apr_fileperms_t perm, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_make_dir(const char *path, apr_fileperms_t perm, 
apr_pool_t *cont)
 {
     return APR_OS2_STATUS(DosCreateDir(path, NULL));
 }
 
 
 
-apr_status_t apr_remove_dir(const char *path, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_remove_dir(const char *path, apr_pool_t *cont)
 {
     return APR_OS2_STATUS(DosDeleteDir(path));
 }
 
 
 
-apr_status_t apr_dir_entry_size(apr_size_t *size, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_size(apr_size_t *size, apr_dir_t 
*thedir)
 {
     if (thedir->validentry) {
         *size = thedir->entry.cbFile;
@@ -170,7 +170,7 @@
 
 
 
-apr_status_t apr_dir_entry_mtime(apr_time_t *time, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_mtime(apr_time_t *time, apr_dir_t 
*thedir)
 {
     if (thedir->validentry) {
         apr_os2_time_to_apr_time(time, thedir->entry.fdateLastWrite, 
@@ -183,7 +183,7 @@
 
 
 
-apr_status_t apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t 
*thedir)
 {
     int rc;
     HFILE hFile;
@@ -218,7 +218,7 @@
 
 
 
-apr_status_t apr_get_dir_filename(const char **new, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_get_dir_filename(const char **new, apr_dir_t 
*thedir)
 {
     if (thedir->validentry) {
         *new = thedir->entry.achName;
Index: os2/filedup.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/filedup.c,v
retrieving revision 1.18
diff -u -d -b -r1.18 filedup.c
--- os2/filedup.c       2000/11/14 06:40:03     1.18
+++ os2/filedup.c       2001/01/14 17:30:04
@@ -61,7 +61,7 @@
 #define INCL_DOS
 #include <os2.h>
 
-apr_status_t apr_dupfile(apr_file_t **new_file, apr_file_t *old_file, 
apr_pool_t *p)
+APR_DECLARE(apr_status_t) apr_dupfile(apr_file_t **new_file, apr_file_t 
*old_file, apr_pool_t *p)
 {
     int rv;
     apr_file_t *dup_file;
Index: os2/filestat.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/filestat.c,v
retrieving revision 1.15
diff -u -d -b -r1.15 filestat.c
--- os2/filestat.c      2000/11/14 06:40:03     1.15
+++ os2/filestat.c      2001/01/14 17:30:06
@@ -113,7 +113,7 @@
 
 
 
-apr_status_t apr_getfileinfo(apr_finfo_t *finfo, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_getfileinfo(apr_finfo_t *finfo, apr_file_t 
*thefile)
 {
     ULONG rc;
     FILESTATUS3 fstatus;
@@ -140,13 +140,13 @@
     return APR_OS2_STATUS(rc);
 }
 
-apr_status_t apr_setfileperms(const char *fname, apr_fileperms_t perms)
+APR_DECLARE(apr_status_t) apr_setfileperms(const char *fname, apr_fileperms_t 
perms)
 {
     return APR_ENOTIMPL;
 }
 
 
-apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
 {
     ULONG rc;
     FILESTATUS3 fstatus;
@@ -170,7 +170,7 @@
 
 
 
-apr_status_t apr_lstat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_lstat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
 {
     return apr_stat(finfo, fname, cont);
 }
Index: os2/flock.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/flock.c,v
retrieving revision 1.1
diff -u -d -b -r1.1 flock.c
--- os2/flock.c 2000/12/04 06:00:35     1.1
+++ os2/flock.c 2001/01/14 17:30:06
@@ -54,7 +54,7 @@
 
 #include "fileio.h"
 
-apr_status_t apr_lock_file(apr_file_t *thefile, int type)
+APR_DECLARE(apr_status_t) apr_lock_file(apr_file_t *thefile, int type)
 {
     FILELOCK lockrange = { 0, 0x7fffffff };
     ULONG rc;
@@ -65,7 +65,7 @@
     return APR_FROM_OS_ERROR(rc);
 }
 
-apr_status_t apr_unlock_file(apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_unlock_file(apr_file_t *thefile)
 {
     FILELOCK unlockrange = { 0, 0x7fffffff };
     ULONG rc;
Index: os2/open.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/open.c,v
retrieving revision 1.34
diff -u -d -b -r1.34 open.c
--- os2/open.c  2000/11/14 06:40:03     1.34
+++ os2/open.c  2001/01/14 17:30:07
@@ -59,7 +59,7 @@
 #include "apr_strings.h"
 #include <string.h>
 
-apr_status_t apr_file_cleanup(void *thefile)
+APR_DECLARE(apr_status_t) apr_file_cleanup(void *thefile)
 {
     apr_file_t *file = thefile;
     return apr_close(file);
@@ -67,7 +67,7 @@
 
 
 
-apr_status_t apr_open(apr_file_t **new, const char *fname, apr_int32_t flag,  
apr_fileperms_t perm, apr_pool_t *cntxt)
+APR_DECLARE(apr_status_t) apr_open(apr_file_t **new, const char *fname, 
apr_int32_t flag,  apr_fileperms_t perm, apr_pool_t *cntxt)
 {
     int oflags = 0;
     int mflags = OPEN_FLAGS_FAIL_ON_ERROR|OPEN_SHARE_DENYNONE;
@@ -150,7 +150,7 @@
 
 
 
-apr_status_t apr_close(apr_file_t *file)
+APRE_DECLARE(apr_status_t) apr_close(apr_file_t *file)
 {
     ULONG rc;
     apr_status_t status;
@@ -179,7 +179,7 @@
 
 
 
-apr_status_t apr_remove_file(const char *path, apr_pool_t *cntxt)
+APR_DECLARE(apr_status_t) apr_remove_file(const char *path, apr_pool_t *cntxt)
 {
     ULONG rc = DosDelete(path);
     return APR_OS2_STATUS(rc);
@@ -187,7 +187,7 @@
 
 
 
-apr_status_t apr_rename_file(const char *from_path, const char *to_path,
+APR_DECLARE(apr_status_t) apr_rename_file(const char *from_path, const char 
*to_path,
                            apr_pool_t *p)
 {
     ULONG rc = DosMove(from_path, to_path);
@@ -205,7 +205,7 @@
 
 
 
-apr_status_t apr_get_os_file(apr_os_file_t *thefile, apr_file_t *file)
+APR_DECLARE(apr_status_t) apr_get_os_file(apr_os_file_t *thefile, apr_file_t 
*file)
 {
     if (file == NULL) {
         return APR_ENOFILE;
@@ -217,7 +217,7 @@
 
 
 
-apr_status_t apr_put_os_file(apr_file_t **file, apr_os_file_t *thefile, 
apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_put_os_file(apr_file_t **file, apr_os_file_t 
*thefile, apr_pool_t *cont)
 {
     apr_os_file_t *dafile = thefile;
     if ((*file) == NULL) {
@@ -235,7 +235,7 @@
 
 
 
-apr_status_t apr_eof(apr_file_t *fptr)
+APR_DECLARE(apr_status_t) apr_eof(apr_file_t *fptr)
 {
     if (!fptr->isopen || fptr->eof_hit == 1) {
         return APR_EOF;
@@ -245,7 +245,7 @@
 
 
 
-apr_status_t apr_open_stderr(apr_file_t **thefile, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_open_stderr(apr_file_t **thefile, apr_pool_t 
*cont)
 {
     (*thefile) = apr_palloc(cont, sizeof(apr_file_t));
     if ((*thefile) == NULL) {
Index: os2/pipe.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/pipe.c,v
retrieving revision 1.30
diff -u -d -b -r1.30 pipe.c
--- os2/pipe.c  2000/11/14 13:41:23     1.30
+++ os2/pipe.c  2001/01/14 17:30:08
@@ -61,7 +61,7 @@
 #include <string.h>
 #include <process.h>
 
-apr_status_t apr_create_pipe(apr_file_t **in, apr_file_t **out, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_create_pipe(apr_file_t **in, apr_file_t **out, 
apr_pool_t *cont)
 {
     ULONG filedes[2];
     ULONG rc, action;
@@ -141,7 +141,7 @@
 
 
 
-apr_status_t apr_create_namedpipe(const char *filename, apr_fileperms_t perm, 
apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_create_namedpipe(const char *filename, 
apr_fileperms_t perm, apr_pool_t *cont)
 {
     /* Not yet implemented, interface not suitable */
     return APR_ENOTIMPL;
@@ -149,7 +149,7 @@
 
  
 
-apr_status_t apr_set_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
timeout)
+APR_DECLARE(apr_status_t) apr_set_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t timeout)
 {
     if (thepipe->pipe == 1) {
         thepipe->timeout = timeout;
@@ -172,7 +172,7 @@
 
 
 
-apr_status_t apr_get_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
*timeout)
+APR_DECLARE(apr_status_t) apr_get_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t *timeout)
 {
     if (thepipe->pipe == 1) {
         *timeout = thepipe->timeout;
Index: os2/readwrite.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/readwrite.c,v
retrieving revision 1.36
diff -u -d -b -r1.36 readwrite.c
--- os2/readwrite.c     2000/11/14 06:40:03     1.36
+++ os2/readwrite.c     2001/01/14 17:30:09
@@ -62,7 +62,7 @@
 #include <os2.h>
 #include <malloc.h>
 
-apr_status_t apr_read(apr_file_t *thefile, void *buf, apr_size_t *nbytes)
+APR_DECLARE(apr_status_t) apr_read(apr_file_t *thefile, void *buf, apr_size_t 
*nbytes)
 {
     ULONG rc = 0;
     ULONG bytesread;
@@ -138,7 +138,7 @@
 
 
 
-apr_status_t apr_write(apr_file_t *thefile, const void *buf, apr_size_t 
*nbytes)
+APR_DECLARE(apr_status_t) apr_write(apr_file_t *thefile, const void *buf, 
apr_size_t *nbytes)
 {
     ULONG rc = 0;
     ULONG byteswritten;
@@ -194,7 +194,7 @@
 
 #ifdef HAVE_WRITEV
 
-apr_status_t apr_writev(apr_file_t *thefile, const struct iovec *vec, 
apr_size_t nvec, apr_size_t *nbytes)
+APR_DECLARE(apr_status_t) apr_writev(apr_file_t *thefile, const struct iovec 
*vec, apr_size_t nvec, apr_size_t *nbytes)
 {
     int bytes;
     if ((bytes = writev(thefile->filedes, vec, nvec)) < 0) {
@@ -210,7 +210,7 @@
 
 
 
-apr_status_t apr_putc(char ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_putc(char ch, apr_file_t *thefile)
 {
     ULONG rc;
     ULONG byteswritten;
@@ -230,7 +230,7 @@
 
 
 
-apr_status_t apr_ungetc(char ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_ungetc(char ch, apr_file_t *thefile)
 {
     apr_off_t offset = -1;
     return apr_seek(thefile, APR_CUR, &offset);
@@ -238,7 +238,7 @@
 
 
 
-apr_status_t apr_getc(char *ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_getc(char *ch, apr_file_t *thefile)
 {
     ULONG rc;
     apr_size_t bytesread;
@@ -264,7 +264,7 @@
 
 
 
-apr_status_t apr_puts(const char *str, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_puts(const char *str, apr_file_t *thefile)
 {
     apr_size_t len;
 
@@ -274,7 +274,7 @@
 
 
 
-apr_status_t apr_flush(apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_flush(apr_file_t *thefile)
 {
     if (thefile->buffered) {
         ULONG written = 0;
@@ -299,7 +299,7 @@
 
 
 
-apr_status_t apr_fgets(char *str, int len, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_fgets(char *str, int len, apr_file_t *thefile)
 {
     size_t readlen;
     apr_status_t rv = APR_SUCCESS;
@@ -346,7 +346,7 @@
 
 
 
-apr_status_t apr_file_check_read(apr_file_t *fd)
+APR_DECLARE(apr_status_t) apr_file_check_read(apr_file_t *fd)
 {
     int rc;
 
Index: os2/seek.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/seek.c,v
retrieving revision 1.11
diff -u -d -b -r1.11 seek.c
--- os2/seek.c  2000/11/14 06:40:03     1.11
+++ os2/seek.c  2001/01/14 17:30:09
@@ -89,7 +89,7 @@
 
 
 
-apr_status_t apr_seek(apr_file_t *thefile, apr_seek_where_t where, apr_off_t 
*offset)
+APR_DECLARE(apr_status_t) apr_seek(apr_file_t *thefile, apr_seek_where_t 
where, apr_off_t *offset)
 {
     if (!thefile->isopen) {
         return APR_EBADF;
Index: unix/dir.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/dir.c,v
retrieving revision 1.42
diff -u -d -b -r1.42 dir.c
--- unix/dir.c  2001/01/05 19:40:05     1.42
+++ unix/dir.c  2001/01/14 17:30:15
@@ -67,7 +67,7 @@
     }
 } 
 
-apr_status_t apr_dir_open(apr_dir_t **new, const char *dirname, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new, const char *dirname, 
apr_pool_t *cont)
 {
     /* On some platforms (e.g., Linux+GNU libc), d_name[] in struct 
      * dirent is declared with enough storage for the name.  On other
@@ -95,7 +95,7 @@
     }
 }
 
-apr_status_t apr_closedir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_closedir(apr_dir_t *thedir)
 {
     apr_status_t rv;
 
@@ -106,7 +106,7 @@
     return rv;
 }
 
-apr_status_t apr_readdir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_readdir(apr_dir_t *thedir)
 {
 #if APR_HAS_THREADS && defined(_POSIX_THREAD_SAFE_FUNCTIONS) \
     && !defined(READDIR_IS_THREAD_SAFE)
@@ -135,13 +135,13 @@
 #endif
 }
 
-apr_status_t apr_rewinddir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_rewinddir(apr_dir_t *thedir)
 {
     rewinddir(thedir->dirstruct);
     return APR_SUCCESS;
 }
 
-apr_status_t apr_make_dir(const char *path, apr_fileperms_t perm, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_make_dir(const char *path, apr_fileperms_t perm, 
apr_pool_t *cont)
 {
     mode_t mode = apr_unix_perms2mode(perm);
 
@@ -153,7 +153,7 @@
     }
 }
 
-apr_status_t apr_remove_dir(const char *path, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_remove_dir(const char *path, apr_pool_t *cont)
 {
     if (rmdir(path) == 0) {
         return APR_SUCCESS;
@@ -163,7 +163,7 @@
     }
 }
 
-apr_status_t apr_dir_entry_size(apr_size_t *size, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_size(apr_size_t *size, apr_dir_t 
*thedir)
 {
     struct stat filestat;
     char *fname = NULL;    
@@ -183,7 +183,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_dir_entry_mtime(apr_time_t *mtime, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_mtime(apr_time_t *mtime, apr_dir_t 
*thedir)
 {
     struct stat filestat;
     char *fname = NULL;
@@ -204,7 +204,7 @@
     return APR_SUCCESS;
 }
  
-apr_status_t apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t 
*thedir)
 {
     struct stat filestat;
     char *fname = NULL;
@@ -240,7 +240,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_get_dir_filename(const char **new, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_get_dir_filename(const char **new, apr_dir_t 
*thedir)
 {
     /* Detect End-Of-File */
     if (thedir == NULL || thedir->entry == NULL) {
@@ -251,7 +251,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_get_os_dir(apr_os_dir_t **thedir, apr_dir_t *dir)
+APR_DECLARE(apr_status_t) apr_get_os_dir(apr_os_dir_t **thedir, apr_dir_t *dir)
 {
     if (dir == NULL) {
         return APR_ENODIR;
@@ -260,7 +260,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_put_os_dir(apr_dir_t **dir, apr_os_dir_t *thedir,
+APR_DECLARE(apr_status_t) apr_put_os_dir(apr_dir_t **dir, apr_os_dir_t *thedir,
                           apr_pool_t *cont)
 {
     if ((*dir) == NULL) {
Index: unix/fileacc.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/fileacc.c,v
retrieving revision 1.44
diff -u -d -b -r1.44 fileacc.c
--- unix/fileacc.c      2001/01/05 18:45:25     1.44
+++ unix/fileacc.c      2001/01/14 17:30:15
@@ -57,7 +57,7 @@
 
 /* A file to put ALL of the accessor functions for apr_file_t types. */
 
-apr_status_t apr_get_filename(const char **fname, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_get_filename(const char **fname, apr_file_t 
*thefile)
 {
 #ifdef WIN32 /* this test is only good until some other platform trys wchar* */
 #if APR_HAS_UNICODE_FS
@@ -136,12 +136,12 @@
 }
 #endif
 
-apr_status_t apr_get_filedata(void **data, const char *key, apr_file_t *file)
+APR_DECLARE(apr_status_t) apr_get_filedata(void **data, const char *key, 
apr_file_t *file)
 {    
     return apr_get_userdata(data, key, file->cntxt);
 }
 
-apr_status_t apr_set_filedata(apr_file_t *file, void *data, const char *key,
+APR_DECLARE(apr_status_t) apr_set_filedata(apr_file_t *file, void *data, const 
char *key,
                             apr_status_t (*cleanup) (void *))
 {    
     return apr_set_userdata(data, key, cleanup, file->cntxt);
Index: unix/filedup.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/filedup.c,v
retrieving revision 1.27
diff -u -d -b -r1.27 filedup.c
--- unix/filedup.c      2000/11/14 06:40:03     1.27
+++ unix/filedup.c      2001/01/14 17:30:16
@@ -56,7 +56,7 @@
 #include "apr_strings.h"
 #include "apr_portable.h"
 
-apr_status_t apr_dupfile(apr_file_t **new_file, apr_file_t *old_file, 
apr_pool_t *p)
+APR_DECLARE(apr_status_t) apr_dupfile(apr_file_t **new_file, apr_file_t 
*old_file, apr_pool_t *p)
 {
     int have_file = 0;
 
Index: unix/filestat.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/filestat.c,v
retrieving revision 1.33
diff -u -d -b -r1.33 filestat.c
--- unix/filestat.c     2000/11/14 06:40:03     1.33
+++ unix/filestat.c     2001/01/14 17:30:17
@@ -80,7 +80,7 @@
     return type;
 }
 
-apr_status_t apr_getfileinfo(apr_finfo_t *finfo, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_getfileinfo(apr_finfo_t *finfo, apr_file_t 
*thefile)
 {
     struct stat info;
 
@@ -102,7 +102,7 @@
     }
 }
 
-apr_status_t apr_setfileperms(const char *fname, apr_fileperms_t perms)
+APR_DECLARE(apr_status_t) apr_setfileperms(const char *fname, apr_fileperms_t 
perms)
 {
     mode_t mode = apr_unix_perms2mode(perms);
 
@@ -111,7 +111,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
 {
     struct stat info;
 
@@ -163,7 +163,7 @@
     }
 }
 
-apr_status_t apr_lstat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_lstat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
 {
     struct stat info;
 
Index: unix/flock.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/flock.c,v
retrieving revision 1.1
diff -u -d -b -r1.1 flock.c
--- unix/flock.c        2000/11/29 07:37:41     1.1
+++ unix/flock.c        2001/01/14 17:30:18
@@ -61,7 +61,7 @@
 #include <sys/file.h>
 #endif
 
-apr_status_t apr_lock_file(apr_file_t *thefile, int type)
+APR_DECLARE(apr_status_t) apr_lock_file(apr_file_t *thefile, int type)
 {
     int rc;
 
@@ -112,7 +112,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_unlock_file(apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_unlock_file(apr_file_t *thefile)
 {
     int rc;
 
Index: unix/fullrw.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/fullrw.c,v
retrieving revision 1.4
diff -u -d -b -r1.4 fullrw.c
--- unix/fullrw.c       2000/11/10 19:01:30     1.4
+++ unix/fullrw.c       2001/01/14 17:30:19
@@ -55,7 +55,7 @@
 #include "apr_file_io.h"
 
 
-apr_status_t apr_full_read(apr_file_t *thefile, void *buf, apr_size_t nbytes,
+APR_DECLARE(apr_status_t) apr_full_read(apr_file_t *thefile, void *buf, 
apr_size_t nbytes,
                          apr_size_t *bytes_read)
 {
     apr_status_t status;
@@ -76,7 +76,7 @@
     return status;
 }
 
-apr_status_t apr_full_write(apr_file_t *thefile, const void *buf,
+APR_DECLARE(apr_status_t) apr_full_write(apr_file_t *thefile, const void *buf,
                           apr_size_t nbytes, apr_size_t *bytes_written)
 {
     apr_status_t status;
Index: unix/open.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/open.c,v
retrieving revision 1.67
diff -u -d -b -r1.67 open.c
--- unix/open.c 2000/11/14 06:40:03     1.67
+++ unix/open.c 2001/01/14 17:30:20
@@ -78,7 +78,7 @@
     }
 }
 
-apr_status_t apr_open(apr_file_t **new, const char *fname, apr_int32_t flag,  
apr_fileperms_t perm, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_open(apr_file_t **new, const char *fname, 
apr_int32_t flag,  apr_fileperms_t perm, apr_pool_t *cont)
 {
     int oflags = 0;
 #if APR_HAS_THREADS
@@ -168,7 +168,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_close(apr_file_t *file)
+APR_DECLARE(apr_status_t) apr_close(apr_file_t *file)
 {
     apr_status_t flush_rv = APR_SUCCESS, rv;
 
@@ -183,7 +183,7 @@
     return rv ? rv : flush_rv;
 }
 
-apr_status_t apr_remove_file(const char *path, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_remove_file(const char *path, apr_pool_t *cont)
 {
     if (unlink(path) == 0) {
         return APR_SUCCESS;
@@ -193,7 +193,7 @@
     }
 }
 
-apr_status_t apr_rename_file(const char *from_path, const char *to_path,
+APR_DECLARE(apr_status_t) apr_rename_file(const char *from_path, const char 
*to_path,
                            apr_pool_t *p)
 {
     if (rename(from_path, to_path) != 0) {
@@ -202,7 +202,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_get_os_file(apr_os_file_t *thefile, apr_file_t *file)
+APR_DECLARE(apr_status_t) apr_get_os_file(apr_os_file_t *thefile, apr_file_t 
*file)
 {
     if (file == NULL) {
         return APR_ENOFILE;
@@ -212,7 +212,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_put_os_file(apr_file_t **file, apr_os_file_t *thefile,
+APR_DECLARE(apr_status_t) apr_put_os_file(apr_file_t **file, apr_os_file_t 
*thefile,
                              apr_pool_t *cont)
 {
     int *dafile = thefile;
@@ -233,7 +233,7 @@
     return APR_SUCCESS;
 }    
 
-apr_status_t apr_eof(apr_file_t *fptr)
+APR_DECLARE(apr_status_t) apr_eof(apr_file_t *fptr)
 {
     if (fptr->eof_hit == 1) {
         return APR_EOF;
@@ -241,7 +241,7 @@
     return APR_SUCCESS;
 }   
 
-apr_status_t apr_ferror(apr_file_t *fptr)
+APR_DECLARE(apr_status_t) apr_ferror(apr_file_t *fptr)
 {
 /* This function should be removed ASAP.  It is next on my list once
  * I am sure nobody is using it.
@@ -252,7 +252,7 @@
 /* apr_open_stderr() could just call apr_put_os_file() with
  * STDERR_FILENO for the descriptor...
  */
-apr_status_t apr_open_stderr(apr_file_t **thefile, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_open_stderr(apr_file_t **thefile, apr_pool_t 
*cont)
 {
     (*thefile) = apr_pcalloc(cont, sizeof(apr_file_t));
     if ((*thefile) == NULL) {
Index: unix/pipe.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/pipe.c,v
retrieving revision 1.44
diff -u -d -b -r1.44 pipe.c
--- unix/pipe.c 2000/11/14 06:40:03     1.44
+++ unix/pipe.c 2001/01/14 17:30:20
@@ -126,7 +126,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_set_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
timeout)
+APR_DECLARE(apr_status_t) apr_set_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t timeout)
 {
     if (thepipe->pipe == 1) {
         thepipe->timeout = timeout;
@@ -145,7 +145,7 @@
     return APR_EINVAL;
 }
 
-apr_status_t apr_get_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
*timeout)
+APR_DECLARE(apr_status_t) apr_get_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t *timeout)
 {
     if (thepipe->pipe == 1) {
         *timeout = thepipe->timeout;
@@ -154,7 +154,7 @@
     return APR_EINVAL;
 }
 
-apr_status_t apr_create_pipe(apr_file_t **in, apr_file_t **out, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_create_pipe(apr_file_t **in, apr_file_t **out, 
apr_pool_t *cont)
 {
     int filedes[2];
 
@@ -194,7 +194,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_create_namedpipe(const char *filename, 
+APR_DECLARE(apr_status_t) apr_create_namedpipe(const char *filename,
                                 apr_fileperms_t perm, apr_pool_t *cont)
 {
     mode_t mode = apr_unix_perms2mode(perm);
@@ -204,6 +204,3 @@
     }
     return APR_SUCCESS;
 } 
-
-    
-
Index: unix/readwrite.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/readwrite.c,v
retrieving revision 1.63
diff -u -d -b -r1.63 readwrite.c
--- unix/readwrite.c    2000/11/14 06:40:03     1.63
+++ unix/readwrite.c    2001/01/14 17:30:22
@@ -101,7 +101,7 @@
 /* problems: 
  * 1) ungetchar not used for buffered files
  */
-apr_status_t apr_read(apr_file_t *thefile, void *buf, apr_size_t *nbytes)
+APR_DECLARE(apr_status_t) apr_read(apr_file_t *thefile, void *buf, apr_size_t 
*nbytes)
 {
     apr_ssize_t rv;
     apr_size_t bytes_read;
@@ -205,7 +205,7 @@
     }
 }
 
-apr_status_t apr_write(apr_file_t *thefile, const void *buf, apr_size_t 
*nbytes)
+APR_DECLARE(apr_status_t) apr_write(apr_file_t *thefile, const void *buf, 
apr_size_t *nbytes)
 {
     apr_size_t rv;
 
@@ -276,7 +276,7 @@
     }
 }
 
-apr_status_t apr_writev(apr_file_t *thefile, const struct iovec *vec,
+APR_DECLARE(apr_status_t) apr_writev(apr_file_t *thefile, const struct iovec 
*vec,
                       apr_size_t nvec, apr_size_t *nbytes)
 {
 #ifdef HAVE_WRITEV
@@ -296,34 +296,34 @@
 #endif
 }
 
-apr_status_t apr_putc(char ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_putc(char ch, apr_file_t *thefile)
 {
     apr_size_t nbytes = 1;
 
     return apr_write(thefile, &ch, &nbytes);
 }
 
-apr_status_t apr_ungetc(char ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_ungetc(char ch, apr_file_t *thefile)
 {
     thefile->ungetchar = (unsigned char)ch;
     return APR_SUCCESS; 
 }
 
-apr_status_t apr_getc(char *ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_getc(char *ch, apr_file_t *thefile)
 {
     apr_size_t nbytes = 1;
 
     return apr_read(thefile, ch, &nbytes);
 }
 
-apr_status_t apr_puts(const char *str, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_puts(const char *str, apr_file_t *thefile)
 {
     apr_size_t nbytes = strlen(str);
 
     return apr_write(thefile, str, &nbytes);
 }
 
-apr_status_t apr_flush(apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_flush(apr_file_t *thefile)
 {
     if (thefile->buffered) {
         apr_int64_t written = 0;
@@ -345,7 +345,7 @@
     return APR_SUCCESS; 
 }
 
-apr_status_t apr_fgets(char *str, int len, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_fgets(char *str, int len, apr_file_t *thefile)
 {
     apr_status_t rv = APR_SUCCESS; /* get rid of gcc warning */
     apr_size_t nbytes;
Index: unix/seek.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/seek.c,v
retrieving revision 1.17
diff -u -d -b -r1.17 seek.c
--- unix/seek.c 2000/11/14 06:40:03     1.17
+++ unix/seek.c 2001/01/14 17:30:22
@@ -85,7 +85,7 @@
 }
 
 
-apr_status_t apr_seek(apr_file_t *thefile, apr_seek_where_t where, apr_off_t 
*offset)
+APR_DECLARE(apr_status_t) apr_seek(apr_file_t *thefile, apr_seek_where_t 
where, apr_off_t *offset)
 {
     apr_off_t rv;
 
Index: win32/dir.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/dir.c,v
retrieving revision 1.41
diff -u -d -b -r1.41 dir.c
--- win32/dir.c 2001/01/05 19:40:05     1.41
+++ win32/dir.c 2001/01/14 17:30:24
@@ -82,7 +82,7 @@
     return APR_SUCCESS;
 } 
 
-apr_status_t apr_dir_open(apr_dir_t **new, const char *dirname, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new, const char *dirname, 
apr_pool_t *cont)
 {
     /* Note that we won't open a directory that is greater than MAX_PATH,
      * including the trailing /* wildcard suffix.  If a * won't fit, then
@@ -173,7 +173,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_closedir(apr_dir_t *dir)
+APR_DECLARE(apr_status_t) apr_closedir(apr_dir_t *dir)
 {
     if (dir->dirhand != INVALID_HANDLE_VALUE && !FindClose(dir->dirhand)) {
         return apr_get_os_error();
@@ -182,7 +182,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_readdir(apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_readdir(apr_dir_t *thedir)
 {
     /* The while loops below allow us to skip all invalid file names, so that
      * we aren't reporting any files where their absolute paths are too long.
@@ -231,7 +231,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_rewinddir(apr_dir_t *dir)
+APR_DECLARE(apr_status_t) apr_rewinddir(apr_dir_t *dir)
 {
     dir_cleanup(dir);
     if (!FindClose(dir->dirhand)) {
@@ -241,7 +241,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_make_dir(const char *path, apr_fileperms_t perm, apr_pool_t 
*cont)
+APR_DECLARE(apr_status_t) apr_make_dir(const char *path, apr_fileperms_t perm, 
apr_pool_t *cont)
 {
 #if APR_HAS_UNICODE_FS
     apr_oslevel_e os_level;
@@ -262,7 +262,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_remove_dir(const char *path, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_remove_dir(const char *path, apr_pool_t *cont)
 {
 #if APR_HAS_UNICODE_FS
     apr_oslevel_e os_level;
@@ -283,7 +283,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_dir_entry_size(apr_ssize_t *size, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_size(apr_ssize_t *size, apr_dir_t 
*thedir)
 {
     if (thedir == NULL || thedir->n.entry == NULL) {
         return APR_ENODIR;
@@ -293,7 +293,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_dir_entry_mtime(apr_time_t *time, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_mtime(apr_time_t *time, apr_dir_t 
*thedir)
 {
     if (thedir == NULL || thedir->n.entry == NULL) {
         return APR_ENODIR;
@@ -302,7 +302,7 @@
     return APR_SUCCESS;
 }
  
-apr_status_t apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_dir_entry_ftype(apr_filetype_e *type, apr_dir_t 
*thedir)
 {
     switch(thedir->n.entry->dwFileAttributes) {
         case FILE_ATTRIBUTE_DIRECTORY: {
@@ -320,7 +320,7 @@
     }
 }
 
-apr_status_t apr_get_dir_filename(const char **new, apr_dir_t *thedir)
+APR_DECLARE(apr_status_t) apr_get_dir_filename(const char **new, apr_dir_t 
*thedir)
 {
 #if APR_HAS_UNICODE_FS
     apr_oslevel_e os_level;
Index: win32/filedup.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/filedup.c,v
retrieving revision 1.27
diff -u -d -b -r1.27 filedup.c
--- win32/filedup.c     2000/11/09 14:06:42     1.27
+++ win32/filedup.c     2001/01/14 17:30:25
@@ -58,7 +58,7 @@
 #include "apr_strings.h"
 #include <string.h>
 
-apr_status_t apr_dupfile(apr_file_t **new_file, apr_file_t *old_file, 
apr_pool_t *p)
+APR_DECLARE(apr_status_t) apr_dupfile(apr_file_t **new_file, apr_file_t 
*old_file, apr_pool_t *p)
 {
     BOOLEAN isStdHandle = FALSE;
     HANDLE hCurrentProcess = GetCurrentProcess();
Index: win32/filestat.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/filestat.c,v
retrieving revision 1.36
diff -u -d -b -r1.36 filestat.c
--- win32/filestat.c    2000/11/19 18:11:17     1.36
+++ win32/filestat.c    2001/01/14 17:30:27
@@ -99,7 +99,7 @@
     return FALSE;
 }
 
-apr_status_t apr_getfileinfo(apr_finfo_t *finfo, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_getfileinfo(apr_finfo_t *finfo, apr_file_t 
*thefile)
 {
     BY_HANDLE_FILE_INFORMATION FileInformation;
     DWORD FileType;
@@ -191,12 +191,12 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_setfileperms(const char *fname, apr_fileperms_t perms)
+APR_DECLARE(apr_status_t) apr_setfileperms(const char *fname, apr_fileperms_t 
perms)
 {
     return APR_ENOTIMPL;
 }
 
-apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
 {
     apr_oslevel_e os_level;
     /*
@@ -324,7 +324,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_lstat(apr_finfo_t *finfo, const char *fname, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_lstat(apr_finfo_t *finfo, const char *fname, 
apr_pool_t *cont)
 {
     apr_oslevel_e os_level;
     if (apr_get_oslevel(cont, &os_level) || os_level < APR_WIN_2000)
Index: win32/flock.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/flock.c,v
retrieving revision 1.1
diff -u -d -b -r1.1 flock.c
--- win32/flock.c       2000/12/04 04:21:43     1.1
+++ win32/flock.c       2001/01/14 17:30:28
@@ -54,7 +54,7 @@
 
 #include "fileio.h"
 
-apr_status_t apr_lock_file(apr_file_t *thefile, int type)
+APR_DECLARE(apr_status_t) apr_lock_file(apr_file_t *thefile, int type)
 {
     OVERLAPPED offset;
     DWORD flags, len = 0xffffffff;
@@ -70,7 +70,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_unlock_file(apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_unlock_file(apr_file_t *thefile)
 {
     OVERLAPPED offset;
     DWORD len = 0xffffffff;
Index: win32/open.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/open.c,v
retrieving revision 1.60
diff -u -d -b -r1.60 open.c
--- win32/open.c        2000/11/11 02:27:06     1.60
+++ win32/open.c        2001/01/14 17:30:31
@@ -163,7 +163,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_open(apr_file_t **new, const char *fname, 
+APR_DECLARE(apr_status_t) apr_open(apr_file_t **new, const char *fname,
                       apr_int32_t flag, apr_fileperms_t perm, apr_pool_t *cont)
 {
     DWORD oflags = 0;
@@ -281,7 +281,7 @@
     return APR_SUCCESS;
 }
 
-apr_status_t apr_close(apr_file_t *file)
+APR_DECLARE(apr_status_t) apr_close(apr_file_t *file)
 {
     apr_status_t stat;
     if ((stat = file_cleanup(file)) == APR_SUCCESS) {
@@ -295,7 +295,7 @@
     return stat;
 }
 
-apr_status_t apr_remove_file(const char *path, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_remove_file(const char *path, apr_pool_t *cont)
 {
 #if APR_HAS_UNICODE_FS
     apr_oslevel_e os_level;
@@ -314,7 +314,7 @@
     return apr_get_os_error();
 }
 
-apr_status_t apr_rename_file(const char *from_path, const char *to_path,
+APR_DECLARE(apr_status_t) apr_rename_file(const char *from_path, const char 
*to_path,
                              apr_pool_t *cont)
 {
 #if APR_HAS_UNICODE_FS
@@ -361,7 +361,7 @@
     return APR_SUCCESS;
 }    
 
-apr_status_t apr_eof(apr_file_t *fptr)
+APR_DECLARE(apr_status_t) apr_eof(apr_file_t *fptr)
 {
     if (fptr->eof_hit == 1) {
         return APR_EOF;
@@ -369,7 +369,7 @@
     return APR_SUCCESS;
 }   
 
-apr_status_t apr_open_stderr(apr_file_t **thefile, apr_pool_t *cont)
+APR_DECLARE(apr_status_t) apr_open_stderr(apr_file_t **thefile, apr_pool_t 
*cont)
 {
     (*thefile) = apr_pcalloc(cont, sizeof(apr_file_t));
     if ((*thefile) == NULL) {
Index: win32/pipe.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/pipe.c,v
retrieving revision 1.32
diff -u -d -b -r1.32 pipe.c
--- win32/pipe.c        2000/11/09 06:15:54     1.32
+++ win32/pipe.c        2001/01/14 17:30:32
@@ -63,7 +63,7 @@
 #include <sys/stat.h>
 #include "misc.h"
 
-apr_status_t apr_set_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
timeout)
+APR_DECLARE(apr_status_t) apr_set_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t timeout)
 {
     if (thepipe->pipe == 1) {
         thepipe->timeout = timeout;
@@ -72,7 +72,7 @@
     return APR_EINVAL;
 }
 
-apr_status_t apr_get_pipe_timeout(apr_file_t *thepipe, apr_interval_time_t 
*timeout)
+APR_DECLARE(apr_status_t) apr_get_pipe_timeout(apr_file_t *thepipe, 
apr_interval_time_t *timeout)
 {
     if (thepipe->pipe == 1) {
         *timeout = thepipe->timeout;
@@ -81,7 +81,7 @@
     return APR_EINVAL;
 }
 
-apr_status_t apr_create_pipe(apr_file_t **in, apr_file_t **out, apr_pool_t *p)
+APR_DECLARE(apr_status_t) apr_create_pipe(apr_file_t **in, apr_file_t **out, 
apr_pool_t *p)
 {
     SECURITY_ATTRIBUTES sa;
 
Index: win32/readwrite.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/readwrite.c,v
retrieving revision 1.50
diff -u -d -b -r1.50 readwrite.c
--- win32/readwrite.c   2000/11/09 06:15:54     1.50
+++ win32/readwrite.c   2001/01/14 17:30:36
@@ -148,7 +148,7 @@
     return rv;
 }
 
-apr_status_t apr_read(apr_file_t *thefile, void *buf, apr_size_t *len)
+APR_DECLARE(apr_status_t) apr_read(apr_file_t *thefile, void *buf, apr_size_t 
*len)
 {
     apr_size_t rv;
     DWORD bytes_read = 0;
@@ -221,7 +221,7 @@
     return rv;
 }
 
-apr_status_t apr_write(apr_file_t *thefile, const void *buf, apr_size_t 
*nbytes)
+APR_DECLARE(apr_status_t) apr_write(apr_file_t *thefile, const void *buf, 
apr_size_t *nbytes)
 {
     apr_status_t rv;
     DWORD bwrote;
@@ -275,7 +275,7 @@
 /*
  * Too bad WriteFileGather() is not supported on 95&98 (or NT prior to SP2)
  */
-apr_status_t apr_writev(apr_file_t *thefile, const struct iovec *vec, 
apr_size_t nvec, 
+APR_DECLARE(apr_status_t) apr_writev(apr_file_t *thefile, const struct iovec 
*vec, apr_size_t nvec,
                       apr_size_t *nbytes)
 {
     apr_status_t rv = APR_SUCCESS;
@@ -296,20 +296,20 @@
     return rv;
 }
 
-apr_status_t apr_putc(char ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_putc(char ch, apr_file_t *thefile)
 {
     DWORD len = 1;
 
     return apr_write(thefile, &ch, &len);
 }
 
-apr_status_t apr_ungetc(char ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_ungetc(char ch, apr_file_t *thefile)
 {
     thefile->ungetchar = (unsigned char) ch;
     return APR_SUCCESS;
 }
 
-apr_status_t apr_getc(char *ch, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_getc(char *ch, apr_file_t *thefile)
 {
     apr_status_t rc;
     int bread;
@@ -328,14 +328,14 @@
     return APR_SUCCESS; 
 }
 
-apr_status_t apr_puts(const char *str, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_puts(const char *str, apr_file_t *thefile)
 {
     DWORD len = strlen(str);
 
     return apr_write(thefile, str, &len);
 }
 
-apr_status_t apr_fgets(char *str, int len, apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_fgets(char *str, int len, apr_file_t *thefile)
 {
     apr_size_t readlen;
     apr_status_t rv = APR_SUCCESS;
@@ -361,7 +361,7 @@
     return rv;
 }
 
-apr_status_t apr_flush(apr_file_t *thefile)
+APR_DECLARE(apr_status_t) apr_flush(apr_file_t *thefile)
 {
     if (thefile->buffered) {
         DWORD written = 0;
Index: win32/seek.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/seek.c,v
retrieving revision 1.11
diff -u -d -b -r1.11 seek.c
--- win32/seek.c        2000/11/09 06:15:54     1.11
+++ win32/seek.c        2001/01/14 17:30:36
@@ -86,7 +86,7 @@
 
 
 
-apr_status_t apr_seek(apr_file_t *thefile, apr_seek_where_t where, apr_off_t 
*offset)
+APR_DECLARE(apr_status_t) apr_seek(apr_file_t *thefile, apr_seek_where_t 
where, apr_off_t *offset)
 {
     DWORD howmove;
     DWORD rv;

Reply via email to