apr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wr...@apache.org
Subject cvs commit: apr/time/win32 time.c timestr.c
Date Thu, 18 Jan 2001 20:07:39 GMT
wrowe       01/01/18 12:07:39

  Modified:    .        apr.dsp libapr.dsp
               file_io/unix fileacc.c fullrw.c
               file_io/win32 dir.c filedup.c filestat.c flock.c open.c
                        pipe.c readwrite.c seek.c
               include  apr.hw apr_file_io.h apr_fnmatch.h apr_general.h
                        apr_getopt.h apr_hash.h apr_lib.h apr_lock.h
                        apr_md5.h apr_mmap.h apr_network_io.h apr_pools.h
                        apr_portable.h apr_shmem.h apr_strings.h
                        apr_tables.h apr_thread_proc.h apr_time.h
                        apr_uuid.h apr_xlate.h
               include/arch/win32 fileio.h
               locks/win32 locks.c
               misc/unix errorcodes.c start.c uuid.c
               misc/win32 getuuid.c rand.c
               mmap/unix common.c
               mmap/win32 mmap.c
               network_io/unix sa_common.c
               network_io/win32 poll.c sendrecv.c sockets.c sockopt.c
               strings  apr_strnatcmp.c
               threadproc/win32 proc.c signals.c thread.c threadpriv.c
               time/win32 time.c timestr.c
  Removed:     .        libapr.def
  Log:
    Add remaining APR_DECLARE()s to all headers.  Conditionally added
    APR_DECLARES() to the sources, based on compilation emits (there
    are many that should be changed eventually, but the compiler will
    emit errors if those sources are added for win32).
  
    This change also splits libapr from apr, so the two projects are
    compiled seperately.  Both .dsp files must be kept up-to-date with
    source file revisions.
  
    Finally, libapr.def is no longer needed - so it is gone.
  
  Revision  Changes    Path
  1.60      +3 -7      apr/apr.dsp
  
  Index: apr.dsp
  ===================================================================
  RCS file: /home/cvs/apr/apr.dsp,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- apr.dsp	2001/01/04 21:41:35	1.59
  +++ apr.dsp	2001/01/18 20:07:11	1.60
  @@ -41,7 +41,7 @@
   # PROP Intermediate_Dir "LibR"
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
  -# ADD CPP /nologo /MD /W3 /O2 /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fd"LibR\apr" /FD /c
  +# ADD CPP /nologo /MD /W3 /O2 /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /Fd"LibR\apr" /FD /c
   # ADD BASE RSC /l 0x409
   # ADD RSC /l 0x409
   BSC32=bscmake.exe
  @@ -64,8 +64,8 @@
   # PROP Intermediate_Dir "LibD"
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
  -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
  -# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fd"LibD\apr" /FD /c
  +# ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
  +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /Fd"LibD\apr" /FD /c
   # ADD BASE RSC /l 0x409
   # ADD RSC /l 0x409
   BSC32=bscmake.exe
  @@ -518,9 +518,5 @@
   SOURCE=.\include\apr_xlate.h
   # End Source File
   # End Group
  -# Begin Source File
  -
  -SOURCE=.\libapr.def
  -# End Source File
   # End Target
   # End Project
  
  
  
  1.18      +437 -8    apr/libapr.dsp
  
  Index: libapr.dsp
  ===================================================================
  RCS file: /home/cvs/apr/libapr.dsp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- libapr.dsp	2000/12/21 01:24:57	1.17
  +++ libapr.dsp	2001/01/18 20:07:12	1.18
  @@ -43,7 +43,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
  -# ADD CPP /nologo /MD /W3 /O2 /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fd"Release\libapr" /FD /c
  +# ADD CPP /nologo /MD /W3 /O2 /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fd"Release\apr" /FD /c
   # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
   # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
   # ADD BASE RSC /l 0x409 /d "NDEBUG"
  @@ -52,8 +52,8 @@
   # ADD BASE BSC32 /nologo
   # ADD BSC32 /nologo
   LINK32=link.exe
  -# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /machine:I386
  -# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /machine:I386
  +# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /machine:I386 /OPT:NOREF
  +# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /machine:I386 /OPT:NOREF
   
   !ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
   
  @@ -69,7 +69,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
  -# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fd"Debug\libapr" /FD /c
  +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fd"Debug\apr" /FD /c
   # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
   # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
   # ADD BASE RSC /l 0x409 /d "_DEBUG"
  @@ -78,8 +78,8 @@
   # ADD BASE BSC32 /nologo
   # ADD BSC32 /nologo
   LINK32=link.exe
  -# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /debug /machine:I386
  -# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /debug /machine:I386
  +# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /OPT:NOREF
  +# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE0000" /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /OPT:NOREF
   
   !ENDIF 
   
  @@ -87,13 +87,442 @@
   
   # Name "libapr - Win32 Release"
   # Name "libapr - Win32 Debug"
  +# Begin Group "Source Files"
  +
  +# PROP Default_Filter ".c"
  +# Begin Group "time"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\time\win32\access.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\atime.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\time\win32\time.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\time\win32\timestr.c
  +# End Source File
  +# End Group
  +# Begin Group "strings"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\strings\apr_cpystrn.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\strings\apr_fnmatch.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\strings\apr_snprintf.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\strings\apr_strings.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\strings\apr_strnatcmp.c
  +# End Source File
  +# End Group
  +# Begin Group "passwd"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\passwd\apr_getpass.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\passwd\apr_md5.c
  +# End Source File
  +# End Group
  +# Begin Group "tables"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\tables\apr_hash.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\tables\apr_tables.c
  +# End Source File
  +# End Group
  +# Begin Group "misc"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\misc\unix\errorcodes.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\unix\getopt.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\win32\getuuid.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\win32\misc.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\unix\misc.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\win32\names.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\win32\rand.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\unix\start.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\misc\unix\uuid.c
  +# End Source File
  +# End Group
  +# Begin Group "file_io"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\canonfile.c
  +# PROP Exclude_From_Build 1
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\dir.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\unix\fileacc.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\filedup.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\fileio.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\filestat.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\flock.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\unix\fullrw.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\open.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\pipe.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\readwrite.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\file_io\win32\seek.c
  +# End Source File
  +# End Group
  +# Begin Group "locks"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\locks\win32\locks.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\locks.h
  +# End Source File
  +# End Group
  +# Begin Group "network_io"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\network_io\unix\inet_ntop.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\networkio.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\network_io\win32\poll.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\network_io\unix\sa_common.c
  +# PROP Exclude_From_Build 1
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\network_io\win32\sendrecv.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\network_io\win32\sockaddr.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\network_io\win32\sockets.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\network_io\win32\sockopt.c
  +# End Source File
  +# End Group
  +# Begin Group "threadproc"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\threadproc\win32\proc.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\threadproc\win32\signals.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\threadproc\win32\thread.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\threadproc\win32\threadpriv.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\threadproc.h
  +# End Source File
  +# End Group
  +# Begin Group "dso"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\dso\win32\dso.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\dso.h
  +# End Source File
  +# End Group
  +# Begin Group "lib"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\lib\apr_pools.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\lib\apr_signal.c
  +# End Source File
  +# End Group
  +# Begin Group "i18n"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\include\arch\unix\i18n.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\i18n\unix\utf8_ucs2.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\i18n\unix\xlate.c
  +# PROP Exclude_From_Build 1
  +# End Source File
  +# End Group
  +# Begin Group "shmem"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\shmem\win32\shmem.c
  +# PROP Exclude_From_Build 1
  +# End Source File
  +# End Group
  +# Begin Group "mmap"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\mmap\unix\common.c
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\mmap\win32\mmap.c
  +# End Source File
  +# End Group
  +# End Group
  +# Begin Group "Generated Header Files"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\include\apr.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr.h.in
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr.hw
  +
  +!IF  "$(CFG)" == "libapr - Win32 Release"
  +
  +# Begin Custom Build
  +InputPath=.\include\apr.hw
  +
  +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
  +	copy .\include\apr.hw .\include\apr.h > nul 
  +	echo Created apr.h from apr.hw 
  +	
  +# End Custom Build
  +
  +!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
  +
  +# Begin Custom Build
  +InputPath=.\include\apr.hw
  +
  +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
  +	copy .\include\apr.hw .\include\apr.h > nul 
  +	echo Created apr.h from apr.hw 
  +	
  +# End Custom Build
  +
  +!ENDIF 
  +
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\arch\win32\apr_private.h
  +# End Source File
  +# End Group
  +# Begin Group "External Header Files"
  +
  +# PROP Default_Filter ""
  +# Begin Source File
  +
  +SOURCE=.\include\apr_compat.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_dso.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_errno.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_file_io.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_fnmatch.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_general.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_getopt.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_hash.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_lib.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_lock.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_md5.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_mmap.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_network_io.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_pools.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_portable.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_shmem.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_strings.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_tables.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_thread_proc.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=.\include\apr_time.h
  +# End Source File
   # Begin Source File
   
  -SOURCE=.\misc\win32\libapr.c
  +SOURCE=.\include\apr_uuid.h
   # End Source File
   # Begin Source File
   
  -SOURCE=.\libapr.def
  +SOURCE=.\include\apr_xlate.h
   # End Source File
  +# End Group
   # End Target
   # End Project
  
  
  
  1.45      +7 -4      apr/file_io/unix/fileacc.c
  
  Index: fileacc.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/unix/fileacc.c,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- fileacc.c	2001/01/05 18:45:25	1.44
  +++ fileacc.c	2001/01/18 20:07:14	1.45
  @@ -57,7 +57,8 @@
   
   /* 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,13 +137,15 @@
   }
   #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_status_t (*cleanup) (void *))
  +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);
   }
  
  
  
  1.5       +6 -4      apr/file_io/unix/fullrw.c
  
  Index: fullrw.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/unix/fullrw.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- fullrw.c	2000/11/10 19:01:30	1.4
  +++ fullrw.c	2001/01/18 20:07:14	1.5
  @@ -55,8 +55,9 @@
   #include "apr_file_io.h"
   
   
  -apr_status_t apr_full_read(apr_file_t *thefile, void *buf, apr_size_t nbytes,
  -                         apr_size_t *bytes_read)
  +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;
       apr_size_t total_read = 0;
  @@ -76,8 +77,9 @@
       return status;
   }
   
  -apr_status_t apr_full_write(apr_file_t *thefile, const void *buf,
  -                          apr_size_t nbytes, apr_size_t *bytes_written)
  +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;
       apr_size_t total_written = 0;
  
  
  
  1.42      +21 -12    apr/file_io/win32/dir.c
  
  Index: dir.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/dir.c,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- dir.c	2001/01/05 19:40:05	1.41
  +++ dir.c	2001/01/18 20:07:15	1.42
  @@ -82,7 +82,8 @@
       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 +174,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 +183,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 +232,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 +242,8 @@
       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 +264,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 +285,8 @@
       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 +296,8 @@
       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 +306,8 @@
       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 +325,8 @@
       }
   }
   
  -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;
  @@ -337,7 +343,8 @@
       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;
  @@ -353,7 +360,9 @@
    * on cached info that we simply don't have our hands on when
    * we use this function.  Maybe APR_ENOTIMPL would be better?
    */
  -apr_status_t apr_put_os_dir(apr_dir_t **dir, apr_os_dir_t *thedir, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_dir(apr_dir_t **dir,
  +                                         apr_os_dir_t *thedir,
  +                                         apr_pool_t *cont)
   {
       if (cont == NULL) {
           return APR_ENOPOOL;
  
  
  
  1.28      +2 -1      apr/file_io/win32/filedup.c
  
  Index: filedup.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/filedup.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- filedup.c	2000/11/09 14:06:42	1.27
  +++ filedup.c	2001/01/18 20:07:15	1.28
  @@ -58,7 +58,8 @@
   #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();
  
  
  
  1.37      +8 -4      apr/file_io/win32/filestat.c
  
  Index: filestat.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/filestat.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- filestat.c	2000/11/19 18:11:17	1.36
  +++ filestat.c	2001/01/18 20:07:15	1.37
  @@ -99,7 +99,8 @@
       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 +192,14 @@
       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 +327,8 @@
       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)
  
  
  
  1.2       +2 -2      apr/file_io/win32/flock.c
  
  Index: flock.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/flock.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- flock.c	2000/12/04 04:21:43	1.1
  +++ flock.c	2001/01/18 20:07:15	1.2
  @@ -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;
  
  
  
  1.61      +15 -11    apr/file_io/win32/open.c
  
  Index: open.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/open.c,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- open.c	2000/11/11 02:27:06	1.60
  +++ open.c	2001/01/18 20:07:15	1.61
  @@ -163,8 +163,9 @@
       return APR_SUCCESS;
   }
   
  -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)
   {
       DWORD oflags = 0;
       DWORD createflags = 0;
  @@ -281,7 +282,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 +296,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,8 +315,9 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_rename_file(const char *from_path, const char *to_path,
  -                             apr_pool_t *cont)
  +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
       apr_oslevel_e os_level;
  @@ -337,7 +339,8 @@
       return apr_get_os_error();
   }
   
  -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;
  @@ -346,8 +349,9 @@
       return APR_SUCCESS;
   }
   
  -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)
   {
       if ((*file) == NULL) {
           if (cont == NULL) {
  @@ -361,7 +365,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 +373,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) {
  
  
  
  1.33      +3 -3      apr/file_io/win32/pipe.c
  
  Index: pipe.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/pipe.c,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- pipe.c	2000/11/09 06:15:54	1.32
  +++ pipe.c	2001/01/18 20:07:15	1.33
  @@ -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;
   
  
  
  
  1.51      +12 -10    apr/file_io/win32/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/readwrite.c,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- readwrite.c	2000/11/09 06:15:54	1.50
  +++ readwrite.c	2001/01/18 20:07:16	1.51
  @@ -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,8 +275,10 @@
   /*
    * 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_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)
   {
       apr_status_t rv = APR_SUCCESS;
       int i;
  @@ -296,20 +298,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 +330,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 +363,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;
  
  
  
  1.12      +1 -1      apr/file_io/win32/seek.c
  
  Index: seek.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/seek.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- seek.c	2000/11/09 06:15:54	1.11
  +++ seek.c	2001/01/18 20:07:16	1.12
  @@ -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;
  
  
  
  1.46      +1 -1      apr/include/apr.hw
  
  Index: apr.hw
  ===================================================================
  RCS file: /home/cvs/apr/include/apr.hw,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- apr.hw	2000/12/22 16:54:50	1.45
  +++ apr.hw	2001/01/18 20:07:18	1.46
  @@ -53,7 +53,7 @@
    */
   
   /* 
  - * Note: This is a Windows specific version of apr.h. It is renamed to
  + * Note: This is a Windows specific version of apr.h. It is copied as
    * apr.h at the start of a Windows build.
    */
   
  
  
  
  1.86      +123 -207  apr/include/apr_file_io.h
  
  Index: apr_file_io.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_file_io.h,v
  retrieving revision 1.85
  retrieving revision 1.86
  diff -u -r1.85 -r1.86
  --- apr_file_io.h	2001/01/05 19:40:05	1.85
  +++ apr_file_io.h	2001/01/18 20:07:19	1.86
  @@ -134,11 +134,6 @@
    */
   typedef struct apr_dir_t          apr_dir_t;
   /**
  - * Structure for determining canonical filenames.
  - * @defvar apr_canon_t
  - */
  -typedef struct apr_canon_t        apr_canon_t;
  -/**
    * Structure for determining file permissions.
    * @defvar apr_fileperms_t
    */
  @@ -216,157 +211,6 @@
   #define APR_FLOCK_NONBLOCK      0x0010  /* do not block while acquiring the
                                              file lock */
   
  -
  -/*   Make and Merge Canonical Name Options */
  -#define APR_CANON_ONLY_ABSOLUTE   0
  -#define APR_CANON_ALLOW_RELATIVE  2
  -#define APR_CANON_ONLY_RELATIVE   3
  -#define APR_CANON_CHILD_OF_TRUSTED  4
  -#define APR_CANON_LOWERCASE 
  -#define APR_CANON_TRUECASE 
  -
  -
  -/* This is a hack, because none of these functions actually exist yet.  The
  - * problem is that we generate our exports from the header files, so we are
  - * trying to export these functions, but they don't exist, so we can't link.
  - * This just makes sure that we don't try to link these functions until
  - * they actually exist.
  - */
  -#ifdef APR_NOT_DONE_YET
  -/**
  - * Canonicalize the path and name.
  - * @param new_name The newly allocated canonicalized trusted+child name
  - * @param trusted_name Already canonical parent path; may be NULL.
  - * @param child_name An absolute path or path relative to trusted_name.
  - * @param options Bit-wise OR of:
  - * <PRE>
  - *   APR_CANON_ONLY_ABSOLUTE     Require the trusted_name+child_name result is 
  - *                               an absolute product or fail with error for the 
  - *                               make and merge canonical name functions.
  - *   APR_CANON_ALLOW_RELATIVE    Allow that the trusted_name+child_name result 
  - *                               may be a relative result for the make and 
  - *                               merge canonical name functions.
  - *   APR_CANON_ONLY_RELATIVE     Require the trusted_name+child_name result is 
  - *                               not an absolute path or fail with error for 
  - *                               the make and merge canonical name functions.
  - *   APR_CANON_CHILD_OF_TRUSTED  Require the trusted_name+child_name result is 
  - *                               a child of trusted_name or fail with error for
  - *                               the make and merge canonical name functions.
  - *   APR_CANON_LOWERCASE         If file path elements exist (can stat) then 
  - *                               fold the element's name to lowercase for the 
  - *                               make and merge canonical name functions.
  - *   APR_CANON_TRUECASE          If file path elements exist (can readdir) then
  - *                               fold the element's name to the true case 
  - *                               lowercase for the make and merge canonical 
  - *                               name functions.
  - * </PRE>
  - * @param pool The pool in which to allocate the new_name apr_canon_t
  - *
  - * @tip A canonical name is a name stripped of embedded backrefs "../", 
  - * thisrefs "./", successive slashes (//), or any other ambigious file
  - * name element.  Absolute canonical names referencing the same file must 
  - * strcmp() identically, excluding symlinks or inconsistent use of the
  - * APR_CANON_LOWERCASE or APR_CANON_TRUECASE options.
  - * 
  - * If the name does not exist, or resolves to a relative name the given case
  - * is preserved.  Insignificant elements are eliminated.  For example, on Win32 
  - * this function removes trailing dots (which are allowed, but not stored in 
  - * 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.
  - */
  -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);
  -
  -/**
  - * Merge two canonical names into a single canonical name.
  - * @param new_name The newly allocated canonicalized trusted+child name
  - * @param trusted_name Already canonical parent path; may be NULL.
  - * @param child_name An already canonical absolute path or path relative to 
  - *                   trusted_name.
  - * @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
  - */
  -apr_status_t apr_merge_canonical_name(apr_canon_t **new_name,
  -                                      const apr_canon_t *trusted_name,
  -                                      const apr_canon_t *child_name,
  -                                      int options,
  -                                      apr_pool_t *pool);
  -
  -/**
  - * Get the canonical path in a character string
  - * @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.
  - */
  -apr_status_t apr_get_canonical_name(char **path, 
  -                                    const apr_canon_t *trusted_name, 
  -                                    apr_pool_t *pool);
  -
  -/**
  - * 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
  - */
  -int apr_count_canonical_elements(const apr_canon_t *trusted_name);
  -
  -/**
  - * Query the length of some elements of the canonical name
  - * @param trusted_name An already canonicalized file path
  - * @param firstelement The numerical position of the element to start the 
  - *        length at.
  - * @param lastelement The numerical position of the element to end the
  - *        length at.
  - * @return The length of requested elements.
  - */
  -int apr_get_canonical_elements_length(const apr_canon_t *trusted_name,
  -                                      int firstelement, int lastelement);
  -
  -/**
  - * Get the requested elements of a canonical name in a character string
  - * @param path_elements A location to store the path elements.
  - * @param trusted_name An already canonicalized file path
  - * @param firstelement The numerical position of the element to start the 
  - *        length at.
  - * @param lastelement The numerical position of the element to end the
  - *        length at.
  - * @param pool The pool to allocate the path out of.
  - */
  -apr_status_t apr_get_canonical_elements(char **path_elements,
  -                                        const apr_canon_t *trusted_name,
  -                                        int firstelement, int lastelement,
  -                                        apr_pool_t *pool);
  -
  -/**
  - * Determine if a canonical name is absolute.
  - * @param path The canonical name to check
  - * @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.
  - */
  -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
  - */
  -apr_status_t apr_is_relative(apr_canon_t **path);
  -
  -/**
  - * Determine if the elements 0..elements resolves to a platform's non-physical 
  - * root, e.g. the //machine/ name that isn't an adaquately complete root for 
  - * UNC paths.
  - * @param path The canonical name to check
  - * @param elements The number of elements to check.
  - */
  -apr_status_t apr_is_virtualroot(apr_canon_t **path, int elements);
  -#endif
  -
   /**
    * Open the specified file.
    * @param new_file The opened file descriptor.
  @@ -386,26 +230,30 @@
    * </PRE>
    * @param perm Access permissions for file.
    * @param cont The pool to use.
  + * @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)
    * @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)
    */
  -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_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.
  + * @deffunc apr_status_t apr_remove_file(const char *path, apr_pool_t *cont)
    * @tip If the file is open, it won't be removed until all instances are closed.
    */
  -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 +262,36 @@
    * @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_pool_t *pool);
  +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 +308,10 @@
    *      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 +327,10 @@
    *      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,9 +346,11 @@
    *      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_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);
   
   /**
    * Read data from the specified file, ensuring that the buffer is filled
  @@ -509,9 +369,11 @@
    *      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_size_t *bytes_read);
  +APR_DECLARE(apr_status_t) apr_full_read(apr_file_t *thefile, void *buf,
  +                                        apr_size_t nbytes,
  +                                        apr_size_t *bytes_read);
   
   /**
    * Write data to the specified file, ensuring that all of the data is
  @@ -528,51 +390,59 @@
    *      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_size_t nbytes, apr_size_t *bytes_written);
  +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 +450,20 @@
    * @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 **new_file, 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 +474,10 @@
    *      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 +486,10 @@
    * 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 +499,10 @@
    * 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 +515,102 @@
    * @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_seek(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_pool_t *cont);
  +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 +622,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 +639,29 @@
    * 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 +669,38 @@
    * @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_status_t (*cleanup) (void *));
  +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.
  @@ -794,7 +710,7 @@
    * @return The number of bytes written
    * @deffunc int apr_fprintf(apr_file_t *fptr, const char *format, ...)
    */ 
  -APR_DECLARE(int) apr_fprintf(apr_file_t *fptr, const char *format, ...)
  +APR_DECLARE_NONSTD(int) apr_fprintf(apr_file_t *fptr, const char *format, ...)
           __attribute__((format(printf,2,3)));
   
   #ifdef __cplusplus
  
  
  
  1.14      +2 -2      apr/include/apr_fnmatch.h
  
  Index: apr_fnmatch.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_fnmatch.h,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- apr_fnmatch.h	2000/12/04 05:41:16	1.13
  +++ apr_fnmatch.h	2001/01/18 20:07:19	1.14
  @@ -69,8 +69,8 @@
    * @deffunc apr_status_t apr_fnmatch(const char *pattern, const char *strings, int flags)
    */
   
  -APR_DECLARE(apr_status_t) apr_fnmatch(const char *pattern, const char *strings,
  -			    int flags);
  +APR_DECLARE(apr_status_t) apr_fnmatch(const char *pattern, 
  +                                      const char *strings, int flags);
   
   /**
    * Determine if the given pattern is a regular expression.
  
  
  
  1.48      +13 -5     apr/include/apr_general.h
  
  Index: apr_general.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_general.h,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- apr_general.h	2001/01/02 01:19:07	1.47
  +++ apr_general.h	2001/01/18 20:07:19	1.48
  @@ -253,20 +253,25 @@
    */
   
   #if APR_HAS_RANDOM
  +
  +/* TODO: I'm not sure this is the best place to put this prototype...*/
   /**
    * Generate a string of random bytes.
    * @param buf Random bytes go here
    * @param length size of the buffer
  + * @deffunc apr_status_t apr_generate_random_bytes(unsigned char * buf, int length)
    */
  -/* TODO: I'm not sure this is the best place to put this prototype...*/
  -apr_status_t apr_generate_random_bytes(unsigned char * buf, int length);
  +APR_DECLARE(apr_status_t) apr_generate_random_bytes(unsigned char * buf, 
  +                                                    int length);
  +
   #endif
   
   /**
    * Setup any APR internal data structures.  This MUST be the first function 
    * called for any APR program.
  + * @deffunc apr_status_t apr_initialize(void)
    */
  -apr_status_t apr_initialize(void);
  +APR_DECLARE(apr_status_t) apr_initialize(void);
   
   /**
    * Tear down any APR internal data structures which aren't torn down 
  @@ -274,8 +279,9 @@
    * @tip An APR program must call this function at termination once it 
    *      has stopped using APR services.  The APR developers suggest using
    *      atexit to ensure this is called.
  + * @deffunc void apr_terminate(void)
    */
  -void apr_terminate(void);
  +APR_DECLARE(void) apr_terminate(void);
   
   /**
    * Set the APR_ABORT function.
  @@ -285,8 +291,10 @@
    *      to actually exit the program.  If this function is not called,
    *      then APR will return an error and expect the calling program to
    *      deal with the error accordingly.
  + * @deffunc apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont)
    */
  -apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_set_abort(int (*apr_abort)(int retcode),
  +                                        apr_pool_t *cont);
   
   #ifdef __cplusplus
   }
  
  
  
  1.29      +9 -0      apr/include/apr_getopt.h
  
  Index: apr_getopt.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_getopt.h,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- apr_getopt.h	2000/12/04 05:50:44	1.28
  +++ apr_getopt.h	2001/01/18 20:07:19	1.29
  @@ -57,6 +57,10 @@
   
   #include "apr_pools.h"
   
  +#ifdef __cplusplus
  +extern "C" {
  +#endif /* __cplusplus */
  +
   /**
    * @package APR command arguments
    */ 
  @@ -165,4 +169,9 @@
   APR_DECLARE(apr_status_t) apr_getopt_long(apr_getopt_t *os,
   					  const apr_getopt_option_t *opts,
   					  int *optch, const char **optarg);
  +
  +#ifdef __cplusplus
  +}
  +#endif
  +
   #endif  /* ! APR_GETOPT_H */
  
  
  
  1.20      +3 -3      apr/include/apr_hash.h
  
  Index: apr_hash.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_hash.h,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- apr_hash.h	2001/01/11 08:37:45	1.19
  +++ apr_hash.h	2001/01/18 20:07:19	1.20
  @@ -111,7 +111,7 @@
    * @deffunc void apr_hash_set(apr_hash_t *ht, const void *key, apr_size_t klen, const void *val)
    */
   APR_DECLARE(void) apr_hash_set(apr_hash_t *ht, const void *key,
  -                              apr_ssize_t klen, const void *val);
  +                               apr_ssize_t klen, const void *val);
   
   /**
    * Look up the value associated with a key in a hash table.
  @@ -122,7 +122,7 @@
    * @deffunc void *apr_hash_get(apr_hash_t *ht, const void *key, apr_size_t klen)
    */
   APR_DECLARE(void*) apr_hash_get(apr_hash_t *ht, const void *key,
  -                               apr_ssize_t klen);
  +                                apr_ssize_t klen);
   
   /**
    * Start iterating over the entries in a hash table.
  @@ -171,7 +171,7 @@
    * @deffunc void apr_hash_this(apr_hash_index_t *hi, const void **key, apr_size_t *klen, void **val);
    */
   APR_DECLARE(void) apr_hash_this(apr_hash_index_t *hi, const void **key, 
  -                               apr_size_t *klen, void **val);
  +                                apr_size_t *klen, void **val);
   
   /**
    * Get the number of key/value pairs in the hash table.
  
  
  
  1.49      +8 -6      apr/include/apr_lib.h
  
  Index: apr_lib.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_lib.h,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- apr_lib.h	2000/12/16 02:06:47	1.48
  +++ apr_lib.h	2001/01/18 20:07:20	1.49
  @@ -205,8 +205,8 @@
    * @deffunc int apr_vformatter(int (*flush_func)(apr_vformatter_buff_t *b), apr_vformatter_buff_t *c, const char *fmt, va_list ap)
    */
   APR_DECLARE(int) apr_vformatter(int (*flush_func)(apr_vformatter_buff_t *b),
  -			       apr_vformatter_buff_t *c, const char *fmt,
  -			       va_list ap);
  +			        apr_vformatter_buff_t *c, const char *fmt,
  +			        va_list ap);
   
   /**
    * Validate any password encypted with any algorithm that APR understands
  @@ -214,7 +214,8 @@
    * @param hash The password to validate against
    * @deffunc apr_status_t apr_validate_password(const char *passwd, const char *hash)
    */
  -APR_DECLARE(apr_status_t) apr_validate_password(const char *passwd, const char *hash);
  +APR_DECLARE(apr_status_t) apr_validate_password(const char *passwd, 
  +                                                const char *hash);
   
   /*
    * These are snprintf implementations based on apr_vformatter().
  @@ -243,7 +244,7 @@
    * @deffunc int apr_snprintf(char *buf, size_t len, const char *format, ...)
    */
   APR_DECLARE_NONSTD(int) apr_snprintf(char *buf, size_t len, 
  -                                   const char *format, ...)
  +                                     const char *format, ...)
   	__attribute__((format(printf,3,4)));
   
   /**
  @@ -256,7 +257,7 @@
    * @deffunc int apr_vsnprintf(char *buf, size_t len, const char *format, va_list ap)
    */
   APR_DECLARE(int) apr_vsnprintf(char *buf, size_t len, const char *format,
  -			      va_list ap);
  +			       va_list ap);
   
   /**
    * Display a prompt and read in the password from stdin.
  @@ -265,7 +266,8 @@
    * @param bufsize The length of the password string.
    * @deffunc apr_status_t apr_getpass(const char *prompt, char *pwbuf, size_t *bufsize)
    */
  -APR_DECLARE(apr_status_t) apr_getpass(const char *prompt, char *pwbuf, size_t *bufsize);
  +APR_DECLARE(apr_status_t) apr_getpass(const char *prompt, char *pwbuf, 
  +                                      size_t *bufsize);
   
   #ifdef __cplusplus
   }
  
  
  
  1.20      +23 -11    apr/include/apr_lock.h
  
  Index: apr_lock.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_lock.h,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- apr_lock.h	2000/12/04 06:15:05	1.19
  +++ apr_lock.h	2001/01/18 20:07:20	1.20
  @@ -96,30 +96,36 @@
    * @param cont The pool to operate on.
    * @tip APR_CROSS_PROCESS may lock both processes and threads, but it is
    *      only guaranteed to lock processes.
  + * @deffunc apr_status_t apr_create_lock(apr_lock_t **lock, apr_locktype_e type, apr_lockscope_e scope, const char *fname, apr_pool_t *cont)
    */
  -apr_status_t apr_create_lock(apr_lock_t **lock, apr_locktype_e type, 
  -                           apr_lockscope_e scope, const char *fname, 
  -                           apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_lock(apr_lock_t **lock,
  +                                          apr_locktype_e type,
  +                                          apr_lockscope_e scope,
  +                                          const char *fname,
  +                                          apr_pool_t *cont);
   
   /**
    * Lock a protected region.
    * @param lock The lock to set.
  + * @deffunc apr_status_t apr_lock(apr_lock_t *lock)
    */
  -apr_status_t apr_lock(apr_lock_t *lock);
  +APR_DECLARE(apr_status_t) apr_lock(apr_lock_t *lock);
   
   /**
    * Unlock a protected region.
    * @param lock The lock to reset.
  + * @deffunc apr_status_t apr_unlock(apr_lock_t *lock)
    */
  -apr_status_t apr_unlock(apr_lock_t *lock);
  +APR_DECLARE(apr_status_t) apr_unlock(apr_lock_t *lock);
   
   /**
    * Free the memory associated with a lock.
    * @param lock The lock to free.
  + * @deffunc apr_status_t apr_destroy_lock(apr_lock_t *lock)
    * @tip  If the lock is currently active when it is destroyed, it 
    *       will be unlocked first.
    */
  -apr_status_t apr_destroy_lock(apr_lock_t *lock);
  +APR_DECLARE(apr_status_t) apr_destroy_lock(apr_lock_t *lock);
   
   /**
    * Re-open a lock in a child process.
  @@ -133,17 +139,21 @@
    *      locking mechanism chosen for the platform, but it is a good
    *      idea to call it regardless, because it makes the code more
    *      portable. 
  + * @deffunc apr_status_t apr_child_init_lock(apr_lock_t **lock, const char *fname, apr_pool_t *cont)
    */
  -apr_status_t apr_child_init_lock(apr_lock_t **lock, const char *fname, 
  -                               apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_child_init_lock(apr_lock_t **lock,
  +                                              const char *fname,
  +                                              apr_pool_t *cont);
   
   /**
    * Return the pool associated with the current lock.
    * @param lock The currently open lock.
    * @param key The key to use when retreiving data associated with this lock
    * @param data The user data associated with the lock.
  + * @deffunc apr_status_t apr_get_lockdata(apr_lock_t *lock, const char *key, void *data)
    */
  -apr_status_t apr_get_lockdata(apr_lock_t *lock, const char *key, void *data);
  +APR_DECLARE(apr_status_t) apr_get_lockdata(apr_lock_t *lock, const char *key,
  +                                           void *data);
   
   /**
    * Return the pool associated with the current lock.
  @@ -151,9 +161,11 @@
    * @param data The user data to associate with the lock.
    * @param key The key to use when associating data with this lock
    * @param cleanup The cleanup to use when the lock is destroyed.
  + * @deffunc apr_status_t apr_set_lockdata(apr_lock_t *lock, void *data, const char *key, apr_status_t (*cleanup)(void *))
    */
  -apr_status_t apr_set_lockdata(apr_lock_t *lock, void *data, const char *key,
  -                            apr_status_t (*cleanup) (void *));
  +APR_DECLARE(apr_status_t) apr_set_lockdata(apr_lock_t *lock, void *data,
  +                                           const char *key,
  +                                           apr_status_t (*cleanup)(void *));
   
   #ifdef __cplusplus
   }
  
  
  
  1.20      +6 -6      apr/include/apr_md5.h
  
  Index: apr_md5.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_md5.h,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- apr_md5.h	2000/11/26 03:00:02	1.19
  +++ apr_md5.h	2001/01/18 20:07:20	1.20
  @@ -131,8 +131,8 @@
    * @deffunc apr_status_t apr_MD5SetXlate(apr_md5_ctx_t *context, apr_xlate_t *xlate)
    */
   #if APR_HAS_XLATE
  -APR_DECLARE(apr_status_t) apr_MD5SetXlate(apr_md5_ctx_t *context, 
  -                                         apr_xlate_t *xlate);
  +APR_DECLARE(apr_status_t) apr_MD5SetXlate(apr_md5_ctx_t *context,
  +                                          apr_xlate_t *xlate);
   #else
   #define apr_MD5SetXlate(context, xlate) APR_ENOTIMPL
   #endif
  @@ -146,8 +146,8 @@
    * @deffunc apr_status_t apr_MD5Update(apr_md5_ctx_t *context, const unsigned char *input, unsigned int inputLen)
    */
   APR_DECLARE(apr_status_t) apr_MD5Update(apr_md5_ctx_t *context,
  -                                       const unsigned char *input,
  -                                       unsigned int inputLen);
  +                                        const unsigned char *input,
  +                                        unsigned int inputLen);
   
   /**
    * MD5 finalization.  Ends an MD5 message-digest operation, writing the 
  @@ -157,7 +157,7 @@
    * @deffunc apr_status_t apr_MD5Final(unsigned char digest[MD5_DIGESTSIZE], apr_md5_ctx_t *context)
    */
   APR_DECLARE(apr_status_t) apr_MD5Final(unsigned char digest[MD5_DIGESTSIZE],
  -                                      apr_md5_ctx_t *context);
  +                                       apr_md5_ctx_t *context);
   
   /**
    * Encode a password using an MD5 algorithm
  @@ -168,7 +168,7 @@
    * @deffunc apr_status_t apr_MD5Encode(const char *password, const char *salt, char *result, size_t nbytes)
    */
   APR_DECLARE(apr_status_t) apr_MD5Encode(const char *password, const char *salt,
  -                                     char *result, size_t nbytes);
  +                                        char *result, size_t nbytes);
   
   #ifdef __cplusplus
   }
  
  
  
  1.20      +10 -5     apr/include/apr_mmap.h
  
  Index: apr_mmap.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_mmap.h,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- apr_mmap.h	2000/12/07 06:58:59	1.19
  +++ apr_mmap.h	2001/01/18 20:07:21	1.20
  @@ -122,24 +122,29 @@
    *          APR_MMAP_WRITE      MMap opened for writing
    * </PRE>
    * @param cntxt The pool to use when creating the mmap.
  + * @deffunc apr_status_t apr_mmap_create(apr_mmap_t **newmmap, apr_file_t *file, apr_off_t offset, apr_size_t size, apr_int32_t flag, apr_pool_t *cntxt)
    */
  -apr_status_t apr_mmap_create(apr_mmap_t ** newmmap, apr_file_t *file, 
  -                             apr_off_t offset, apr_size_t size, 
  -                             apr_int32_t flag, apr_pool_t *cntxt);
  +APR_DECLARE(apr_status_t) apr_mmap_create(apr_mmap_t **newmmap, 
  +                                          apr_file_t *file, apr_off_t offset,
  +                                          apr_size_t size, apr_int32_t flag,
  +                                          apr_pool_t *cntxt);
   
   /**
    * Remove a mmap'ed.
    * @param mmap The mmap'ed file.
  + * @deffunc apr_status_t apr_mmap_delete(apr_mmap_t *mmap)
    */
  -apr_status_t apr_mmap_delete(apr_mmap_t *mmap);
  +APR_DECLARE(apr_status_t) apr_mmap_delete(apr_mmap_t *mmap);
   
   /** 
    * Move the pointer into the mmap'ed file to the specified offset.
    * @param addr The pointer to the offset specified.
    * @param mmap The mmap'ed file.
    * @param offset The offset to move to.
  + * @deffunc apr_status_t apr_mmap_offset(void **addr, apr_mmap_t *mmap, apr_off_t offset)
    */
  -apr_status_t apr_mmap_offset(void **addr, apr_mmap_t *mmap, apr_off_t offset);
  +APR_DECLARE(apr_status_t) apr_mmap_offset(void **addr, apr_mmap_t *mmap, 
  +                                          apr_off_t offset);
   
   #endif /* APR_HAS_MMAP */
   
  
  
  
  1.93      +125 -66   apr/include/apr_network_io.h
  
  Index: apr_network_io.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_network_io.h,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- apr_network_io.h	2000/12/18 20:17:49	1.92
  +++ apr_network_io.h	2001/01/18 20:07:21	1.93
  @@ -219,9 +219,11 @@
    * @param family The address family of the socket (e.g., APR_INET).
    * @param type The type of the socket (e.g., SOCK_STREAM).
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_create_socket(apr_socket_t **new_sock, int family, int type, apr_pool_t *cont)
    */
  -apr_status_t apr_create_socket(apr_socket_t **new_sock, int family,
  -                               int type, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_socket(apr_socket_t **new_sock, 
  +                                            int family, int type,
  +                                            apr_pool_t *cont);
   
   /**
    * Shutdown either reading, writing, or both sides of a tcp socket.
  @@ -232,16 +234,19 @@
    *            APR_SHUTDOWN_WRITE        no longer allow write requests
    *            APR_SHUTDOWN_READWRITE    no longer allow read or write requests 
    * </PRE>
  + * @deffunc apr_status_t apr_shutdown(apr_socket_t *thesocket, apr_shutdown_how_e how)
    * @tip This does not actually close the socket descriptor, it just
    *      controls which calls are still valid on the socket.
    */
  -apr_status_t apr_shutdown(apr_socket_t *thesocket, apr_shutdown_how_e how);
  +APR_DECLARE(apr_status_t) apr_shutdown(apr_socket_t *thesocket,
  +                                       apr_shutdown_how_e how);
   
   /**
    * Close a tcp socket.
    * @param thesocket The socket to close 
  + * @deffunc apr_status_t apr_close_socket(apr_socket_t *thesocket)
    */
  -apr_status_t apr_close_socket(apr_socket_t *thesocket);
  +APR_DECLARE(apr_status_t) apr_close_socket(apr_socket_t *thesocket);
   
   /**
    * Bind the socket to its associated port
  @@ -249,8 +254,9 @@
    * @param sa The socket address to bind to
    * @tip This may be where we will find out if there is any other process
    *      using the selected port.
  + * @deffunc apr_status_t apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa)
    */
  -apr_status_t apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa);
  +APR_DECLARE(apr_status_t) apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa);
   
   /**
    * Listen to a bound socket for connections.
  @@ -258,8 +264,9 @@
    * @param backlog The number of outstanding connections allowed in the sockets
    *                listen queue.  If this value is less than zero, the listen
    *                queue size is set to zero.  
  + * @deffunc apr_status_t apr_listen(apr_socket_t *sock, apr_int32_t backlog)
    */
  -apr_status_t apr_listen(apr_socket_t *sock, apr_int32_t backlog);
  +APR_DECLARE(apr_status_t) apr_listen(apr_socket_t *sock, apr_int32_t backlog);
   
   /**
    * Accept a new connection request
  @@ -268,9 +275,11 @@
    *                 be used for all future communication.
    * @param sock The socket we are listening on.
    * @param connection_pool The pool for the new socket.
  + * @deffunc apr_status_t apr_accept(apr_socket_t **new_sock, apr_socket_t *sock, apr_pool_t *connection_pool)
    */
  -apr_status_t apr_accept(apr_socket_t **new_sock, apr_socket_t *sock, 
  -                        apr_pool_t *connection_pool);
  +APR_DECLARE(apr_status_t) apr_accept(apr_socket_t **new_sock, 
  +                                     apr_socket_t *sock,
  +                                     apr_pool_t *connection_pool);
   
   /**
    * Issue a connection request to a socket either on the same machine 
  @@ -279,8 +288,9 @@
    * @param sa The address of the machine we wish to connect to.  If NULL,
    *           APR assumes that the sockaddr_in in the apr_socket is 
    *           completely filled out.
  + * @deffunc apr_status_t apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa)
    */
  -apr_status_t apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa);
  +APR_DECLARE(apr_status_t) apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa);
   
   /**
    * Create apr_sockaddr_t from hostname, address family, and port.
  @@ -291,23 +301,25 @@
    * @param port The port number.
    * @param flags Special processing flags.
    * @param p The pool for the apr_sockaddr_t and associated storage.
  + * @deffunc apr_status_t apr_getaddrinfo(apr_sockaddr_t **sa, const char *hostname, apr_int32_t family, apr_port_t port, apr_int32_t flags, apr_pool_t *p)
    */
  -apr_status_t apr_getaddrinfo(apr_sockaddr_t **sa, 
  -                             const char *hostname,
  -                             apr_int32_t family,
  -                             apr_port_t port,
  -                             apr_int32_t flags,
  -                             apr_pool_t *p);
  +APR_DECLARE(apr_status_t) apr_getaddrinfo(apr_sockaddr_t **sa,
  +                                          const char *hostname,
  +                                          apr_int32_t family,
  +                                          apr_port_t port,
  +                                          apr_int32_t flags,
  +                                          apr_pool_t *p);
   
   /**
    * Look up the host name from an apr_sockaddr_t.
    * @param hostname The hostname.
    * @param sa The apr_sockaddr_t.
    * @param flags Special processing flags.
  + * @deffunc apr_status_t apr_getnameinfo(char **hostname, apr_sockaddr_t *sa, apr_int32_t flags)
    */
  -apr_status_t apr_getnameinfo(char **hostname,
  -                             apr_sockaddr_t *sa,
  -                             apr_int32_t flags);
  +APR_DECLARE(apr_status_t) apr_getnameinfo(char **hostname,
  +                                          apr_sockaddr_t *sa,
  +                                          apr_int32_t flags);
                                
   /**
    * Parse hostname/IP address with scope id and port.
  @@ -335,12 +347,13 @@
    * @tip If scope id shouldn't be allowed, check for scope_id != NULL in addition 
    *      to checking the return code.  If addr/hostname should be required, check 
    *      for addr == NULL in addition to checking the return code.
  + * @deffunc apr_status_t apr_parse_addr_port(char **addr, char **scope_id, apr_port_t *port, const char *str, apr_pool_t *p)
    */
  -apr_status_t apr_parse_addr_port(char **addr,
  -                                 char **scope_id,
  -                                 apr_port_t *port,
  -                                 const char *str,
  -                                 apr_pool_t *p);
  +APR_DECLARE(apr_status_t) apr_parse_addr_port(char **addr,
  +                                              char **scope_id,
  +                                              apr_port_t *port,
  +                                              const char *str,
  +                                              apr_pool_t *p);
   
   /**
    * Get name of the current machine
  @@ -348,17 +361,19 @@
    * @param len The maximum length of the hostname that can be stored in the
    *            buffer provided. 
    * @param cont The pool to use.
  + * @deffunc apr_status_t apr_gethostname(char *buf, int len, apr_pool_t *cont)
    */
  -apr_status_t apr_gethostname(char *buf, int len, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_gethostname(char *buf, int len, apr_pool_t *cont);
   
   /**
    * Return the data associated with the current socket
    * @param data The user data associated with the socket.
    * @param key The key to associate with the user data.
    * @param sock The currently open socket.
  + * @deffunc apr_status_t apr_get_socketdata(void **data, const char *key, apr_socket_t *sock)
    */
  -apr_status_t apr_get_socketdata(void **data, const char *key,
  -                                apr_socket_t *sock);
  +APR_DECLARE(apr_status_t) apr_get_socketdata(void **data, const char *key,
  +                                             apr_socket_t *sock);
   
   /**
    * Set the data associated with the current socket.
  @@ -366,10 +381,11 @@
    * @param data The user data to associate with the socket.
    * @param key The key to associate with the data.
    * @param cleanup The cleanup to call when the socket is destroyed.
  + * @deffunc apr_status_t apr_set_socketdata(apr_socket_t *sock, void *data, const char *key, apr_status_t (*cleanup)(void*))
    */
  -apr_status_t apr_set_socketdata(apr_socket_t *sock, void *data,
  -                                const char *key,
  -                                apr_status_t (*cleanup) (void*));
  +APR_DECLARE(apr_status_t) apr_set_socketdata(apr_socket_t *sock, void *data,
  +                                             const char *key,
  +                                             apr_status_t (*cleanup)(void*));
   
   /**
    * Send data over a network.
  @@ -377,6 +393,7 @@
    * @param buf The buffer which contains the data to be sent. 
    * @param len On entry, the number of bytes to send; on exit, the number
    *            of bytes sent.
  + * @deffunc apr_status_t apr_send(apr_socket_t *sock, const char *buf, apr_size_t *len)
    * @tip
    * <PRE>
    * This functions acts like a blocking write by default.  To change 
  @@ -387,7 +404,8 @@
    * APR_EINTR is never returned.
    * </PRE>
    */
  -apr_status_t apr_send(apr_socket_t *sock, const char *buf, apr_size_t *len);
  +APR_DECLARE(apr_status_t) apr_send(apr_socket_t *sock, const char *buf, 
  +                                   apr_size_t *len);
   
   /**
    * Send multiple packets of data over a network.
  @@ -395,6 +413,7 @@
    * @param vec The array of iovec structs containing the data to send 
    * @param nvec The number of iovec structs in the array
    * @param len Receives the number of bytes actually written
  + * @deffunc apr_status_t apr_sendv(apr_socket_t *sock, const struct iovec *vec, apr_int32_t nvec, apr_size_t *len)
    * @tip
    * <PRE>
    * This functions acts like a blocking write by default.  To change 
  @@ -406,10 +425,12 @@
    * APR_EINTR is never returned.
    * </PRE>
    */
  -apr_status_t apr_sendv(apr_socket_t *sock, const struct iovec *vec, 
  -                       apr_int32_t nvec, apr_size_t *len);
  +APR_DECLARE(apr_status_t) apr_sendv(apr_socket_t *sock, 
  +                                    const struct iovec *vec,
  +                                    apr_int32_t nvec, apr_size_t *len);
   
   #if APR_HAS_SENDFILE
  +
   /**
    * Send a file from an open file descriptor to a socket, along with 
    * optional headers and trailers
  @@ -421,14 +442,16 @@
    *            (output) - Number of bytes actually sent, 
    *                       including headers, file, and trailers
    * @param flags APR flags that are mapped to OS specific flags
  + * @deffunc apr_status_t apr_sendfile(apr_socket_t *sock, apr_file_t *file, apr_hdtr_t *hdtr, apr_off_t *offset, apr_size_t *len, apr_int32_t flags)
    * @tip This functions acts like a blocking write by default.  To change 
    *      this behavior, use apr_setsocketopt with the APR_SO_TIMEOUT option.
    *      The number of bytes actually sent is stored in argument 5.
    */
  -apr_status_t apr_sendfile(apr_socket_t *sock, apr_file_t *file,
  -                          apr_hdtr_t *hdtr, apr_off_t *offset,
  -                          apr_size_t *len, apr_int32_t flags);
  -#endif
  +APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file,
  +                                       apr_hdtr_t *hdtr, apr_off_t *offset,
  +                                       apr_size_t *len, apr_int32_t flags);
  +
  +#endif /* APR_HAS_SENDFILE */
   
   /**
    * Read data from a network.
  @@ -436,6 +459,7 @@
    * @param buf The buffer to store the data in. 
    * @param len On entry, the number of bytes to receive; on exit, the number
    *            of bytes received.
  + * @deffunc apr_status_t apr_recv(apr_socket_t *sock, char *buf, apr_size_t *len)
    * @tip
    * <PRE>
    * This functions acts like a blocking read by default.  To change 
  @@ -448,7 +472,8 @@
    * APR_EINTR is never returned.
    * </PRE>
    */
  -apr_status_t apr_recv(apr_socket_t *sock, char *buf, apr_size_t *len);
  +APR_DECLARE(apr_status_t) apr_recv(apr_socket_t *sock, 
  +                                   char *buf, apr_size_t *len);
   
   /**
    * Setup socket options for the specified socket
  @@ -469,9 +494,10 @@
    *            APR_SO_RCVBUF     --  Set the ReceiveBufferSize
    * </PRE>
    * @param on Value for the option.
  + * @deffunc apr_status_t apr_setsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t on)
    */
  -apr_status_t apr_setsocketopt(apr_socket_t *sock, apr_int32_t opt,
  -                              apr_int32_t on);
  +APR_DECLARE(apr_status_t) apr_setsocketopt(apr_socket_t *sock,
  +                                           apr_int32_t opt, apr_int32_t on);
   
   /**
    * Query socket options for the specified socket
  @@ -494,57 +520,70 @@
    *                                  (Currently only used on Windows)
    * </PRE>
    * @param on Socket option returned on the call.
  + * @deffunc apr_status_t apr_getsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t* on)
    */
  -apr_status_t apr_getsocketopt(apr_socket_t *sock, apr_int32_t opt,
  -                              apr_int32_t* on);
  +APR_DECLARE(apr_status_t) apr_getsocketopt(apr_socket_t *sock, 
  +                                           apr_int32_t opt, apr_int32_t* on);
   
   /**
    * Return an apr_sockaddr_t from an apr_socket_t
    * @param sa The returned apr_sockaddr_t.
    * @param which Which interface do we want the apr_sockaddr_t for?
    * @param sock The socket to use
  + * @deffunc apr_status_t apr_get_sockaddr(apr_sockaddr_t **sa, apr_interface_e which, apr_socket_t *sock)
    */
  -apr_status_t apr_get_sockaddr(apr_sockaddr_t **sa, apr_interface_e which,
  -                              apr_socket_t *sock);
  +APR_DECLARE(apr_status_t) apr_get_sockaddr(apr_sockaddr_t **sa,
  +                                           apr_interface_e which,
  +                                           apr_socket_t *sock);
    
   /**
    * Set the port in an APR socket address.
    * @param sockaddr The socket address to set.
    * @param port The port to be stored in the socket address.
  + * @deffunc apr_status_t apr_set_port(apr_sockaddr_t *sockaddr, apr_port_t port)
    */
  -apr_status_t apr_set_port(apr_sockaddr_t *sockaddr, apr_port_t port);
  +APR_DECLARE(apr_status_t) apr_set_port(apr_sockaddr_t *sockaddr,
  +                                       apr_port_t port);
   
   /**
    * Return the port in an APR socket address.
    * @param port The port from the socket address.
    * @param sockaddr The socket address to reference.
  + * @deffunc apr_status_t apr_get_port(apr_port_t *port, apr_sockaddr_t *sockaddr)
    */
  -apr_status_t apr_get_port(apr_port_t *port, apr_sockaddr_t *sockaddr);
  +APR_DECLARE(apr_status_t) apr_get_port(apr_port_t *port,
  +                                       apr_sockaddr_t *sockaddr);
   
   /**
    * Set the IP address in an APR socket address.
    * @param sockaddr The socket address to use 
    * @param addr The IP address to attach to the socket.
    *             Use APR_ANYADDR to use any IP addr on the machine.
  + * @deffunc apr_status_t apr_set_ipaddr(apr_sockaddr_t *sockaddr, const char *addr)
    */
  -apr_status_t apr_set_ipaddr(apr_sockaddr_t *sockaddr, const char *addr);
  +APR_DECLARE(apr_status_t) apr_set_ipaddr(apr_sockaddr_t *sockaddr,
  +                                         const char *addr);
   
   /**
    * Return the IP address (in numeric address string format) in
    * an APR socket address.
    * @param addr The IP address.
    * @param sockaddr The socket address to reference.
  + * @deffunc apr_status_t apr_get_ipaddr(char **addr, apr_sockaddr_t *sockaddr)
    */
  -apr_status_t apr_get_ipaddr(char **addr, apr_sockaddr_t *sockaddr);
  +APR_DECLARE(apr_status_t) apr_get_ipaddr(char **addr, 
  +                                         apr_sockaddr_t *sockaddr);
   
   /**
    * Setup the memory required for poll to operate properly
    * @param new_poll The poll structure to be used. 
    * @param num The number of socket descriptors to be polled.
    * @param cont The pool to operate on.
  + * @deffunc apr_status_t apr_setup_poll(apr_pollfd_t **new_poll, apr_int32_t num, apr_pool_t *cont)
    */
  -apr_status_t apr_setup_poll(apr_pollfd_t **new_poll, apr_int32_t num, 
  -                          apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_setup_poll(apr_pollfd_t **new_poll, 
  +                                         apr_int32_t num,
  +                                         apr_pool_t *cont);
   
   /**
    * Poll the sockets in the poll structure
  @@ -561,8 +600,10 @@
    *        This is a blocking call, and it will not return until either a 
    *        socket has been signalled, or the timeout has expired. 
    * </PRE>
  + * @deffunc apr_status_t apr_poll(apr_pollfd_t *aprset, apr_int32_t *nsds, apr_interval_time_t timeout)
    */
  -apr_status_t apr_poll(apr_pollfd_t *aprset, apr_int32_t *nsds, apr_interval_time_t timeout);
  +APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t *nsds, 
  +                                   apr_interval_time_t timeout);
   
   /**
    * Add a socket to the poll structure.
  @@ -574,9 +615,11 @@
    *            APR_POLLPRI      signal if prioirty data is availble to be read
    *            APR_POLLOUT      signal if write will not block
    * </PRE>
  + * @deffunc apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock, apr_int16_t event)
    */
  -apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock,
  -                                 apr_int16_t event);
  +APR_DECLARE(apr_status_t) apr_add_poll_socket(apr_pollfd_t *aprset, 
  +                                              apr_socket_t *sock,
  +                                              apr_int16_t event);
   
   /**
    * Modify a socket in the poll structure with mask.
  @@ -588,15 +631,19 @@
    *            APR_POLLPRI      signal if prioirty data is availble to be read
    *            APR_POLLOUT      signal if write will not block
    * </PRE>
  + * @deffunc apr_status_t apr_mask_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock, apr_int16_t events)
    */
  -apr_status_t apr_mask_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock,
  -                                  apr_int16_t events);
  +APR_DECLARE(apr_status_t) apr_mask_poll_socket(apr_pollfd_t *aprset,
  +                                               apr_socket_t *sock,
  +                                               apr_int16_t events);
   /**
    * Remove a socket from the poll structure.
    * @param aprset The poll structure we will be using. 
    * @param sock The socket to remove from the current poll structure. 
  + * @deffunc apr_status_t apr_remove_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock)
    */
  -apr_status_t apr_remove_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock);
  +APR_DECLARE(apr_status_t) apr_remove_poll_socket(apr_pollfd_t *aprset, 
  +                                                 apr_socket_t *sock);
   
   /**
    * Remove all sockets from the poll structure.
  @@ -607,8 +654,10 @@
    *            APR_POLLPRI      signal if prioirty data is availble to be read
    *            APR_POLLOUT      signal if write will not block
    * </PRE>
  + * @deffunc apr_status_t apr_clear_poll_sockets(apr_pollfd_t *aprset, apr_int16_t events)
    */
  -apr_status_t apr_clear_poll_sockets(apr_pollfd_t *aprset, apr_int16_t events);
  +APR_DECLARE(apr_status_t) apr_clear_poll_sockets(apr_pollfd_t *aprset, 
  +                                                 apr_int16_t events);
   
   /**
    * Get the return events for the specified socket.
  @@ -624,17 +673,21 @@
    * </PRE>
    * @param sock The socket we wish to get information about. 
    * @param aprset The poll structure we will be using. 
  + * @deffunc apr_status_t apr_get_revents(apr_int16_t *event, apr_socket_t *sock, apr_pollfd_t *aprset)
    */
  -apr_status_t apr_get_revents(apr_int16_t *event, apr_socket_t *sock, 
  -                             apr_pollfd_t *aprset);
  +APR_DECLARE(apr_status_t) apr_get_revents(apr_int16_t *event, 
  +                                          apr_socket_t *sock,
  +                                          apr_pollfd_t *aprset);
   
   /**
    * Return the data associated with the current poll.
    * @param pollfd The currently open pollfd.
    * @param key The key to use for retreiving data associated with a poll struct.
    * @param data The user data associated with the pollfd.
  + * @deffunc apr_status_t apr_get_polldata(apr_pollfd_t *pollfd, const char *key, void *data)
    */
  -apr_status_t apr_get_polldata(apr_pollfd_t *pollfd, const char *key, void *data);
  +APR_DECLARE(apr_status_t) apr_get_polldata(apr_pollfd_t *pollfd, 
  +                                           const char *key, void *data);
   
   /**
    * Set the data associated with the current poll.
  @@ -642,30 +695,36 @@
    * @param data The key to associate with the data.
    * @param key The user data to associate with the pollfd.
    * @param cleanup The cleanup function
  + * @deffunc apr_status_t apr_set_polldata(apr_pollfd_t *pollfd, void *data, const char *key, apr_status_t (*cleanup)(void *))
    */
  -apr_status_t apr_set_polldata(apr_pollfd_t *pollfd, void *data,
  -                              const char *key,
  -                              apr_status_t (*cleanup) (void *));
  +APR_DECLARE(apr_status_t) apr_set_polldata(apr_pollfd_t *pollfd, void *data,
  +                                           const char *key,
  +                                           apr_status_t (*cleanup)(void *));
   
   #if APR_FILES_AS_SOCKETS
  +
   /**
    * Convert a File type to a socket so that it can be used in a poll operation.
    * @param newsock the newly created socket which represents a file.
    * @param file the file to mask as a socket.
  + * @deffunc apr_status_t apr_socket_from_file(apr_socket_t **newsock, apr_file_t *file)
    * @warning This is not available on all platforms.  Platforms that have the
    *      ability to poll files for data to be read/written/exceptions will
    *      have the APR_FILES_AS_SOCKETS macro defined as true.
    */
  -apr_status_t apr_socket_from_file(apr_socket_t **newsock, apr_file_t *file);
  -#endif
  +APR_DECLARE(apr_status_t) apr_socket_from_file(apr_socket_t **newsock,
  +                                               apr_file_t *file);
   
  +#endif /* APR_FILES_AS_SOCKETS */
  +
   /**
    * Given an apr_sockaddr_t and a service name, set the port for the service
    * @param sockaddr The apr_sockaddr_t that will have it's port set
    * @param servname The name of the service you wish to use
  + * @deffunc apr_status_t apr_getservbyname(apr_sockaddr_t *sockaddr, const char *servname)
    */
  -
  -apr_status_t apr_getservbyname(apr_sockaddr_t *sockaddr, const char *servname);
  +APR_DECLARE(apr_status_t) apr_getservbyname(apr_sockaddr_t *sockaddr, 
  +                                            const char *servname);
   
   #ifdef __cplusplus
   }
  
  
  
  1.39      +24 -21    apr/include/apr_pools.h
  
  Index: apr_pools.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_pools.h,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- apr_pools.h	2001/01/11 06:25:07	1.38
  +++ apr_pools.h	2001/01/18 20:07:21	1.39
  @@ -73,8 +73,8 @@
    * Instead, we maintain pools, and allocate items (both memory and I/O
    * handlers) from the pools --- currently there are two, one for per
    * transaction info, and one for config info.  When a transaction is over,
  - * we can delete everything in the per-transaction apr_pool_t without fear, and
  - * without thinking too hard about it either.
  + * we can delete everything in the per-transaction apr_pool_t without fear, 
  + * and without thinking too hard about it either.
    *
    * rst
    */
  @@ -139,9 +139,10 @@
       struct apr_pool_t *joined;
   #endif
       /** A function to control how pools behave when they receive ENOMEM
  -     *  @deffunc int apr_abort(int retcode) */
  +     * @deffunc int (*apr_abort)(int retcode) */
       int (*apr_abort)(int retcode);
  -    /** A place to hold user data associated with this pool 
  +    /**
  +     * A place to hold user data associated with this pool 
        *  @defvar apr_hash_t *prog_data */
       struct apr_hash_t *prog_data;
   };
  @@ -240,7 +241,8 @@
    *        be a sub-pool.
    * @deffunc apr_status_t apr_create_pool(apr_pool_t **newcont, apr_pool_t *cont)
    */
  -APR_DECLARE(apr_status_t) apr_create_pool(apr_pool_t **newcont, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_pool(apr_pool_t **newcont,
  +                                          apr_pool_t *cont);
   
   /**
    * Set the data associated with the current pool
  @@ -256,11 +258,11 @@
    *      data by choosing a key that another part of the program is using
    *      It is advised that steps are taken to ensure that a unique
    *      key is used at all times.
  - * @deffunc apr_status_t apr_set_userdata(const void *data, const char *key, apr_status_t (*cleanup) (void *), apr_pool_t *cont)
  + * @deffunc apr_status_t apr_set_userdata(const void *data, const char *key, apr_status_t (*cleanup)(void *), apr_pool_t *cont)
    */
  -APR_DECLARE(apr_status_t) apr_set_userdata(const void *data, const char *key, 
  -                            apr_status_t (*cleanup) (void *), 
  -                            apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_set_userdata(const void *data, const char *key,
  +                                           apr_status_t (*cleanup)(void *),
  +                                           apr_pool_t *cont);
   
   /**
    * Return the data associated with the current pool.
  @@ -269,7 +271,8 @@
    * @param cont The current pool.
    * @deffunc apr_status_t apr_get_userdata(void **data, const char *key, apr_pool_t *cont)
    */
  -APR_DECLARE(apr_status_t) apr_get_userdata(void **data, const char *key, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_get_userdata(void **data, const char *key,
  +                                           apr_pool_t *cont);
   
   /**
    * make a sub pool from the current pool
  @@ -280,7 +283,8 @@
    *      machine is out of memory.  By default, APR will return on error.
    * @deffunc apr_pool_t *apr_make_sub_pool(apr_pool_t *p, int (*apr_abort)(int retcode))
    */
  -APR_DECLARE(apr_pool_t *) apr_make_sub_pool(apr_pool_t *p, int (*apr_abort)(int retcode));
  +APR_DECLARE(apr_pool_t *) apr_make_sub_pool(apr_pool_t *p,
  +                                            int (*apr_abort)(int retcode));
   
   /**
    * clear all memory in the pool
  @@ -339,31 +343,31 @@
    * @param plain_cleanup The function to call when the pool is cleared 
    *                      or destroyed
    * @param child_cleanup The function to call when a child process is created 
  - * @deffunc void apr_register_cleanup(apr_pool_t *p, const void *data, apr_status_t (*plain_cleanup) (void *), apr_status_t (*child_cleanup) (void *))
  + * @deffunc void apr_register_cleanup(apr_pool_t *p, const void *data, apr_status_t (*plain_cleanup)(void *), apr_status_t (*child_cleanup)(void *))
    */
   APR_DECLARE(void) apr_register_cleanup(apr_pool_t *p, const void *data,
  -                                     apr_status_t (*plain_cleanup) (void *),
  -                                     apr_status_t (*child_cleanup) (void *));
  +                                       apr_status_t (*plain_cleanup)(void *),
  +                                       apr_status_t (*child_cleanup)(void *));
   
   /**
    * remove a previously registered cleanup function
    * @param p The pool remove the cleanup from 
    * @param data The data to remove from cleanup
    * @param cleanup The function to remove from cleanup
  - * @deffunc void apr_kill_cleanup(apr_pool_t *p, const void *data, apr_status_t (*cleanup) (void *))
  + * @deffunc void apr_kill_cleanup(apr_pool_t *p, const void *data, apr_status_t (*cleanup)(void *))
    */
   APR_DECLARE(void) apr_kill_cleanup(apr_pool_t *p, const void *data,
  -                                 apr_status_t (*cleanup) (void *));
  +                                   apr_status_t (*cleanup)(void *));
   
   /**
    * Run the specified cleanup function immediately and unregister it
    * @param p The pool remove the cleanup from 
    * @param data The data to remove from cleanup
    * @param cleanup The function to remove from cleanup
  - * @deffunc apr_status_t apr_run_cleanup(apr_pool_t *p, void *data, apr_status_t (*cleanup) (void *))
  + * @deffunc apr_status_t apr_run_cleanup(apr_pool_t *p, void *data, apr_status_t (*cleanup)(void *))
    */
   APR_DECLARE(apr_status_t) apr_run_cleanup(apr_pool_t *p, void *data,
  -                                       apr_status_t (*cleanup) (void *));
  +                                          apr_status_t (*cleanup)(void *));
   
   /* Preparing for exec() --- close files, etc., but *don't* flush I/O
    * buffers, *don't* wait for subprocesses, and *don't* free any memory.
  @@ -382,9 +386,8 @@
    */
   APR_DECLARE_NONSTD(apr_status_t) apr_null_cleanup(void *data);
   
  -
  -/* used to guarantee to the apr_pool_t debugging code that the sub apr_pool_t will not be
  - * destroyed before the parent pool
  +/* used to guarantee to the apr_pool_t debugging code that the sub apr_pool_t
  + * will not be destroyed before the parent pool
    */
   #ifndef APR_POOL_DEBUG
   #ifdef apr_pool_join
  
  
  
  1.42      +67 -32    apr/include/apr_portable.h
  
  Index: apr_portable.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_portable.h,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- apr_portable.h	2000/12/04 16:09:24	1.41
  +++ apr_portable.h	2001/01/18 20:07:21	1.42
  @@ -130,7 +130,7 @@
   typedef int                   apr_os_file_t;
   typedef DIR                   apr_os_dir_t;
   typedef int                   apr_os_sock_t;
  -typedef struct apr_os_lock_t      apr_os_lock_t;
  +typedef struct apr_os_lock_t  apr_os_lock_t;
   typedef thread_id             apr_os_thread_t;
   typedef thread_id             apr_os_proc_t;
   typedef int                   apr_os_threadkey_t;
  @@ -174,7 +174,7 @@
   typedef int                   apr_os_file_t;
   typedef DIR                   apr_os_dir_t;
   typedef int                   apr_os_sock_t;
  -typedef struct apr_os_lock_t      apr_os_lock_t;
  +typedef struct apr_os_lock_t  apr_os_lock_t;
   #if APR_HAS_THREADS && APR_HAVE_PTHREAD_H 
   typedef pthread_t             apr_os_thread_t;
   typedef pthread_key_t         apr_os_threadkey_t;
  @@ -202,91 +202,114 @@
    * convert the file from apr type to os specific type.
    * @param thefile The os specific file we are converting to
    * @param file The apr file to convert.
  + * @deffunc apr_status_t apr_get_os_file(apr_os_file_t *thefile, apr_file_t *file)
    * @tip On Unix, it is only possible to get a file descriptor from 
    *      an apr file type.
    */
  -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);
   
   /**
    * convert the dir from apr type to os specific type.
    * @param thedir The os specific dir we are converting to
    * @param dir The apr dir to convert.
  + * @deffunc apr_status_t apr_get_os_dir(apr_os_dir_t **thedir, apr_dir_t *dir)
    */   
  -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);
   
   /**
    * Convert the socket from an apr type to an OS specific socket
    * @param thesock The socket to convert.
    * @param sock The os specifc equivelant of the apr socket..
  + * @deffunc apr_status_t apr_get_os_sock(apr_os_sock_t *thesock, apr_socket_t *sock)
    */
  -apr_status_t apr_get_os_sock(apr_os_sock_t *thesock, apr_socket_t *sock);
  +APR_DECLARE(apr_status_t) apr_get_os_sock(apr_os_sock_t *thesock,
  +                                          apr_socket_t *sock);
   
   /**
    * Convert the lock from os specific type to apr type
    * @param oslock The os specific lock we are converting to.
    * @param lock The apr lock to convert.
  + * @deffunc apr_status_t apr_get_os_lock(apr_os_lock_t *oslock, apr_lock_t *lock)
    */
  -apr_status_t apr_get_os_lock(apr_os_lock_t *oslock, apr_lock_t *lock);     
  +APR_DECLARE(apr_status_t) apr_get_os_lock(apr_os_lock_t *oslock, 
  +                                          apr_lock_t *lock);
   
   /**
    * Get the exploded time in the platforms native format.
    * @param ostime the native time format
    * @param aprtime the time to convert
  + * @deffunc apr_status_t apr_get_os_exp_time(apr_os_exp_time_t **ostime, apr_exploded_time_t *aprtime)
    */
  -apr_status_t apr_get_os_exp_time(apr_os_exp_time_t **ostime, 
  +APR_DECLARE(apr_status_t) apr_get_os_exp_time(apr_os_exp_time_t **ostime,
                                    apr_exploded_time_t *aprtime);
   
   /**
    * Get the imploded time in the platforms native format.
    * @param ostime the native time format
    * @param aprtimethe time to convert
  + * @deffunc apr_status_t apr_get_os_imp_time(apr_os_imp_time_t **ostime, apr_time_t *aprtime)
    */
  -apr_status_t apr_get_os_imp_time(apr_os_imp_time_t **ostime, apr_time_t *aprtime);
  +APR_DECLARE(apr_status_t) apr_get_os_imp_time(apr_os_imp_time_t **ostime, 
  +                                              apr_time_t *aprtime);
   
   #if APR_HAS_THREADS
  +
   /**
    * convert the thread to os specific type from apr type.
    * @param thethd The apr thread to convert
    * @param thd The os specific thread we are converting to
  + * @deffunc apr_status_t apr_get_os_thread(apr_os_thread_t **thethd, apr_thread_t *thd)
    */
  -apr_status_t apr_get_os_thread(apr_os_thread_t **thethd, apr_thread_t *thd);
  +APR_DECLARE(apr_status_t) apr_get_os_thread(apr_os_thread_t **thethd, 
  +                                            apr_thread_t *thd);
   
   /**
    * convert the thread private memory key to os specific type from an apr type.
    * @param thekey The apr handle we are converting from.
    * @param key The os specific handle we are converting to.
  + * @deffunc apr_status_t apr_get_os_threadkey(apr_os_threadkey_t *thekey, apr_threadkey_t *key)
    */
  -apr_status_t apr_get_os_threadkey(apr_os_threadkey_t *thekey, apr_threadkey_t *key);
  -#endif
  +APR_DECLARE(apr_status_t) apr_get_os_threadkey(apr_os_threadkey_t *thekey,
  +                                               apr_threadkey_t *key);
  +
  +#endif /* APR_HAS_THREADS */
   
   /**
    * convert the file from os specific type to apr type.
    * @param file The apr file we are converting to.
    * @param thefile The os specific file to convert
    * @param cont The pool to use if it is needed.
  + * @deffunc apr_status_t apr_put_os_file(apr_file_t **file, apr_os_file_t *thefile, apr_pool_t *cont)
    * @tip On Unix, it is only possible to put a file descriptor into
    *      an apr file type.
    */
  -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); 
   
   /**
    * convert the dir from os specific type to apr type.
    * @param dir The apr dir we are converting to.
    * @param thedir The os specific dir to convert
    * @param cont The pool to use when creating to apr directory.
  + * @deffunc apr_status_t apr_put_os_dir(apr_dir_t **dir, apr_os_dir_t *thedir, apr_pool_t *cont)
    */
  -apr_status_t apr_put_os_dir(apr_dir_t **dir, apr_os_dir_t *thedir, 
  -                            apr_pool_t *cont); 
  +APR_DECLARE(apr_status_t) apr_put_os_dir(apr_dir_t **dir,
  +                                         apr_os_dir_t *thedir,
  +                                         apr_pool_t *cont); 
   
   /**
    * Convert a socket from the os specific type to the apr type
    * @param sock The pool to use.
    * @param thesock The socket to convert to.
    * @param cont The socket we are converting to an apr type.
  + * @deffunc apr_status_t apr_put_os_sock(apr_socket_t **sock, apr_os_sock_t *thesock, apr_pool_t *cont)
    */
  -apr_status_t apr_put_os_sock(apr_socket_t **sock, apr_os_sock_t *thesock, 
  -                             apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_put_os_sock(apr_socket_t **sock, 
  +                                          apr_os_sock_t *thesock, 
  +                                          apr_pool_t *cont);
   
   /**
    * Create a socket from an existing descriptor and local and remote
  @@ -295,60 +318,72 @@
    * @param os_sock_info The os representation of the socket handle and
    *        other characteristics of the socket
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_make_os_sock(apr_socket_t **apr_sock, apr_os_sock_info_t *os_sock_info, apr_pool_t *cont)
    * @tip If you only know the descriptor/handle or if it isn't really
    *      a true socket, use apr_put_os_sock() instead.
    */
  -apr_status_t apr_make_os_sock(apr_socket_t **apr_sock, 
  -                              apr_os_sock_info_t *os_sock_info, 
  -                              apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_make_os_sock(apr_socket_t **apr_sock,
  +                                           apr_os_sock_info_t *os_sock_info,
  +                                           apr_pool_t *cont);
   
   /**
    * Convert the lock from os specific type to apr type
    * @param lock The apr lock we are converting to.
    * @param thelock The os specific lock to convert.
    * @param cont The pool to use if it is needed.
  + * @deffunc apr_status_t apr_put_os_lock(apr_lock_t **lock, apr_os_lock_t *thelock, apr_pool_t *cont)
    */
  -apr_status_t apr_put_os_lock(apr_lock_t **lock, apr_os_lock_t *thelock, 
  -                             apr_pool_t *cont); 
  +APR_DECLARE(apr_status_t) apr_put_os_lock(apr_lock_t **lock,
  +                                          apr_os_lock_t *thelock,
  +                                          apr_pool_t *cont); 
   
   /**
    * Put the imploded time in the APR format.
    * @param aprtime the APR time format
    * @param ostime the time to convert
    * @param cont the pool to use if necessary
  + * @deffunc apr_status_t apr_put_os_imp_time(apr_time_t *aprtime, apr_os_imp_time_t **ostime, apr_pool_t *cont)
    */
  -apr_status_t apr_put_os_imp_time(apr_time_t *aprtime, apr_os_imp_time_t **ostime, 
  -                                 apr_pool_t *cont); 
  +APR_DECLARE(apr_status_t) apr_put_os_imp_time(apr_time_t *aprtime,
  +                                              apr_os_imp_time_t **ostime,
  +                                              apr_pool_t *cont); 
   
   /**
    * Put the exploded time in the APR format.
    * @param aprtime the APR time format
    * @param ostime the time to convert
    * @param cont the pool to use if necessary
  + * @deffunc apr_status_t apr_put_os_exp_time(apr_exploded_time_t *aprtime, apr_os_exp_time_t **ostime, apr_pool_t *cont)
    */
  -apr_status_t apr_put_os_exp_time(apr_exploded_time_t *aprtime, 
  -                                 apr_os_exp_time_t **ostime, apr_pool_t *cont); 
  +APR_DECLARE(apr_status_t) apr_put_os_exp_time(apr_exploded_time_t *aprtime,
  +                                              apr_os_exp_time_t **ostime,
  +                                              apr_pool_t *cont); 
   
   #if APR_HAS_THREADS
  +
   /**
    * convert the thread from os specific type to apr type.
    * @param thd The apr thread we are converting to.
    * @param thethd The os specific thread to convert
    * @param cont The pool to use if it is needed.
  + * @deffunc apr_status_t apr_put_os_thread(apr_thread_t **thd, apr_os_thread_t *thethd,
    */
  -apr_status_t apr_put_os_thread(apr_thread_t **thd, apr_os_thread_t *thethd, 
  -                               apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_put_os_thread(apr_thread_t **thd,
  +                                            apr_os_thread_t *thethd,
  +                                            apr_pool_t *cont);
   
   /**
    * convert the thread private memory key from os specific type to apr type.
    * @param key The apr handle we are converting to.
    * @param thekey The os specific handle to convert
    * @param cont The pool to use if it is needed.
  + * @deffunc apr_status_t apr_put_os_threadkey(apr_threadkey_t **key, apr_os_threadkey_t *thekey, apr_pool_t *cont)
    */
  -apr_status_t apr_put_os_threadkey(apr_threadkey_t **key,
  -                                  apr_os_threadkey_t *thekey, 
  -                                  apr_pool_t *cont);
  -#endif
  +APR_DECLARE(apr_status_t) apr_put_os_threadkey(apr_threadkey_t **key,
  +                                               apr_os_threadkey_t *thekey,
  +                                               apr_pool_t *cont);
  +
  +#endif /* APR_HAS_THREADS */
   
   #ifdef __cplusplus
   }
  
  
  
  1.15      +21 -9     apr/include/apr_shmem.h
  
  Index: apr_shmem.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_shmem.h,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- apr_shmem.h	2000/12/04 23:42:07	1.14
  +++ apr_shmem.h	2001/01/18 20:07:21	1.15
  @@ -87,35 +87,41 @@
    * @param file The file to use for the shared memory on platforms 
    *        that require it.
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_shm_init(apr_shmem_t **m, apr_size_t reqsize, const char *file, apr_pool_t *cont)
    */
  -apr_status_t apr_shm_init(apr_shmem_t **m, apr_size_t reqsize, const char *file, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_shm_init(apr_shmem_t **m, apr_size_t reqsize,
  +                                       const char *file, apr_pool_t *cont);
   
   /**
    * Destroy the shared memory block.
    * @param m The shared memory block to destroy. 
  + * @deffunc apr_status_t apr_shm_destroy(apr_shmem_t *m)
    */
  -apr_status_t apr_shm_destroy(apr_shmem_t *m);
  +APR_DECLARE(apr_status_t) apr_shm_destroy(apr_shmem_t *m);
   
   /**
    * allocate memory from the block of shared memory.
    * @param c The shared memory block to destroy. 
    * @param reqsize How much memory to allocate
  + * @deffunc void *apr_shm_malloc(apr_shmem_t *c, apr_size_t reqsize)
    */
  -void *apr_shm_malloc(apr_shmem_t *c, apr_size_t reqsize);
  +APR_DECLARE(void *) apr_shm_malloc(apr_shmem_t *c, apr_size_t reqsize);
   
   /**
    * allocate memory from the block of shared memory and initialize it to zero.
    * @param shared The shared memory block to destroy. 
    * @param size How much memory to allocate
  + * @deffunc void *apr_shm_calloc(apr_shmem_t *shared, apr_size_t size)
    */
  -void *apr_shm_calloc(apr_shmem_t *shared, apr_size_t size);
  +APR_DECLARE(void *) apr_shm_calloc(apr_shmem_t *shared, apr_size_t size);
   
   /**
    * free shared memory previously allocated.
    * @param shared The shared memory block to destroy. 
    * @param entity The actual data to free. 
  + * @deffunc apr_status_t apr_shm_free(apr_shmem_t *shared, void *entity)
    */
  -apr_status_t apr_shm_free(apr_shmem_t *shared, void *entity);
  +APR_DECLARE(apr_status_t) apr_shm_free(apr_shmem_t *shared, void *entity);
   
   /**
    * Get the name of the shared memory segment if not using anonymous 
  @@ -128,8 +134,10 @@
    *         based on file access.  APR_USES_KEYBASED_SHM if shared
    *         memory is based on a key value such as shmctl.  If the
    *         shared memory is anonymous, the name is NULL.
  + * @deffunc apr_status_t apr_get_shm_name(apr_shmem_t *c, apr_shm_name_t **name)
    */
  -apr_status_t apr_get_shm_name(apr_shmem_t *c, apr_shm_name_t **name);
  +APR_DECLARE(apr_status_t) apr_get_shm_name(apr_shmem_t *c,
  +                                           apr_shm_name_t **name);
   
   /**
    * Set the name of the shared memory segment if not using anonymous 
  @@ -141,21 +149,25 @@
    * @return APR_USES_ANONYMOUS_SHM if we are using anonymous shared
    *         memory.  APR_SUCCESS if we are using named shared memory
    *         and we were able to assign the name correctly. 
  + * @deffunc apr_status_t apr_set_shm_name(apr_shmem_t *c, apr_shm_name_t *name)
    */
  -apr_status_t apr_set_shm_name(apr_shmem_t *c, apr_shm_name_t *name);
  +APR_DECLARE(apr_status_t) apr_set_shm_name(apr_shmem_t *c,
  +                                           apr_shm_name_t *name);
   
   /**
    * Open the shared memory block in a child process.
    * @param  The shared memory block to open in the child. 
  + * @deffunc apr_status_t apr_open_shmem(apr_shmem_t *c)
    */
  -apr_status_t apr_open_shmem(apr_shmem_t *c);
  +APR_DECLARE(apr_status_t) apr_open_shmem(apr_shmem_t *c);
   
   /**
    * Determine how much memory is available in the specified shared memory block
    * @param c The shared memory block to open in the child. 
    * @param avail The amount of space available in the shared memory block.
  + * @deffunc apr_status_t apr_shm_avail(apr_shmem_t *c, apr_size_t *avail)
    */
  -apr_status_t apr_shm_avail(apr_shmem_t *c, apr_size_t *avail);
  +APR_DECLARE(apr_status_t) apr_shm_avail(apr_shmem_t *c, apr_size_t *avail);
   
   #ifdef __cplusplus
   }
  
  
  
  1.9       +6 -4      apr/include/apr_strings.h
  
  Index: apr_strings.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_strings.h,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- apr_strings.h	2000/12/04 06:28:52	1.8
  +++ apr_strings.h	2001/01/18 20:07:21	1.9
  @@ -101,8 +101,9 @@
    * @return Either <0, 0, or >0.  If the first string is less than the second
    *          this returns <0, if they are equivalent it returns 0, and if the
    *          first string is greater than second string it retuns >0.
  + * @deffunc int apr_strnatcmp(char const *a, char const *b)
    */
  -int apr_strnatcmp(char const *a, char const *b);
  +APR_DECLARE(int) apr_strnatcmp(char const *a, char const *b);
   
   /**
    * Do a natural order comparison of two strings ignoring the case of the 
  @@ -112,8 +113,9 @@
    * @return Either <0, 0, or >0.  If the first string is less than the second
    *         this returns <0, if they are equivalent it returns 0, and if the
    *         first string is greater than second string it retuns >0.
  + * @deffunc int apr_strnatcasecmp(char const *a, char const *b)
    */
  -int apr_strnatcasecmp(char const *a, char const *b);
  +APR_DECLARE(int) apr_strnatcasecmp(char const *a, char const *b);
   
   /**
    * duplicate a string into memory allocated out of a pool
  @@ -203,8 +205,8 @@
    * @deffunc apr_status_t apr_tokenize_to_argv(const char *arg_str, char ***argv_out, apr_pool_t *token_context);
    */
   APR_DECLARE(apr_status_t) apr_tokenize_to_argv(const char *arg_str,
  -                                            char ***argv_out,
  -                                            apr_pool_t *token_context);
  +                                               char ***argv_out,
  +                                               apr_pool_t *token_context);
   
   #ifdef __cplusplus
   }
  
  
  
  1.11      +54 -42    apr/include/apr_tables.h
  
  Index: apr_tables.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_tables.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- apr_tables.h	2000/12/04 14:51:31	1.10
  +++ apr_tables.h	2001/01/18 20:07:22	1.11
  @@ -179,6 +179,7 @@
    * @deffunc apr_array_header_t *apr_table_elts(apr_table_t *t)
    */
   #define apr_table_elts(t) ((apr_array_header_t *)(t))
  +
   /**
    * Get the elements from a binary table
    * @param t The table
  @@ -191,6 +192,7 @@
    * Determine if the table is empty
    * @param t The table to check
    * @return True if empty, Falso otherwise
  + * @deffunc int apr_is_empty_table(apr_table_t *t)
    */
   #define apr_is_empty_table(t) (((t) == NULL) \
                                  || (((apr_array_header_t *)(t))->nelts == 0))
  @@ -198,6 +200,7 @@
    * Determine if the binary table is empty
    * @param t The table to check
    * @return True if empty, Falso otherwise
  + * @deffunc int apr_is_empty_btable(apr_table_t *t)
    */
   #define apr_is_empty_btable(t) apr_is_empty_table(t)
   
  @@ -207,10 +210,10 @@
    * @param nelts the number of elements in the initial array
    * @param elt_size The size of each element in the array.
    * @return The new array
  - * #deffunc apr_array_header_t *apr_make_array(struct apr_pool_t *p, int nelts, int elt_size)
  + * @deffunc apr_array_header_t *apr_make_array(struct apr_pool_t *p, int nelts, int elt_size)
    */
   APR_DECLARE(apr_array_header_t *) apr_make_array(struct apr_pool_t *p,
  -						int nelts, int elt_size);
  +                                                 int nelts, int elt_size);
   
   /**
    * Add a new element to an array
  @@ -230,21 +233,21 @@
    * @deffunc void apr_array_cat(apr_array_header_t *dst, const apr_array_header_t *src)
    */
   APR_DECLARE(void) apr_array_cat(apr_array_header_t *dst,
  -			       const apr_array_header_t *src);
  +			        const apr_array_header_t *src);
   
  -/* copy_array copies the *entire* array.  copy_array_hdr just copies
  - * the header, and arranges for the elements to be copied if (and only
  - * if) the code subsequently does a push or arraycat.
  - */
   /**
    * Copy the entire array
    * @param p The pool to allocate the copy of the array out of
    * @param arr The array to copy
    * @return An exact copy of the array passed in
    * @deffunc apr_array_header_t *apr_copy_array(apr_pool_t *p, const apr_array_header_t *arr)
  - */
  -APR_DECLARE(apr_array_header_t *) apr_copy_array(struct apr_pool_t *p,
  -						const apr_array_header_t *arr);
  + * @tip The alternate apr_copy_array_hdr copies only the header, and arranges 
  + * for the elements to be copied if (and only if) the code subsequently does 
  + * a push or arraycat.
  + */
  +APR_DECLARE(apr_array_header_t *) 
  +                apr_copy_array(struct apr_pool_t *p,
  +                               const apr_array_header_t *arr);
   /**
    * Copy the headers of the array, and arrange for the elements to be copied if
    * and only if the code subsequently does a push or arraycat.
  @@ -252,10 +255,11 @@
    * @param arr The array to copy
    * @return An exact copy of the array passed in
    * @deffunc apr_array_header_t *apr_copy_array_hdr(apr_pool_t *p, const apr_array_header_t *arr)
  + * @tip The alternate apr_copy_array copies the *entire* array.
    */
   APR_DECLARE(apr_array_header_t *)
  -	apr_copy_array_hdr(struct apr_pool_t *p,
  -			   const apr_array_header_t *arr);
  +                apr_copy_array_hdr(struct apr_pool_t *p,
  +                                   const apr_array_header_t *arr);
   
   /**
    * Append one array to the end of another, creating a new array in the process.
  @@ -266,9 +270,9 @@
    * @deffunc apr_array_header_t *apr_append_arrays(apr_pool_t *p, const apr_array_header_t *first, const apr_array_header_t *second)
   */
   APR_DECLARE(apr_array_header_t *)
  -	apr_append_arrays(struct apr_pool_t *p,
  -			  const apr_array_header_t *first,
  -			  const apr_array_header_t *second);
  +                apr_append_arrays(struct apr_pool_t *p,
  +                                  const apr_array_header_t *first,
  +                                  const apr_array_header_t *second);
   
   /**
    * Generates a new string from the apr_pool_t containing the concatenated 
  @@ -280,11 +284,11 @@
    * @param arr The array to generate the string from
    * @param sep The separator to use
    * @return A string containing all of the data in the array.
  - * @deffuncchar *apr_array_pstrcat(apr_pool_t *p, const apr_array_header_t *arr, const char sep)
  + * @deffunc char *apr_array_pstrcat(apr_pool_t *p, const apr_array_header_t *arr, const char sep)
    */
   APR_DECLARE(char *) apr_array_pstrcat(struct apr_pool_t *p,
  -				     const apr_array_header_t *arr,
  -				     const char sep);
  +				      const apr_array_header_t *arr,
  +				      const char sep);
   
   /**
    * Make a new table
  @@ -310,19 +314,20 @@
    * @param p The pool to allocate the new table out of
    * @param t The table to copy
    * @return A copy of the table passed in
  - * @deffunc apr_table_t *) apr_copy_table(apr_pool_t *p, const apr_table_t *t)
  + * @deffunc apr_table_t *apr_copy_table(apr_pool_t *p, const apr_table_t *t)
    */
   APR_DECLARE(apr_table_t *) apr_copy_table(struct apr_pool_t *p,
  -					 const apr_table_t *t);
  +                                          const apr_table_t *t);
  +
   /**
    * Create a new binary table and copy another table into it
    * @param p The pool to allocate the new table out of
    * @param t The table to copy
    * @return A copy of the table passed in
  - * @deffunc apr_table_t *) apr_copy_btable(apr_pool_t *p, const apr_btable_t *t)
  + * @deffunc apr_table_t *apr_copy_btable(apr_pool_t *p, const apr_btable_t *t)
    */
   APR_DECLARE(apr_btable_t *) apr_copy_btable(struct apr_pool_t *p,
  -					   const apr_btable_t *t);
  +                                            const apr_btable_t *t);
   
   /**
    * Delete all of the elements from a table
  @@ -330,6 +335,7 @@
    * @deffunc void apr_clear_table(apr_table_t *t)
    */
   APR_DECLARE(void) apr_clear_table(apr_table_t *t);
  +
   /**
    * Delete all of the elements from a binary table
    * @param t The table to clear
  @@ -346,6 +352,7 @@
    * @deffunc const char *apr_table_get(const apr_table_t *t, const char *key)
    */
   APR_DECLARE(const char *) apr_table_get(const apr_table_t *t, const char *key);
  +
   /**
    * Get the value associated with a given key from a binary table.  After this
    * call, the data is still in the table.
  @@ -355,7 +362,7 @@
    * @deffunc const apr_item_t *apr_btable_get(const apr_btable_t *t, const char *key)
    */
   APR_DECLARE(const apr_item_t *) apr_btable_get(const apr_btable_t *t,
  -					      const char *key);
  +                                               const char *key);
   
   /**
    * Add a key/value pair to a table, if another element already exists with the
  @@ -368,7 +375,8 @@
    * @deffunc void apr_table_set(apr_table_t *t, const char *key, const char *val)
    */
   APR_DECLARE(void) apr_table_set(apr_table_t *t, const char *key,
  -			       const char *val);
  +                                const char *val);
  +
   /**
    * Add a key/value pair to a binary table if another element already exists 
    * with the same key, this will over-write the old data.
  @@ -381,7 +389,7 @@
    * @deffunc void apr_btable_set(apr_btable_t *t, const char *key, size_t size, const void *val)
    */
   APR_DECLARE(void) apr_btable_set(apr_btable_t *t, const char *key,
  -				size_t size, const void *val);
  +                                 size_t size, const void *val);
   
   /**
    * Add a key/value pair to a table, if another element already exists with the
  @@ -395,7 +403,7 @@
    * @deffunc void apr_table_setn(apr_table_t *t, const char *key, const char *val)
    */
   APR_DECLARE(void) apr_table_setn(apr_table_t *t, const char *key,
  -				const char *val);
  +                                 const char *val);
   /**
    * Add a key/value pair to a binary table if another element already exists 
    * with the same key, this will over-write the old data.
  @@ -418,6 +426,7 @@
    * @deffunc void apr_table_unset(apr_table_t *t, const char *key)
    */
   APR_DECLARE(void) apr_table_unset(apr_table_t *t, const char *key);
  +
   /**
    * Remove data from a binary table
    * @param t The table to remove data from
  @@ -436,7 +445,8 @@
    * @deffunc void apr_table_merge(apr_table_t *t, const char *key, const char *val)
    */
   APR_DECLARE(void) apr_table_merge(apr_table_t *t, const char *key,
  -				 const char *val);
  +                                  const char *val);
  +
   /**
    * Add data to a table by merging the value with data that has already been 
    * stored
  @@ -447,7 +457,7 @@
    * @deffunc void apr_table_mergen(apr_table_t *t, const char *key, const char *val)
    */
   APR_DECLARE(void) apr_table_mergen(apr_table_t *t, const char *key,
  -				  const char *val);
  +                                   const char *val);
   
   /**
    * Add data to a table, regardless of whether there is another element with the
  @@ -460,7 +470,8 @@
    * @deffunc void apr_table_add(apr_table_t *t, const char *key, const char *val)
    */
   APR_DECLARE(void) apr_table_add(apr_table_t *t, const char *key,
  -			       const char *val);
  +                                const char *val);
  +
   /**
    * Add data to a binary table, regardless of whether there is another element 
    * with the same key.
  @@ -473,7 +484,7 @@
    * @deffunc void apr_btable_add(apr_btable_t *t, const char *key, size_t size, const char *val)
    */
   APR_DECLARE(void) apr_btable_add(apr_btable_t *t, const char *key,
  -				size_t size, const void *val);
  +                                 size_t size, const void *val);
   
   /**
    * Add data to a table, regardless of whether there is another element with the
  @@ -487,7 +498,8 @@
    * @deffunc void apr_table_addn(apr_table_t *t, const char *key, const char *val)
    */
   APR_DECLARE(void) apr_table_addn(apr_table_t *t, const char *key,
  -				const char *val);
  +                                 const char *val);
  +
   /**
    * Add data to a binary table, regardless of whether there is another element 
    * with the same key.
  @@ -501,7 +513,7 @@
    * @deffunc void apr_btable_addn(apr_btable_t *t, const char *key, size_t size, const char *val)
    */
   APR_DECLARE(void) apr_btable_addn(apr_btable_t *t, const char *key,
  -				 size_t size, const void *val);
  +                                  size_t size, const void *val);
   
   /**
    * Merge two tables into one new table
  @@ -512,8 +524,8 @@
    * @deffunc apr_table_t *apr_overlay_tables(apr_pool_t *p, const apr_table_t *overlay, const apr_table_t *base);
    */
   APR_DECLARE(apr_table_t *) apr_overlay_tables(struct apr_pool_t *p,
  -					     const apr_table_t *overlay,
  -					     const apr_table_t *base);
  +                                              const apr_table_t *overlay,
  +                                              const apr_table_t *base);
   /**
    * Merge two binary tables into one new table
    * @param p The pool to use for the new table
  @@ -523,8 +535,8 @@
    * @deffunc apr_btable_t *apr_overlay_tables(apr_pool_t *p, const apr_btable_t *overlay, const apr_btable_t *base);
    */
   APR_DECLARE(apr_btable_t *) apr_overlay_btables(struct apr_pool_t *p,
  -					       const apr_btable_t *overlay,
  -					       const apr_btable_t *base);
  +                                                const apr_btable_t *overlay,
  +                                                const apr_btable_t *base);
   
   /** 
    * Iterate over a table running the provided function once for every
  @@ -540,9 +552,9 @@
    *            are run.
    * @deffunc void apr_table_do(int (*comp) (void *, const char *, const char *), void *rec, const apr_table_t *t, ...)
    */
  -APR_DECLARE(void)
  -	apr_table_do(int (*comp) (void *, const char *, const char *),
  -		     void *rec, const apr_table_t *t, ...);
  +APR_DECLARE_NONSTD(void)
  +                apr_table_do(int (*comp) (void *, const char *, const char *),
  +                             void *rec, const apr_table_t *t, ...);
   
   /** 
    * Iterate over a table running the provided function once for every
  @@ -559,8 +571,8 @@
    * @deffunc void apr_table_vdo(int (*comp) (void *, const char *, const char *), void *rec, const apr_table_t *t, va_list vp)
    */
   APR_DECLARE(void)
  -        apr_table_vdo(int (*comp) (void *, const char *, const char *),
  -                     void *rec, const apr_table_t *t, va_list);                  
  +                apr_table_vdo(int (*comp) (void *, const char *, const char *),
  +                              void *rec, const apr_table_t *t, va_list);                  
   
   /* Conceptually, apr_overlap_tables does this:
    *
  @@ -599,7 +611,7 @@
    * @deffunc void apr_overlap_tables(apr_table_t *a, const apr_table_t *b, unsigned flags)
    */
   APR_DECLARE(void) apr_overlap_tables(apr_table_t *a, const apr_table_t *b,
  -				    unsigned flags);
  +                                     unsigned flags);
   
   #ifdef __cplusplus
   }
  
  
  
  1.51      +115 -55   apr/include/apr_thread_proc.h
  
  Index: apr_thread_proc.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_thread_proc.h,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- apr_thread_proc.h	2000/12/04 06:28:53	1.50
  +++ apr_thread_proc.h	2001/01/18 20:07:22	1.51
  @@ -157,21 +157,26 @@
    * Create and initialize a new threadattr variable
    * @param new_attr The newly created threadattr.
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_create_threadattr(apr_threadattr_t **new_attr, apr_pool_t *cont)
    */
  -apr_status_t apr_create_threadattr(apr_threadattr_t **new_attr, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_threadattr(apr_threadattr_t **new_attr, 
  +                                                apr_pool_t *cont);
   
   /**
    * Set if newly created threads should be created in detach mode.
    * @param attr The threadattr to affect 
    * @param on Thread detach state on or off
  + * @deffunc apr_status_t apr_setthreadattr_detach(apr_threadattr_t *attr, apr_int32_t on)
    */
  -apr_status_t apr_setthreadattr_detach(apr_threadattr_t *attr, apr_int32_t on);
  +APR_DECLARE(apr_status_t) apr_setthreadattr_detach(apr_threadattr_t *attr, 
  +                                                   apr_int32_t on);
   
   /**
    * Get the detach mode for this threadattr.
    * @param attr The threadattr to reference 
  + * @deffunc apr_status_t apr_getthreadattr_detach(apr_threadattr_t *attr)
    */
  -apr_status_t apr_getthreadattr_detach(apr_threadattr_t *attr);
  +APR_DECLARE(apr_status_t) apr_getthreadattr_detach(apr_threadattr_t *attr);
   
   /**
    * Create a new thread of execution
  @@ -180,38 +185,47 @@
    * @param func The function to start the new thread in
    * @param data Any data to be passed to the starting function
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_create_thread(apr_thread_t **new_thread, apr_threadattr_t *attr, apr_thread_start_t func, void *data, apr_pool_t *cont)
    */
  -apr_status_t apr_create_thread(apr_thread_t **new_thread, apr_threadattr_t *attr, 
  -                             apr_thread_start_t func, void *data, 
  -                             apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_thread(apr_thread_t **new_thread, 
  +                                            apr_threadattr_t *attr, 
  +                                            apr_thread_start_t func, 
  +                                            void *data, apr_pool_t *cont);
   
   /**
    * stop the current thread
    * @param thd The thread to stop
    * @param retval The return value to pass back to any thread that cares
  + * @deffunc apr_status_t apr_thread_exit(apr_thread_t *thd, apr_status_t *retval)
    */
  -apr_status_t apr_thread_exit(apr_thread_t *thd, apr_status_t *retval);
  +APR_DECLARE(apr_status_t) apr_thread_exit(apr_thread_t *thd, 
  +                                          apr_status_t *retval);
   
   /**
    * block until the desired thread stops executing.
    * @param retval The return value from the dead thread.
    * @param thd The thread to join
  + * @deffunc apr_status_t apr_thread_join(apr_status_t *retval, apr_thread_t *thd);
    */
  -apr_status_t apr_thread_join(apr_status_t *retval, apr_thread_t *thd); 
  +APR_DECLARE(apr_status_t) apr_thread_join(apr_status_t *retval, 
  +                                          apr_thread_t *thd); 
   
   /**
    * detach a thread
    * @param thd The thread to detach 
  + * @deffunc apr_status_t apr_thread_detach(apr_thread_t *thd)
    */
  -apr_status_t apr_thread_detach(apr_thread_t *thd);
  +APR_DECLARE(apr_status_t) apr_thread_detach(apr_thread_t *thd);
   
   /**
    * Return the pool associated with the current thread.
    * @param data The user data associated with the thread.
    * @param key The key to associate with the data
    * @param thread The currently open thread.
  + * @deffunc apr_status_t apr_get_threaddata(void **data, const char *key, apr_thread_t *thread)
    */
  -apr_status_t apr_get_threaddata(void **data, const char *key, apr_thread_t *thread);
  +APR_DECLARE(apr_status_t) apr_get_threaddata(void **data, const char *key,
  +                                             apr_thread_t *thread);
   
   /**
    * Return the pool associated with the current thread.
  @@ -219,47 +233,57 @@
    * @param key The key to use for associating the data with the tread
    * @param cleanup The cleanup routine to use when the thread is destroyed.
    * @param thread The currently open thread.
  + * @deffunc apr_status_t apr_set_threaddata(void *data, const char *key, apr_status_t (*cleanup) (void *), apr_thread_t *thread)
    */
  -apr_status_t apr_set_threaddata(void *data, const char *key,
  -                              apr_status_t (*cleanup) (void *), 
  -                              apr_thread_t *thread);
  +APR_DECLARE(apr_status_t) apr_set_threaddata(void *data, const char *key,
  +                                             apr_status_t (*cleanup) (void *),
  +                                             apr_thread_t *thread);
   
   /**
    * Create and initialize a new thread private address space
    * @param key The thread private handle.
    * @param dest The destructor to use when freeing the private memory.
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_create_thread_private(apr_threadkey_t **key, void (*dest)(void *), apr_pool_t *cont)
    */
  -apr_status_t apr_create_thread_private(apr_threadkey_t **key, void (*dest)(void *),
  -                                     apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_thread_private(apr_threadkey_t **key, 
  +                                                    void (*dest)(void *),
  +                                                    apr_pool_t *cont);
   
   /**
    * Get a pointer to the thread private memory
    * @param new_mem The data stored in private memory 
    * @param key The handle for the desired thread private memory 
  + * @deffunc apr_status_t apr_get_thread_private(void **new_mem, apr_threadkey_t *key)
    */
  -apr_status_t apr_get_thread_private(void **new_mem, apr_threadkey_t *key);
  +APR_DECLARE(apr_status_t) apr_get_thread_private(void **new_mem, 
  +                                                 apr_threadkey_t *key);
   
   /**
    * Set the data to be stored in thread private memory
    * @param priv The data to be stored in private memory 
    * @param key The handle for the desired thread private memory 
  + * @deffunc apr_status_t apr_set_thread_private(void *priv, apr_threadkey_t *key)
    */
  -apr_status_t apr_set_thread_private(void *priv, apr_threadkey_t *key);
  +APR_DECLARE(apr_status_t) apr_set_thread_private(void *priv, 
  +                                                 apr_threadkey_t *key);
   
   /**
    * Free the thread private memory
    * @param key The handle for the desired thread private memory 
  + * @deffunc apr_status_t apr_delete_thread_private(apr_threadkey_t *key)
    */
  -apr_status_t apr_delete_thread_private(apr_threadkey_t *key);
  +APR_DECLARE(apr_status_t) apr_delete_thread_private(apr_threadkey_t *key);
   
   /**
    * Return the pool associated with the current threadkey.
    * @param data The user data associated with the threadkey.
    * @param key The key associated with the data
    * @param threadkey The currently open threadkey.
  + * @deffunc apr_status_t apr_get_threadkeydata(void **data, const char *key, apr_threadkey_t *threadkey)
    */
  -apr_status_t apr_get_threadkeydata(void **data, const char *key, apr_threadkey_t *threadkey);
  +APR_DECLARE(apr_status_t) apr_get_threadkeydata(void **data, const char *key,
  +                                                apr_threadkey_t *threadkey);
   
   /**
    * Return the pool associated with the current threadkey.
  @@ -267,10 +291,11 @@
    * @param key The key to associate with the data.
    * @param cleanup The cleanup routine to use when the file is destroyed.
    * @param threadkey The currently open threadkey.
  + * @deffunc apr_status_t apr_set_threadkeydata(void *data, const char *key, apr_status_t (*cleanup) (void *), apr_threadkey_t *threadkey)
    */
  -apr_status_t apr_set_threadkeydata(void *data, const char *key,
  -                                 apr_status_t (*cleanup) (void *), 
  -                                 apr_threadkey_t *threadkey);
  +APR_DECLARE(apr_status_t) apr_set_threadkeydata(void *data, const char *key,
  +                                                apr_status_t (*cleanup) (void *),
  +                                                apr_threadkey_t *threadkey);
   
   /* Process Function definitions */
   
  @@ -282,8 +307,10 @@
    * Create and initialize a new procattr variable
    * @param new_attr The newly created procattr. 
    * @param cont The pool to use
  + * @deffunc apr_status_t apr_createprocattr_init(apr_procattr_t **new_attr, apr_pool_t *cont)
    */
  -apr_status_t apr_createprocattr_init(apr_procattr_t **new_attr, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_createprocattr_init(apr_procattr_t **new_attr,
  +                                                  apr_pool_t *cont);
   
   /**
    * Determine if any of stdin, stdout, or stderr should be linked to pipes 
  @@ -292,15 +319,18 @@
    * @param in Should stdin be a pipe back to the parent?
    * @param out Should stdout be a pipe back to the parent?
    * @param err Should stderr be a pipe back to the parent?
  + * @deffunc apr_status_t apr_setprocattr_io(apr_procattr_t *attr, apr_int32_t in, apr_int32_t out, apr_int32_t err)
    */
  -apr_status_t apr_setprocattr_io(apr_procattr_t *attr, apr_int32_t in, 
  -                              apr_int32_t out, apr_int32_t err);
  +APR_DECLARE(apr_status_t) apr_setprocattr_io(apr_procattr_t *attr, 
  +                                             apr_int32_t in, apr_int32_t out,
  +                                             apr_int32_t err);
   
   /**
    * Set the child_in and/or parent_in values to existing apr_file_t values.
    * @param attr The procattr we care about. 
    * @param child_in apr_file_t value to use as child_in. Must be a valid file.
    * @param parent_in apr_file_t value to use as parent_in. Must be a valid file.
  + * @deffunc apr_status_t apr_setprocattr_childin(struct apr_procattr_t *attr, apr_file_t *child_in, apr_file_t *parent_in)
    * @tip  This is NOT a required initializer function. This is
    *       useful if you have already opened a pipe (or multiple files)
    *       that you wish to use, perhaps persistently across multiple
  @@ -308,36 +338,39 @@
    *       extra function calls by not creating your own pipe since this
    *       creates one in the process space for you.
    */
  -apr_status_t apr_setprocattr_childin(struct apr_procattr_t *attr, apr_file_t *child_in,
  -                                   apr_file_t *parent_in);
  +APR_DECLARE(apr_status_t) apr_setprocattr_childin(struct apr_procattr_t *attr,
  +                                                  apr_file_t *child_in,
  +                                                  apr_file_t *parent_in);
   
   /**
    * Set the child_out and parent_out values to existing apr_file_t values.
    * @param attr The procattr we care about. 
    * @param child_out apr_file_t value to use as child_out. Must be a valid file.
    * @param parent_out apr_file_t value to use as parent_out. Must be a valid file.
  + * @deffunc apr_status_t apr_setprocattr_childout(struct apr_procattr_t *attr, apr_file_t *child_out, apr_file_t *parent_out)
    * @tip This is NOT a required initializer function. This is
    *      useful if you have already opened a pipe (or multiple files)
    *      that you wish to use, perhaps persistently across multiple
    *      process invocations - such as a log file. 
    */
  -apr_status_t apr_setprocattr_childout(struct apr_procattr_t *attr, 
  -                                    apr_file_t *child_out, 
  -                                    apr_file_t *parent_out);
  +APR_DECLARE(apr_status_t) apr_setprocattr_childout(struct apr_procattr_t *attr,
  +                                                   apr_file_t *child_out,
  +                                                   apr_file_t *parent_out);
   
   /**
    * Set the child_err and parent_err values to existing apr_file_t values.
    * @param attr The procattr we care about. 
    * @param child_err apr_file_t value to use as child_err. Must be a valid file.
    * @param parent_err apr_file_t value to use as parent_err. Must be a valid file.
  + * @deffunc apr_status_t apr_setprocattr_childerr(struct apr_procattr_t *attr, apr_file_t *child_err, apr_file_t *parent_err)
    * @tip This is NOT a required initializer function. This is
    *      useful if you have already opened a pipe (or multiple files)
    *      that you wish to use, perhaps persistently across multiple
    *      process invocations - such as a log file. 
    */
  -apr_status_t apr_setprocattr_childerr(struct apr_procattr_t *attr, 
  -                                    apr_file_t *child_err,
  -                                    apr_file_t *parent_err);
  +APR_DECLARE(apr_status_t) apr_setprocattr_childerr(struct apr_procattr_t *attr,
  +                                                   apr_file_t *child_err,
  +                                                   apr_file_t *parent_err);
   
   /**
    * Set which directory the child process should start executing in.
  @@ -345,8 +378,10 @@
    * @param dir Which dir to start in.  By default, this is the same dir as
    *            the parent currently resides in, when the createprocess call
    *            is made. 
  + * @deffunc apr_status_t apr_setprocattr_dir(apr_procattr_t *attr, const char *dir)
    */
  -apr_status_t apr_setprocattr_dir(apr_procattr_t *attr, const char *dir);
  +APR_DECLARE(apr_status_t) apr_setprocattr_dir(apr_procattr_t *attr, 
  +                                              const char *dir);
   
   /**
    * Set what type of command the child process will call.
  @@ -356,15 +391,19 @@
    *            APR_SHELLCMD --  Shell script
    *            APR_PROGRAM  --  Executable program   (default) 
    * </PRE>
  + * @deffunc apr_status_t apr_setprocattr_cmdtype(apr_procattr_t *attr, apr_cmdtype_e cmd)
    */
  -apr_status_t apr_setprocattr_cmdtype(apr_procattr_t *attr, apr_cmdtype_e cmd);
  +APR_DECLARE(apr_status_t) apr_setprocattr_cmdtype(apr_procattr_t *attr,
  +                                                  apr_cmdtype_e cmd);
   
   /**
    * Determine if the chlid should start in detached state.
    * @param attr The procattr we care about. 
    * @param detach Should the child start in detached state?  Default is no. 
  + * @deffunc apr_status_t apr_setprocattr_detach(apr_procattr_t *attr, apr_int32_t detach)
    */
  -apr_status_t apr_setprocattr_detach(apr_procattr_t *attr, apr_int32_t detach);
  +APR_DECLARE(apr_status_t) apr_setprocattr_detach(apr_procattr_t *attr, 
  +                                                 apr_int32_t detach);
   
   #if APR_HAVE_STRUCT_RLIMIT
   /**
  @@ -377,9 +416,11 @@
    *                 APR_LIMIT_NPROC
    * </PRE>
    * @param limit Value to set the limit to.
  + * @deffunc apr_status_t apr_setprocattr_limit(apr_procattr_t *attr, apr_int32_t what, apr_int32_t what, struct rlimit *limit)
    */
  -apr_status_t apr_setprocattr_limit(apr_procattr_t *attr, apr_int32_t what, 
  -                              struct rlimit *limit);
  +APR_DECLARE(apr_status_t) apr_setprocattr_limit(apr_procattr_t *attr, 
  +                                                apr_int32_t what,
  +                                                struct rlimit *limit);
   #endif
   
   #if APR_HAS_FORK
  @@ -388,8 +429,9 @@
    * a standard unix fork.
    * @param proc The resulting process handle. 
    * @param cont The pool to use. 
  + * @deffunc apr_status_t apr_fork(apr_proc_t *proc, apr_pool_t *cont)
    */
  -apr_status_t apr_fork(apr_proc_t *proc, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_fork(apr_proc_t *proc, apr_pool_t *cont);
   #endif
   
   /**
  @@ -403,11 +445,14 @@
    * @param attr the procattr we should use to determine how to create the new
    *         process
    * @param cont The pool to use. 
  + * @deffunc apr_status_t apr_create_process(apr_proc_t *new_proc, const char *progname, const char * const *args, const char * const *env, apr_procattr_t *attr, apr_pool_t *cont)
    */
  -apr_status_t apr_create_process(apr_proc_t *new_proc, const char *progname, 
  -                                const char * const *args,
  -                                const char * const *env, 
  -                                apr_procattr_t *attr, apr_pool_t *cont);
  +APR_DECLARE(apr_status_t) apr_create_process(apr_proc_t *new_proc,
  +                                             const char *progname,
  +                                             const char * const *args,
  +                                             const char * const *env, 
  +                                             apr_procattr_t *attr, 
  +                                             apr_pool_t *cont);
   
   /**
    * Wait for a child process to die
  @@ -418,15 +463,16 @@
    *            APR_NOWAIT -- return immediately regardless of if the 
    *                          child is dead or not.
    * </PRE>
  + * @deffunc apr_status_t apr_wait_proc(apr_proc_t *proc, apr_wait_how_e waithow)
    * @tip The childs status is in the return code to this process.  It is one of:
    * <PRE>
    *            APR_CHILD_DONE     -- child is no longer running.
    *            APR_CHILD_NOTDONE  -- child is still running.
    * </PRE>
    */
  -apr_status_t apr_wait_proc(apr_proc_t *proc, apr_wait_how_e waithow);
  +APR_DECLARE(apr_status_t) apr_wait_proc(apr_proc_t *proc, 
  +                                        apr_wait_how_e waithow);
   
  -
   /**
    * Wait for any current child process to die and return information 
    * about that child.
  @@ -442,9 +488,12 @@
    *                          child is dead or not.
    * </PRE>
    * @param p Pool to allocate child information out of.
  + * @deffunc apr_status_t apr_wait_all_procs(apr_proc_t *proc, apr_wait_t *status, apr_wait_how_e waithow, apr_pool_t *p)
    */
  -apr_status_t apr_wait_all_procs(apr_proc_t *proc, apr_wait_t *status, 
  -                                apr_wait_how_e waithow, apr_pool_t *p);
  +APR_DECLARE(apr_status_t) apr_wait_all_procs(apr_proc_t *proc,
  +                                             apr_wait_t *status,
  +                                             apr_wait_how_e waithow,
  +                                             apr_pool_t *p);
   
   /**
    * Detach the process from the controlling terminal.
  @@ -452,6 +501,7 @@
   apr_status_t apr_detach(void);
   
   #if APR_HAS_OTHER_CHILD
  +
   /**
    * Register an other_child -- a child which must be kept track of so 
    * that the program knows when it has dies or disappeared.
  @@ -463,49 +513,59 @@
    *                 then the maintenance is invoked with reason 
    *                 OC_REASON_UNWRITABLE.
    * @param p The pool to use for allocating memory.
  + * @deffunc void apr_register_other_child(apr_proc_t *pid, void (*maintenance) (int reason, void *, int status), void *data, apr_file_t *write_fd, apr_pool_t *p)
    */
  -void apr_register_other_child(apr_proc_t *pid, 
  -                             void (*maintenance) (int reason, void *, int status),
  -                             void *data, apr_file_t *write_fd, apr_pool_t *p);
  +APR_DECLARE(void) apr_register_other_child(apr_proc_t *pid, 
  +                                           void (*maintenance) (int reason, 
  +                                                                void *, 
  +                                                                int status),
  +                                           void *data, apr_file_t *write_fd,
  +                                           apr_pool_t *p);
   
   /**
    * Stop watching the specified process.
    * @param data The data to pass to the maintenance function.  This is
    *             used to find the process to unregister.
  + * @deffunc void apr_unregister_other_child(void *data)
    * @tip Since this can be called by a maintenance function while we're
    *      scanning the other_children list, all scanners should protect 
    *      themself by loading ocr->next before calling any maintenance 
    *      function.
    */
  -void apr_unregister_other_child(void *data);
  +APR_DECLARE(void) apr_unregister_other_child(void *data);
   
   /**
    * Check on the specified process.  If it is gone, call the maintenance 
    * function.
    * @param pid The process to check.
    * @param status The status to pass to the maintenance function.
  + * @deffunc apr_status_t apr_reap_other_child(apr_proc_t *pid, int status);
    */
  -apr_status_t apr_reap_other_child(apr_proc_t *pid, int status); 
  +APR_DECLARE(apr_status_t) apr_reap_other_child(apr_proc_t *pid, int status);
   
   /**
    * Loop through all registered other_children and call the appropriate 
    * maintenance function when necessary.
  + * @deffunc void apr_check_other_child();
    */
  -void apr_check_other_child(void); 
  +APR_DECLARE(void) apr_check_other_child(void); 
   
   /**
    * Ensure all the registered write_fds are still writable, otherwise 
    * invoke the maintenance functions as appropriate.
  + * @deffunc void apr_probe_writable_fds()
    */
  -void apr_probe_writable_fds(void);
  +APR_DECLARE(void) apr_probe_writable_fds(void);
  +
   #endif /* APR_HAS_OTHER_CHILD */
   
   /** 
    * Terminate a process.
    * @param proc The process to terminate.
    * @param sig How to kill the process.
  + * @deffunc apr_status_t apr_kill(apr_proc_t *proc, int sig)
    */
  -apr_status_t apr_kill(apr_proc_t *proc, int sig);
  +APR_DECLARE(apr_status_t) apr_kill(apr_proc_t *proc, int sig);
   
   /**
    * Register a process to be killed when a pool dies.
  
  
  
  1.30      +24 -9     apr/include/apr_time.h
  
  Index: apr_time.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_time.h,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- apr_time.h	2000/11/26 03:00:04	1.29
  +++ apr_time.h	2001/01/18 20:07:22	1.30
  @@ -90,8 +90,9 @@
   
   /**
    * return the current time
  + * @deffunc apr_time_t apr_now(void)
    */
  -apr_time_t apr_now(void);
  +APR_DECLARE(apr_time_t) apr_now(void);
   
   typedef struct apr_exploded_time_t apr_exploded_time_t;
   /**
  @@ -128,37 +129,46 @@
    * convert an ansi time_t to an apr_time_t
    * @param result the resulting apr_time_t
    * @param input the time_t to convert
  + * @deffunc apr_status_t apr_ansi_time_to_apr_time(apr_time_t *result, time_t input)
    */
  -apr_status_t apr_ansi_time_to_apr_time(apr_time_t *result, time_t input);
  +APR_DECLARE(apr_status_t) apr_ansi_time_to_apr_time(apr_time_t *result, 
  +                                                    time_t input);
   
   /**
    * convert a time to its human readable components in GMT timezone
    * @param result the exploded time
    * @param input the time to explode
  + * @deffunc apr_status_t apr_explode_gmt(apr_exploded_time_t *result, apr_time_t input)
    */
  -apr_status_t apr_explode_gmt(apr_exploded_time_t *result, apr_time_t input);
  +APR_DECLARE(apr_status_t) apr_explode_gmt(apr_exploded_time_t *result, 
  +                                          apr_time_t input);
   
   /**
    * convert a time to its human readable components in local timezone
    * @param result the exploded time
    * @param input the time to explode
  + * @deffunc apr_status_t apr_explode_localtime(apr_exploded_time_t *result, apr_time_t input)
    */
  -apr_status_t apr_explode_localtime(apr_exploded_time_t *result, apr_time_t input);
  +APR_DECLARE(apr_status_t) apr_explode_localtime(apr_exploded_time_t *result, 
  +                                                apr_time_t input);
   
   /**
    * Convert time value from human readable format to number of seconds 
    * since epoch
    * @param result the resulting imploded time
    * @param input the input exploded time
  + * @deffunc apr_status_t apr_implode_time(apr_time_t *result, apr_exploded_time_t *input)
    */
  -apr_status_t apr_implode_time(apr_time_t *result, apr_exploded_time_t *input);
  +APR_DECLARE(apr_status_t) apr_implode_time(apr_time_t *result, 
  +                                           apr_exploded_time_t *input);
   
   /**
    * Sleep for the specified number of micro-seconds.
    * @param t desired amount of time to sleep.
  + * @deffunc void apr_sleep(apr_interval_time_t t)
    * @tip May sleep for longer than the specified time. 
    */
  -void apr_sleep(apr_interval_time_t t);
  +APR_DECLARE(void) apr_sleep(apr_interval_time_t t);
   
   #define APR_RFC822_DATE_LEN (30)
   /**
  @@ -168,8 +178,9 @@
    * including trailing \0
    * @param date_str String to write to.
    * @param t the time to convert 
  + * @deffunc apr_status_t apr_rfc822_date(char *date_str, apr_time_t t)
    */
  -apr_status_t apr_rfc822_date(char *date_str, apr_time_t t);
  +APR_DECLARE(apr_status_t) apr_rfc822_date(char *date_str, apr_time_t t);
   
   #define APR_CTIME_LEN (25)
   /**
  @@ -179,8 +190,9 @@
    * including trailing \0 
    * @param date_str String to write to.
    * @param t the time to convert 
  + * @deffunc apr_status_t apr_ctime(char *date_str, apr_time_t t)
    */
  -apr_status_t apr_ctime(char *date_str, apr_time_t t);
  +APR_DECLARE(apr_status_t) apr_ctime(char *date_str, apr_time_t t);
   
   /**
    * formats the exploded time according to the format specified
  @@ -189,8 +201,11 @@
    * @param max The maximum length of the string
    * @param format The format for the time string
    * @param tm The time to convert
  + * @deffunc apr_status_t apr_strftime(char *s, apr_size_t *retsize, apr_size_t max, const char *format, apr_exploded_time_t *tm)
    */
  -apr_status_t apr_strftime(char *s, apr_size_t *retsize, apr_size_t max, const char *format, apr_exploded_time_t *tm);
  +APR_DECLARE(apr_status_t) apr_strftime(char *s, apr_size_t *retsize, 
  +                                       apr_size_t max, const char *format, 
  +                                       apr_exploded_time_t *tm);
   
   #ifdef __cplusplus
   }
  
  
  
  1.4       +12 -4     apr/include/apr_uuid.h
  
  Index: apr_uuid.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_uuid.h,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apr_uuid.h	2000/10/07 08:21:15	1.3
  +++ apr_uuid.h	2001/01/18 20:07:22	1.4
  @@ -58,6 +58,10 @@
   #include "apr.h"
   #include "apr_errno.h"
   
  +#ifdef __cplusplus
  +extern "C" {
  +#endif /* __cplusplus */
  +
   /**
    * @package APR UUID Handling
    */
  @@ -76,7 +80,7 @@
    * @param uuid The resulting UUID
    * @deffunc void apr_get_uuid(apr_uuid_t *uuid)
    */ 
  -void apr_get_uuid(apr_uuid_t *uuid);
  +APR_DECLARE(void) apr_get_uuid(apr_uuid_t *uuid);
   
   /**
    * Format a UUID into a string, following the standard format
  @@ -84,9 +88,9 @@
    *               be at least APR_UUID_FORMATTED_LENGTH + 1 bytes long to hold
    *               the formatted UUID and a null terminator
    * @param uuid The UUID to format
  - * @deffunc void apr_format_uuid(apr_pool_t *p, const apr_uuid_t *uuid)
  + * @deffunc void apr_format_uuid(char *buffer, const apr_uuid_t *uuid)
    */ 
  -void apr_format_uuid(char *buffer, const apr_uuid_t *uuid);
  +APR_DECLARE(void) apr_format_uuid(char *buffer, const apr_uuid_t *uuid);
   
   /**
    * Parse a standard-format string into a UUID
  @@ -94,6 +98,10 @@
    * @param uuid_str The formatted UUID
    * @deffunc apr_status_t apr_parse_uuid(apr_uuid_t *uuid, const char *uuid_str)
    */ 
  -apr_status_t apr_parse_uuid(apr_uuid_t *uuid, const char *uuid_str);
  +APR_DECLARE(apr_status_t) apr_parse_uuid(apr_uuid_t *uuid, const char *uuid_str);
  +
  +#ifdef __cplusplus
  +}
  +#endif
   
   #endif /* APR_UUID_H */
  
  
  
  1.11      +21 -9     apr/include/apr_xlate.h
  
  Index: apr_xlate.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_xlate.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- apr_xlate.h	2000/12/04 06:28:53	1.10
  +++ apr_xlate.h	2001/01/18 20:07:22	1.11
  @@ -83,6 +83,7 @@
    * @param topage The name of the target charset
    * @param frompage The name of the source charset
    * @param pool The pool to use
  + * @deffunc apr_status_t apr_xlate_open(apr_xlate_t **convset, const char *topage, const char *frompage, apr_pool_t *pool)
    * @tip
    * <PRE>
    *  Specify APR_DEFAULT_CHARSET for one of the charset
  @@ -98,8 +99,10 @@
    *  names to indicate the charset of the current locale.
    * </PRE>
    */
  -apr_status_t apr_xlate_open(apr_xlate_t **convset, const char *topage, 
  -                          const char *frompage, apr_pool_t *pool);
  +APR_DECLARE(apr_status_t) apr_xlate_open(apr_xlate_t **convset, 
  +                                         const char *topage, 
  +                                         const char *frompage, 
  +                                         apr_pool_t *pool);
   
   #define APR_DEFAULT_CHARSET (const char *)0
   #define APR_LOCALE_CHARSET (const char *)1
  @@ -109,9 +112,10 @@
    * @param convset The handle allocated by apr_xlate_open, specifying the 
    *                parameters of conversion
    * @param onoff Output: whether or not the conversion is single-byte-only
  + * @deffunc apr_status_t apr_xlate_get_sb(apr_xlate_t *convset, int *onoff)
    */
   
  -apr_status_t apr_xlate_get_sb(apr_xlate_t *convset, int *onoff);
  +APR_DECLARE(apr_status_t) apr_xlate_get_sb(apr_xlate_t *convset, int *onoff)
   
   /**
    * Convert a buffer of text from one codepage to another.
  @@ -123,10 +127,13 @@
    * @param outbuf The address of the destination buffer
    * @param outbytes_left Input: the size of the output buffer
    *                      Output: the amount of the output buffer not yet used
  + * @deffunc apr_status_t apr_xlate_conv_buffer(apr_xlate_t *convset, const char *inbuf, apr_size_t *inbytes_left, char *outbuf, apr_size_t *outbytes_left)
    */
  -apr_status_t apr_xlate_conv_buffer(apr_xlate_t *convset, const char *inbuf, 
  -                                   apr_size_t *inbytes_left, char *outbuf,
  -                                   apr_size_t *outbytes_left);
  +APR_DECLARE(apr_status_t) apr_xlate_conv_buffer(apr_xlate_t *convset, 
  +                                                const char *inbuf, 
  +                                                apr_size_t *inbytes_left, 
  +                                                char *outbuf,
  +                                                apr_size_t *outbytes_left);
   
   /* See the comment in apr_file_io.h about this hack */
   #ifdef APR_NOT_DONE_YET
  @@ -138,8 +145,10 @@
    *                parameters of conversion
    * @param inchar The character to convert
    * @param outchar The converted character
  + * @deffunc apr_status_t apr_xlate_conv_char(apr_xlate_t *convset, char inchar, char outchar)
    */
  -apr_status_t apr_xlate_conv_char(apr_xlate_t *convset, char inchar, char outchar);
  +APR_DECLARE(apr_status_t) apr_xlate_conv_char(apr_xlate_t *convset, 
  +                                              char inchar, char outchar);
   #endif
   
   /**
  @@ -147,16 +156,19 @@
    * @param convset The handle allocated by apr_xlate_open, specifying the 
    *                parameters of conversion
    * @param inchar The single-byte character to convert.
  + * @deffunc apr_int32_t apr_xlate_conv_byte(apr_xlate_t *convset, unsigned char inchar)
    * @tip This only works when converting between single-byte character sets.
    *      -1 will be returned if the conversion can't be performed.
    */
  -apr_int32_t apr_xlate_conv_byte(apr_xlate_t *convset, unsigned char inchar);
  +APR_DECLARE(apr_int32_t) apr_xlate_conv_byte(apr_xlate_t *convset, 
  +                                             unsigned char inchar);
   
   /**
    * Close a codepage translation handle.
    * @param convset The codepage translation handle to close
  + * @deffunc apr_status_t apr_xlate_close(apr_xlate_t *convset)
    */
  -apr_status_t apr_xlate_close(apr_xlate_t *convset);
  +APR_DECLARE(apr_status_t) apr_xlate_close(apr_xlate_t *convset);
   
   #else
   
  
  
  
  1.39      +0 -2      apr/include/arch/win32/fileio.h
  
  Index: fileio.h
  ===================================================================
  RCS file: /home/cvs/apr/include/arch/win32/fileio.h,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- fileio.h	2000/11/10 21:51:49	1.38
  +++ fileio.h	2001/01/18 20:07:27	1.39
  @@ -174,8 +174,6 @@
               char *fname;
           } n;
       };
  -    apr_canon_t *canonname;
  -    
       DWORD dwFileAttributes;
       int eof_hit;
       BOOLEAN buffered;          // Use buffered I/O?
  
  
  
  1.33      +21 -14    apr/locks/win32/locks.c
  
  Index: locks.c
  ===================================================================
  RCS file: /home/cvs/apr/locks/win32/locks.c,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- locks.c	2000/11/09 06:25:30	1.32
  +++ locks.c	2001/01/18 20:07:28	1.33
  @@ -57,9 +57,11 @@
   #include "win32/locks.h"
   #include "apr_portable.h"
   
  -apr_status_t apr_create_lock(apr_lock_t **lock, apr_locktype_e type, 
  -                           apr_lockscope_e scope, const char *fname, 
  -                           apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_create_lock(apr_lock_t **lock, 
  +                                          apr_locktype_e type, 
  +                                          apr_lockscope_e scope, 
  +                                          const char *fname,
  +                                          apr_pool_t *cont)
   {
       apr_lock_t *newlock;
       SECURITY_ATTRIBUTES sec;
  @@ -92,8 +94,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_child_init_lock(apr_lock_t **lock, const char *fname, 
  -                               apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_child_init_lock(apr_lock_t **lock, 
  +                                              const char *fname, 
  +                                              apr_pool_t *cont)
   {
       /* This routine should not be called (and OpenMutex will fail if called) 
        * on a INTRAPROCESS lock
  @@ -112,7 +115,7 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_lock(apr_lock_t *lock)
  +APR_DECLARE(apr_status_t) apr_lock(apr_lock_t *lock)
   {
       DWORD rv;
       if (lock->scope == APR_INTRAPROCESS) {
  @@ -128,7 +131,7 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_unlock(apr_lock_t *lock)
  +APR_DECLARE(apr_status_t) apr_unlock(apr_lock_t *lock)
   {
       if (lock->scope == APR_INTRAPROCESS) {
           LeaveCriticalSection(&lock->section);
  @@ -141,7 +144,7 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_destroy_lock(apr_lock_t *lock)
  +APR_DECLARE(apr_status_t) apr_destroy_lock(apr_lock_t *lock)
   {
       if (lock->scope == APR_INTRAPROCESS) {
           DeleteCriticalSection(&lock->section);
  @@ -154,25 +157,29 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_lockdata(apr_lock_t *lock, const char *key, void *data)
  +APR_DECLARE(apr_status_t) apr_get_lockdata(apr_lock_t *lock, const char *key,
  +                                           void *data)
   {
       return apr_get_userdata(data, key, lock->cntxt);
   }
   
  -apr_status_t apr_set_lockdata(apr_lock_t *lock, void *data, const char *key,
  -                            apr_status_t (*cleanup) (void *))
  +APR_DECLARE(apr_status_t) apr_set_lockdata(apr_lock_t *lock, void *data,
  +                                           const char *key,
  +                                           apr_status_t (*cleanup) (void *))
   {
       return apr_set_userdata(data, key, cleanup, lock->cntxt);
   }
   
  -apr_status_t apr_get_os_lock(apr_os_lock_t *thelock, apr_lock_t *lock)
  +APR_DECLARE(apr_status_t) apr_get_os_lock(apr_os_lock_t *thelock,
  +                                          apr_lock_t *lock)
   {
       *thelock = lock->mutex;
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_put_os_lock(apr_lock_t **lock, apr_os_lock_t *thelock, 
  -                           apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_lock(apr_lock_t **lock,
  +                                          apr_os_lock_t *thelock,
  +                                          apr_pool_t *cont)
   {
       if (cont == NULL) {
           return APR_ENOPOOL;
  
  
  
  1.30      +2 -1      apr/misc/unix/errorcodes.c
  
  Index: errorcodes.c
  ===================================================================
  RCS file: /home/cvs/apr/misc/unix/errorcodes.c,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- errorcodes.c	2000/12/05 22:08:38	1.29
  +++ errorcodes.c	2001/01/18 20:07:29	1.30
  @@ -346,7 +346,8 @@
   }
   #endif
   
  -char *apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize)
  +APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf,
  +                                 apr_size_t bufsize)
   {
       if (statcode < APR_OS_START_ERROR) {
           return stuffbuffer(buf, bufsize, strerror(statcode));
  
  
  
  1.46      +3 -3      apr/misc/unix/start.c
  
  Index: start.c
  ===================================================================
  RCS file: /home/cvs/apr/misc/unix/start.c,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- start.c	2000/12/31 18:04:59	1.45
  +++ start.c	2001/01/18 20:07:29	1.46
  @@ -63,7 +63,7 @@
   static int initialized = 0;
   static apr_pool_t *global_apr_pool;
   
  -apr_status_t apr_initialize(void)
  +APR_DECLARE(apr_status_t) apr_initialize(void)
   {
       apr_status_t status;
   #if defined WIN32
  @@ -98,7 +98,7 @@
       return status;
   }
   
  -void apr_terminate(void)
  +APR_DECLARE(void) apr_terminate(void)
   {
       initialized--;
       if (initialized) {
  @@ -107,7 +107,7 @@
       apr_term_alloc(global_apr_pool);
   }
   
  -apr_status_t apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_set_abort(int (*apr_abort)(int retcode), apr_pool_t *cont)
   {
       cont->apr_abort = apr_abort;
       return APR_SUCCESS;
  
  
  
  1.2       +3 -2      apr/misc/unix/uuid.c
  
  Index: uuid.c
  ===================================================================
  RCS file: /home/cvs/apr/misc/unix/uuid.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- uuid.c	2000/10/06 12:19:39	1.1
  +++ uuid.c	2001/01/18 20:07:29	1.2
  @@ -60,7 +60,7 @@
   #include "apr_lib.h"
   
   
  -void apr_format_uuid(char *buffer, const apr_uuid_t *uuid)
  +APR_DECLARE(void) apr_format_uuid(char *buffer, const apr_uuid_t *uuid)
   {
       const unsigned char *d = uuid->data;
   
  @@ -95,7 +95,8 @@
       return (unsigned char)result;
   }
   
  -apr_status_t apr_parse_uuid(apr_uuid_t *uuid, const char *uuid_str)
  +APR_DECLARE(apr_status_t) apr_parse_uuid(apr_uuid_t *uuid,
  +                                         const char *uuid_str)
   {
       int i;
       unsigned char *d = uuid->data;
  
  
  
  1.2       +1 -1      apr/misc/win32/getuuid.c
  
  Index: getuuid.c
  ===================================================================
  RCS file: /home/cvs/apr/misc/win32/getuuid.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- getuuid.c	2000/10/06 12:19:41	1.1
  +++ getuuid.c	2001/01/18 20:07:30	1.2
  @@ -62,7 +62,7 @@
   #include "apr.h"
   #include "apr_uuid.h"
   
  -void apr_get_uuid(apr_uuid_t *uuid)
  +APR_DECLARE(void) apr_get_uuid(apr_uuid_t *uuid)
   {
       GUID guid;
   
  
  
  
  1.9       +2 -1      apr/misc/win32/rand.c
  
  Index: rand.c
  ===================================================================
  RCS file: /home/cvs/apr/misc/win32/rand.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- rand.c	2000/10/06 17:24:39	1.8
  +++ rand.c	2001/01/18 20:07:31	1.9
  @@ -56,7 +56,8 @@
   #include "apr_general.h"
   #include <wincrypt.h>
   
  -apr_status_t apr_generate_random_bytes(unsigned char * buf, int length) 
  +APR_DECLARE(apr_status_t) apr_generate_random_bytes(unsigned char * buf,
  +                                                    int length)
   {
       HCRYPTPROV hProv;
       apr_status_t res = APR_SUCCESS;
  
  
  
  1.18      +2 -1      apr/mmap/unix/common.c
  
  Index: common.c
  ===================================================================
  RCS file: /home/cvs/apr/mmap/unix/common.c,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- common.c	2000/08/02 05:26:25	1.17
  +++ common.c	2001/01/18 20:07:31	1.18
  @@ -68,7 +68,8 @@
   
   #if APR_HAS_MMAP || defined(BEOS)
   
  -apr_status_t apr_mmap_offset(void **addr, apr_mmap_t *mmap, apr_off_t offset)
  +APR_DECLARE(apr_status_t) apr_mmap_offset(void **addr, apr_mmap_t *mmap,
  +                                          apr_off_t offset)
   {  
       if (offset < 0 || offset > mmap->size)
           return APR_EINVAL;
  
  
  
  1.2       +4 -3      apr/mmap/win32/mmap.c
  
  Index: mmap.c
  ===================================================================
  RCS file: /home/cvs/apr/mmap/win32/mmap.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- mmap.c	2000/12/07 06:58:59	1.1
  +++ mmap.c	2001/01/18 20:07:32	1.2
  @@ -91,8 +91,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_mmap_create(apr_mmap_t **new, apr_file_t *file, apr_off_t offset, 
  -                             apr_size_t size, apr_int32_t flag, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_mmap_create(apr_mmap_t **new, apr_file_t *file,
  +                                          apr_off_t offset, apr_size_t size,
  +                                          apr_int32_t flag, apr_pool_t *cont)
   {
       static DWORD memblock = 0;
       DWORD fmaccess = 0, mvaccess = 0;
  @@ -151,7 +152,7 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_mmap_delete(apr_mmap_t *mmap)
  +APR_DECLARE(apr_status_t) apr_mmap_delete(apr_mmap_t *mmap)
   {
       apr_status_t rv;
   
  
  
  
  1.24      +25 -16    apr/network_io/unix/sa_common.c
  
  Index: sa_common.c
  ===================================================================
  RCS file: /home/cvs/apr/network_io/unix/sa_common.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- sa_common.c	2000/12/18 20:17:51	1.23
  +++ sa_common.c	2001/01/18 20:07:33	1.24
  @@ -70,7 +70,8 @@
   #include <stdlib.h>
   #endif
   
  -apr_status_t apr_set_port(apr_sockaddr_t *sockaddr, apr_port_t port)
  +APR_DECLARE(apr_status_t) apr_set_port(apr_sockaddr_t *sockaddr,
  +                                       apr_port_t port)
   {
       /* XXX IPv6: assumes sin_port and sin6_port at same offset */
       sockaddr->sa.sin.sin_port = htons(port);
  @@ -81,7 +82,8 @@
    * since we have apr_getaddrinfo(), but we need to clean up Apache's 
    * listen.c a bit more first.
    */
  -apr_status_t apr_set_ipaddr(apr_sockaddr_t *sockaddr, const char *addr)
  +APR_DECLARE(apr_status_t) apr_set_ipaddr(apr_sockaddr_t *sockaddr,
  +                                         const char *addr)
   {
       u_long ipaddr;
       
  @@ -103,14 +105,16 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_port(apr_port_t *port, apr_sockaddr_t *sockaddr)
  +APR_DECLARE(apr_status_t) apr_get_port(apr_port_t *port,
  +                                       apr_sockaddr_t *sockaddr)
   {
       /* XXX IPv6 - assumes sin_port and sin6_port at same offset */
       *port = ntohs(sockaddr->sa.sin.sin_port);
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_ipaddr(char **addr, apr_sockaddr_t *sockaddr)
  +APR_DECLARE(apr_status_t) apr_get_ipaddr(char **addr,
  +                                         apr_sockaddr_t *sockaddr)
   {
       *addr = apr_palloc(sockaddr->pool, sockaddr->addr_str_len);
       apr_inet_ntop(sockaddr->sa.sin.sin_family,
  @@ -150,7 +154,9 @@
   #endif
   }
   
  -apr_status_t apr_get_sockaddr(apr_sockaddr_t **sa, apr_interface_e which, apr_socket_t *sock)
  +APR_DECLARE(apr_status_t) apr_get_sockaddr(apr_sockaddr_t **sa,
  +                                           apr_interface_e which,
  +                                           apr_socket_t *sock)
   {
       if (which == APR_LOCAL) {
           if (sock->local_interface_unknown || sock->local_port_unknown) {
  @@ -172,11 +178,11 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_parse_addr_port(char **addr,
  -                                 char **scope_id,
  -                                 apr_port_t *port,
  -                                 const char *str,
  -                                 apr_pool_t *p)
  +APR_DECLARE(apr_status_t) apr_parse_addr_port(char **addr,
  +                                              char **scope_id,
  +                                              apr_port_t *port,
  +                                              const char *str,
  +                                              apr_pool_t *p)
   {
       const char *ch, *lastchar;
       int big_port;
  @@ -297,9 +303,10 @@
   }
   #endif
   
  -apr_status_t apr_getaddrinfo(apr_sockaddr_t **sa, const char *hostname, 
  -                             apr_int32_t family, apr_port_t port,
  -                             apr_int32_t flags, apr_pool_t *p)
  +APR_DECLARE(apr_status_t) apr_getaddrinfo(apr_sockaddr_t **sa,
  +                                          const char *hostname, 
  +                                          apr_int32_t family, apr_port_t port,
  +                                          apr_int32_t flags, apr_pool_t *p)
   {
       (*sa) = (apr_sockaddr_t *)apr_pcalloc(p, sizeof(apr_sockaddr_t));
       if ((*sa) == NULL)
  @@ -417,8 +424,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_getnameinfo(char **hostname, apr_sockaddr_t *sockaddr, 
  -                             apr_int32_t flags)
  +APR_DECLARE(apr_status_t) apr_getnameinfo(char **hostname,
  +                                          apr_sockaddr_t *sockaddr,
  +                                          apr_int32_t flags)
   {
   #if defined(HAVE_GETNAMEINFO) && APR_HAVE_IPV6
       int rc;
  @@ -472,7 +480,8 @@
   #endif
   }
   
  -apr_status_t apr_getservbyname(apr_sockaddr_t *sockaddr, const char *servname)
  +APR_DECLARE(apr_status_t) apr_getservbyname(apr_sockaddr_t *sockaddr,
  +                                            const char *servname)
   {
       struct servent *se;
   
  
  
  
  1.23      +22 -13    apr/network_io/win32/poll.c
  
  Index: poll.c
  ===================================================================
  RCS file: /home/cvs/apr/network_io/win32/poll.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- poll.c	2000/10/06 22:02:04	1.22
  +++ poll.c	2001/01/18 20:07:33	1.23
  @@ -60,7 +60,8 @@
   #include <time.h>
   
   
  -apr_status_t apr_setup_poll(apr_pollfd_t **new, apr_int32_t num, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_setup_poll(apr_pollfd_t **new, apr_int32_t num,
  +                                         apr_pool_t *cont)
   {
       (*new) = (apr_pollfd_t *)apr_palloc(cont, sizeof(apr_pollfd_t) * num);
       if ((*new) == NULL) {
  @@ -79,8 +80,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_add_poll_socket(apr_pollfd_t *aprset, 
  -			       apr_socket_t *sock, apr_int16_t event)
  +APR_DECLARE(apr_status_t) apr_add_poll_socket(apr_pollfd_t *aprset,
  +                                              apr_socket_t *sock,
  +                                              apr_int16_t event)
   {
       if (event & APR_POLLIN) {
           FD_SET(sock->sock, aprset->read);
  @@ -97,8 +99,8 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_poll(apr_pollfd_t *aprset, apr_int32_t *nsds, 
  -                    apr_interval_time_t timeout)
  +APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t *nsds, 
  +                                   apr_interval_time_t timeout)
   {
       int rv;
       struct timeval tv, *tvptr;
  @@ -140,7 +142,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_revents(apr_int16_t *event, apr_socket_t *sock, apr_pollfd_t *aprset)
  +APR_DECLARE(apr_status_t) apr_get_revents(apr_int16_t *event,
  +                                          apr_socket_t *sock,
  +                                          apr_pollfd_t *aprset)
   {
       apr_int16_t revents = 0;
       WSABUF data;
  @@ -194,19 +198,22 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_polldata(apr_pollfd_t *pollfd, const char *key, void *data)
  +APR_DECLARE(apr_status_t) apr_get_polldata(apr_pollfd_t *pollfd, 
  +                                           const char *key, void *data)
   {
       return apr_get_userdata(data, key, pollfd->cntxt);
   }
   
  -apr_status_t apr_set_polldata(apr_pollfd_t *pollfd, void *data, const char *key,
  -                            apr_status_t (*cleanup) (void *))
  +APR_DECLARE(apr_status_t) apr_set_polldata(apr_pollfd_t *pollfd, void *data,
  +                                           const char *key,
  +                                           apr_status_t (*cleanup)(void *))
   {
       return apr_set_userdata(data, key, cleanup, pollfd->cntxt);
   }
   
  -apr_status_t apr_mask_poll_socket(apr_pollfd_t *aprset, 
  -                                apr_socket_t *sock, apr_int16_t events)
  +APR_DECLARE(apr_status_t) apr_mask_poll_socket(apr_pollfd_t *aprset, 
  +                                               apr_socket_t *sock,
  +                                               apr_int16_t events)
   {
       if (events & APR_POLLIN) {
           FD_CLR(sock->sock, aprset->read);
  @@ -223,12 +230,14 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_remove_poll_socket(apr_pollfd_t *aprset, apr_socket_t *sock)
  +APR_DECLARE(apr_status_t) apr_remove_poll_socket(apr_pollfd_t *aprset,
  +                                                 apr_socket_t *sock)
   {
       return apr_mask_poll_socket(aprset, sock, ~0);
   }
   
  -apr_status_t apr_clear_poll_sockets(apr_pollfd_t *aprset, apr_int16_t events)
  +APR_DECLARE(apr_status_t) apr_clear_poll_sockets(apr_pollfd_t *aprset,
  +                                                 apr_int16_t events)
   {
       if (events & APR_POLLIN) {
           FD_ZERO(aprset->read);
  
  
  
  1.32      +10 -7     apr/network_io/win32/sendrecv.c
  
  Index: sendrecv.c
  ===================================================================
  RCS file: /home/cvs/apr/network_io/win32/sendrecv.c,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- sendrecv.c	2001/01/10 22:28:03	1.31
  +++ sendrecv.c	2001/01/18 20:07:34	1.32
  @@ -69,7 +69,8 @@
    * bytes.
    */
   #define MAX_SEGMENT_SIZE 65536
  -apr_status_t apr_send(apr_socket_t *sock, const char *buf, apr_size_t *len)
  +APR_DECLARE(apr_status_t) apr_send(apr_socket_t *sock, const char *buf,
  +                                   apr_size_t *len)
   {
       apr_ssize_t rv;
       WSABUF wsaData;
  @@ -90,7 +91,8 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_recv(apr_socket_t *sock, char *buf, apr_size_t *len) 
  +APR_DECLARE(apr_status_t) apr_recv(apr_socket_t *sock, char *buf,
  +                                   apr_size_t *len) 
   {
       apr_ssize_t rv;
       WSABUF wsaData;
  @@ -113,8 +115,9 @@
   
   }
   
  -apr_status_t apr_sendv(apr_socket_t *sock, const struct iovec *vec,
  -                     apr_int32_t nvec, apr_int32_t *nbytes)
  +APR_DECLARE(apr_status_t) apr_sendv(apr_socket_t *sock,
  +                                    const struct iovec *vec,
  +                                    apr_int32_t nvec, apr_int32_t *nbytes)
   {
       apr_ssize_t rv;
       int i;
  @@ -189,9 +192,9 @@
    * arg 5) Number of bytes to send out of the file
    * arg 6) APR flags that are mapped to OS specific flags
    */
  -apr_status_t apr_sendfile(apr_socket_t * sock, apr_file_t * file,
  -                          apr_hdtr_t * hdtr, apr_off_t * offset, apr_size_t * len,
  -                          apr_int32_t flags) 
  +APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file,
  +                                       apr_hdtr_t *hdtr, apr_off_t *offset,
  +                                       apr_size_t *len, apr_int32_t flags) 
   {
       apr_status_t status = APR_SUCCESS;
       apr_ssize_t rv;
  
  
  
  1.49      +23 -17    apr/network_io/win32/sockets.c
  
  Index: sockets.c
  ===================================================================
  RCS file: /home/cvs/apr/network_io/win32/sockets.c,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- sockets.c	2001/01/10 15:52:19	1.48
  +++ sockets.c	2001/01/18 20:07:34	1.49
  @@ -112,8 +112,8 @@
                                                           sizeof(apr_sockaddr_t));
   }
   
  -apr_status_t apr_create_socket(apr_socket_t **new, int ofamily, int type,
  -                               apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_create_socket(apr_socket_t **new, int ofamily,
  +                                            int type, apr_pool_t *cont)
   {
       int family = ofamily;
   
  @@ -159,7 +159,8 @@
       return APR_SUCCESS;
   } 
   
  -apr_status_t apr_shutdown(apr_socket_t *thesocket, apr_shutdown_how_e how)
  +APR_DECLARE(apr_status_t) apr_shutdown(apr_socket_t *thesocket,
  +                                       apr_shutdown_how_e how)
   {
       int winhow;
   
  @@ -185,13 +186,13 @@
       }
   }
   
  -apr_status_t apr_close_socket(apr_socket_t *thesocket)
  +APR_DECLARE(apr_status_t) apr_close_socket(apr_socket_t *thesocket)
   {
       apr_kill_cleanup(thesocket->cntxt, thesocket, socket_cleanup);
       return socket_cleanup(thesocket);
   }
   
  -apr_status_t apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa)
  +APR_DECLARE(apr_status_t) apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa)
   {
       if (bind(sock->sock, 
                (struct sockaddr *)&sa->sa, 
  @@ -207,7 +208,7 @@
       }
   }
   
  -apr_status_t apr_listen(apr_socket_t *sock, apr_int32_t backlog)
  +APR_DECLARE(apr_status_t) apr_listen(apr_socket_t *sock, apr_int32_t backlog)
   {
       if (listen(sock->sock, backlog) == SOCKET_ERROR)
           return apr_get_netos_error();
  @@ -215,7 +216,8 @@
           return APR_SUCCESS;
   }
   
  -apr_status_t apr_accept(apr_socket_t **new, apr_socket_t *sock, apr_pool_t *connection_context)
  +APR_DECLARE(apr_status_t) apr_accept(apr_socket_t **new, apr_socket_t *sock,
  +                                     apr_pool_t *connection_context)
   {
       alloc_socket(new, connection_context);
       set_socket_vars(*new, sock->local_addr->sa.sin.sin_family);
  @@ -263,7 +265,7 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa)
  +APR_DECLARE(apr_status_t) apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa)
   {
       apr_status_t lasterror;
       fd_set temp;
  @@ -297,26 +299,29 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_socketdata(void **data, const char *key, apr_socket_t *socket)
  +APR_DECLARE(apr_status_t) apr_get_socketdata(void **data, const char *key,
  +                                             apr_socket_t *socket)
   {
       return apr_get_userdata(data, key, socket->cntxt);
   }
   
  -apr_status_t apr_set_socketdata(apr_socket_t *socket, void *data, const char *key, 
  -                              apr_status_t (*cleanup) (void *))
  +APR_DECLARE(apr_status_t) apr_set_socketdata(apr_socket_t *socket, void *data,
  +                                             const char *key,
  +                                             apr_status_t (*cleanup)(void *))
   {
       return apr_set_userdata(data, key, cleanup, socket->cntxt);
   }
   
  -apr_status_t apr_get_os_sock(apr_os_sock_t *thesock, apr_socket_t *sock)
  +APR_DECLARE(apr_status_t) apr_get_os_sock(apr_os_sock_t *thesock,
  +                                          apr_socket_t *sock)
   {
       *thesock = sock->sock;
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_make_os_sock(apr_socket_t **apr_sock, 
  -                              apr_os_sock_info_t *os_sock_info, 
  -                              apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_make_os_sock(apr_socket_t **apr_sock,
  +                                           apr_os_sock_info_t *os_sock_info,
  +                                           apr_pool_t *cont)
   {
       alloc_socket(apr_sock, cont);
       set_socket_vars(*apr_sock, os_sock_info->family);
  @@ -345,8 +350,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_put_os_sock(apr_socket_t **sock, apr_os_sock_t *thesock, 
  -                           apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_sock(apr_socket_t **sock,
  +                                          apr_os_sock_t *thesock,
  +                                          apr_pool_t *cont)
   {
       if ((*sock) == NULL) {
           alloc_socket(sock, cont);
  
  
  
  1.31      +6 -3      apr/network_io/win32/sockopt.c
  
  Index: sockopt.c
  ===================================================================
  RCS file: /home/cvs/apr/network_io/win32/sockopt.c,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- sockopt.c	2000/12/18 17:00:43	1.30
  +++ sockopt.c	2001/01/18 20:07:34	1.31
  @@ -78,7 +78,8 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_setsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t on)
  +APR_DECLARE(apr_status_t) apr_setsocketopt(apr_socket_t *sock,
  +                                           apr_int32_t opt, apr_int32_t on)
   {
       int one;
       apr_status_t stat;
  @@ -169,7 +170,8 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_getsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t *on)
  +APR_DECLARE(apr_status_t) apr_getsocketopt(apr_socket_t *sock,
  +                                           apr_int32_t opt, apr_int32_t *on)
   {
       switch (opt) {
       case APR_SO_TIMEOUT: 
  @@ -193,7 +195,8 @@
   }
   
   
  -apr_status_t apr_gethostname(char *buf, int len, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_gethostname(char *buf, int len,
  +                                          apr_pool_t *cont)
   {
       if (gethostname(buf, len) == -1)
           return apr_get_netos_error();
  
  
  
  1.6       +4 -2      apr/strings/apr_strnatcmp.c
  
  Index: apr_strnatcmp.c
  ===================================================================
  RCS file: /home/cvs/apr/strings/apr_strnatcmp.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- apr_strnatcmp.c	2000/11/26 02:59:59	1.5
  +++ apr_strnatcmp.c	2001/01/18 20:07:36	1.6
  @@ -140,12 +140,14 @@
   
   
   
  -int apr_strnatcmp(char const *a, char const *b) {
  +APR_DECLARE(int) apr_strnatcmp(char const *a, char const *b)
  +{
        return strnatcmp0(a, b, 0);
   }
   
   
   /* Compare, recognizing numeric string and ignoring case. */
  -int apr_strnatcasecmp(char const *a, char const *b) {
  +APR_DECLARE(int) apr_strnatcasecmp(char const *a, char const *b)
  +{
        return strnatcmp0(a, b, 1);
   }
  
  
  
  1.42      +28 -22    apr/threadproc/win32/proc.c
  
  Index: proc.c
  ===================================================================
  RCS file: /home/cvs/apr/threadproc/win32/proc.c,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- proc.c	2000/12/21 00:44:08	1.41
  +++ proc.c	2001/01/18 20:07:36	1.42
  @@ -71,7 +71,8 @@
    *
    */
   
  -apr_status_t apr_createprocattr_init(apr_procattr_t **new, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_createprocattr_init(apr_procattr_t **new,
  +                                                  apr_pool_t *cont)
   {
       (*new) = (apr_procattr_t *)apr_palloc(cont, sizeof(apr_procattr_t));
   
  @@ -169,8 +170,10 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_setprocattr_io(apr_procattr_t *attr, apr_int32_t in, 
  -                                apr_int32_t out, apr_int32_t err)
  +APR_DECLARE(apr_status_t) apr_setprocattr_io(apr_procattr_t *attr,
  +                                             apr_int32_t in, 
  +                                             apr_int32_t out,
  +                                             apr_int32_t err)
   {
       apr_status_t stat;
   
  @@ -201,9 +204,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_setprocattr_childin(apr_procattr_t *attr, 
  -                                     apr_file_t *child_in, 
  -                                     apr_file_t *parent_in)
  +APR_DECLARE(apr_status_t) apr_setprocattr_childin(apr_procattr_t *attr, 
  +                                                  apr_file_t *child_in, 
  +                                                  apr_file_t *parent_in)
   {
       apr_status_t stat;
   
  @@ -224,9 +227,9 @@
       return stat;
   }
   
  -apr_status_t apr_setprocattr_childout(apr_procattr_t *attr,
  -                                      apr_file_t *child_out,
  -                                      apr_file_t *parent_out)
  +APR_DECLARE(apr_status_t) apr_setprocattr_childout(apr_procattr_t *attr,
  +                                                   apr_file_t *child_out,
  +                                                   apr_file_t *parent_out)
   {
       apr_status_t stat;
   
  @@ -247,9 +250,9 @@
       return stat;
   }
   
  -apr_status_t apr_setprocattr_childerr(apr_procattr_t *attr,
  -                                      apr_file_t *child_err,
  -                                      apr_file_t *parent_err)
  +APR_DECLARE(apr_status_t) apr_setprocattr_childerr(apr_procattr_t *attr,
  +                                                   apr_file_t *child_err,
  +                                                   apr_file_t *parent_err)
   {
       apr_status_t stat;
   
  @@ -270,8 +273,8 @@
       return stat;
   }
   
  -apr_status_t apr_setprocattr_dir(apr_procattr_t *attr, 
  -                               const char *dir) 
  +APR_DECLARE(apr_status_t) apr_setprocattr_dir(apr_procattr_t *attr,
  +                                              const char *dir) 
   {
       char path[MAX_PATH];
       int length;
  @@ -294,14 +297,15 @@
       return APR_ENOMEM;
   }
   
  -apr_status_t apr_setprocattr_cmdtype(apr_procattr_t *attr,
  -                                     apr_cmdtype_e cmd) 
  +APR_DECLARE(apr_status_t) apr_setprocattr_cmdtype(apr_procattr_t *attr,
  +                                                  apr_cmdtype_e cmd) 
   {
       attr->cmdtype = cmd;
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_setprocattr_detach(apr_procattr_t *attr, apr_int32_t det) 
  +APR_DECLARE(apr_status_t) apr_setprocattr_detach(apr_procattr_t *attr,
  +                                                 apr_int32_t det) 
   {
       attr->detached = det;
       return APR_SUCCESS;
  @@ -312,10 +316,12 @@
    *   Q150956
    */
   
  -apr_status_t apr_create_process(apr_proc_t *new, const char *progname, 
  -                                const char * const *args,
  -                                const char * const *env, 
  -                                apr_procattr_t *attr, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_create_process(apr_proc_t *new,
  +                                             const char *progname,
  +                                             const char * const *args,
  +                                             const char * const *env,
  +                                             apr_procattr_t *attr,
  +                                             apr_pool_t *cont)
   {
       int i, iEnvBlockLen;
       char *cmdline;
  @@ -450,7 +456,7 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_wait_proc(apr_proc_t *proc, apr_wait_how_e wait)
  +APR_DECLARE(apr_status_t) apr_wait_proc(apr_proc_t *proc, apr_wait_how_e wait)
   {
       DWORD stat;
       if (!proc)
  
  
  
  1.11      +1 -1      apr/threadproc/win32/signals.c
  
  Index: signals.c
  ===================================================================
  RCS file: /home/cvs/apr/threadproc/win32/signals.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- signals.c	2000/11/09 06:47:54	1.10
  +++ signals.c	2001/01/18 20:07:36	1.11
  @@ -64,7 +64,7 @@
   #endif
   
   /* Windows only really support killing process, but that will do for now. */
  -apr_status_t apr_kill(apr_proc_t *proc, int signal)
  +APR_DECLARE(apr_status_t) apr_kill(apr_proc_t *proc, int signal)
   {
       if (TerminateProcess((HANDLE)proc->pid, signal) == 0) {
           return apr_get_os_error();
  
  
  
  1.27      +24 -16    apr/threadproc/win32/thread.c
  
  Index: thread.c
  ===================================================================
  RCS file: /home/cvs/apr/threadproc/win32/thread.c,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- thread.c	2000/11/09 06:47:54	1.26
  +++ thread.c	2001/01/18 20:07:36	1.27
  @@ -61,7 +61,8 @@
   #include <process.h>
   
   
  -apr_status_t apr_create_threadattr(apr_threadattr_t **new, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_create_threadattr(apr_threadattr_t **new,
  +                                                apr_pool_t *cont)
   {
       (*new) = (apr_threadattr_t *)apr_palloc(cont, 
                 sizeof(apr_threadattr_t));
  @@ -74,22 +75,24 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_setthreadattr_detach(apr_threadattr_t *attr, apr_int32_t on)
  +APR_DECLARE(apr_status_t) apr_setthreadattr_detach(apr_threadattr_t *attr,
  +                                                   apr_int32_t on)
   {
       attr->detach = on;
   	return APR_SUCCESS;
   }
   
  -apr_status_t apr_getthreadattr_detach(apr_threadattr_t *attr)
  +APR_DECLARE(apr_status_t) apr_getthreadattr_detach(apr_threadattr_t *attr)
   {
       if (attr->detach == 1)
           return APR_DETACH;
       return APR_NOTDETACH;
   }
   
  -apr_status_t apr_create_thread(apr_thread_t **new, apr_threadattr_t *attr, 
  -                             apr_thread_start_t func, void *data, 
  -                             apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_create_thread(apr_thread_t **new,
  +                                            apr_threadattr_t *attr,
  +                                            apr_thread_start_t func,
  +                                            void *data, apr_pool_t *cont)
   {
       apr_status_t stat;
   	unsigned temp;
  @@ -127,14 +130,16 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_thread_exit(apr_thread_t *thd, apr_status_t *retval)
  +APR_DECLARE(apr_status_t) apr_thread_exit(apr_thread_t *thd,
  +                                          apr_status_t *retval)
   {
       apr_destroy_pool(thd->cntxt);
       _endthreadex(*retval);
   	return APR_SUCCESS;
   }
   
  -apr_status_t apr_thread_join(apr_status_t *retval, apr_thread_t *thd)
  +APR_DECLARE(apr_status_t) apr_thread_join(apr_status_t *retval,
  +                                          apr_thread_t *thd)
   {
       apr_status_t stat;
   
  @@ -149,7 +154,7 @@
       }
   }
   
  -apr_status_t apr_thread_detach(apr_thread_t *thd)
  +APR_DECLARE(apr_status_t) apr_thread_detach(apr_thread_t *thd)
   {
       if (CloseHandle(thd->td)) {
           return APR_SUCCESS;
  @@ -159,19 +164,21 @@
       }
   }
   
  -apr_status_t apr_get_threaddata(void **data, const char *key, apr_thread_t *thread)
  +APR_DECLARE(apr_status_t) apr_get_threaddata(void **data, const char *key,
  +                                             apr_thread_t *thread)
   {
       return apr_get_userdata(data, key, thread->cntxt);
   }
   
  -apr_status_t apr_set_threaddata(void *data, const char *key,
  -                              apr_status_t (*cleanup) (void *),
  -                              apr_thread_t *thread)
  +APR_DECLARE(apr_status_t) apr_set_threaddata(void *data, const char *key,
  +                                             apr_status_t (*cleanup) (void *),
  +                                             apr_thread_t *thread)
   {
       return apr_set_userdata(data, key, cleanup, thread->cntxt);
   }
   
  -apr_status_t apr_get_os_thread(apr_os_thread_t **thethd, apr_thread_t *thd)
  +APR_DECLARE(apr_status_t) apr_get_os_thread(apr_os_thread_t **thethd,
  +                                            apr_thread_t *thd)
   {
       if (thd == NULL) {
           return APR_ENOTHREAD;
  @@ -180,8 +187,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_put_os_thread(apr_thread_t **thd, apr_os_thread_t *thethd, 
  -                             apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_thread(apr_thread_t **thd,
  +                                            apr_os_thread_t *thethd,
  +                                            apr_pool_t *cont)
   {
       if (cont == NULL) {
           return APR_ENOPOOL;
  
  
  
  1.22      +18 -13    apr/threadproc/win32/threadpriv.c
  
  Index: threadpriv.c
  ===================================================================
  RCS file: /home/cvs/apr/threadproc/win32/threadpriv.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- threadpriv.c	2000/11/09 06:47:54	1.21
  +++ threadpriv.c	2001/01/18 20:07:37	1.22
  @@ -59,8 +59,9 @@
   #include "apr_errno.h"
   #include "apr_portable.h"
   
  -apr_status_t apr_create_thread_private(apr_threadkey_t **key,
  -                                     void (*dest)(void *), apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_create_thread_private(apr_threadkey_t **key,
  +                                                    void (*dest)(void *),
  +                                                    apr_pool_t *cont)
   {
       if (((*key)->key = TlsAlloc()) != 0xFFFFFFFF) {
   	return APR_SUCCESS;
  @@ -68,7 +69,8 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_get_thread_private(void **new, apr_threadkey_t *key)
  +APR_DECLARE(apr_status_t) apr_get_thread_private(void **new,
  +                                                 apr_threadkey_t *key)
   {
       if ((*new) = TlsGetValue(key->key)) {
           return APR_SUCCESS;
  @@ -76,7 +78,8 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_set_thread_private(void *priv, apr_threadkey_t *key)
  +APR_DECLARE(apr_status_t) apr_set_thread_private(void *priv,
  +                                                 apr_threadkey_t *key)
   {
       if (TlsSetValue(key->key, priv)) {
           return APR_SUCCESS;
  @@ -84,7 +87,7 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_delete_thread_private(apr_threadkey_t *key)
  +APR_DECLARE(apr_status_t) apr_delete_thread_private(apr_threadkey_t *key)
   {
       if (TlsFree(key->key)) {
           return APR_SUCCESS; 
  @@ -92,27 +95,29 @@
       return apr_get_os_error();
   }
   
  -apr_status_t apr_get_threadkeydata(void **data, const char *key,
  -                                 apr_threadkey_t *threadkey)
  +APR_DECLARE(apr_status_t) apr_get_threadkeydata(void **data, const char *key,
  +                                                apr_threadkey_t *threadkey)
   {
       return apr_get_userdata(data, key, threadkey->cntxt);
   }
   
  -apr_status_t apr_set_threadkeydata(void *data, const char *key,
  -                                 apr_status_t (*cleanup) (void *), 
  -                                 apr_threadkey_t *threadkey)
  +APR_DECLARE(apr_status_t) apr_set_threadkeydata(void *data, const char *key,
  +                                                apr_status_t (*cleanup)(void *),
  +                                                apr_threadkey_t *threadkey)
   {
       return apr_set_userdata(data, key, cleanup, threadkey->cntxt);
   }
   
  -apr_status_t apr_get_os_threadkey(apr_os_threadkey_t *thekey, apr_threadkey_t *key)
  +APR_DECLARE(apr_status_t) apr_get_os_threadkey(apr_os_threadkey_t *thekey,
  +                                               apr_threadkey_t *key)
   {
       *thekey = key->key;
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_put_os_threadkey(apr_threadkey_t **key, 
  -                                apr_os_threadkey_t *thekey, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_threadkey(apr_threadkey_t **key,
  +                                               apr_os_threadkey_t *thekey,
  +                                               apr_pool_t *cont)
   {
       if (cont == NULL) {
           return APR_ENOPOOL;
  
  
  
  1.16      +20 -13    apr/time/win32/time.c
  
  Index: time.c
  ===================================================================
  RCS file: /home/cvs/apr/time/win32/time.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- time.c	2000/11/09 06:50:16	1.15
  +++ time.c	2001/01/18 20:07:38	1.16
  @@ -123,14 +123,15 @@
       return;
   }
   
  -apr_status_t apr_ansi_time_to_apr_time(apr_time_t *result, time_t input)
  +APR_DECLARE(apr_status_t) apr_ansi_time_to_apr_time(apr_time_t *result, 
  +                                                    time_t input)
   {
       *result = (apr_time_t) input * APR_USEC_PER_SEC;
       return APR_SUCCESS;
   }
   
   /* Return micro-seconds since the Unix epoch (jan. 1, 1970) UTC */
  -apr_time_t apr_now(void)
  +APR_DECLARE(apr_time_t) apr_now(void)
   {
       LONGLONG aprtime = 0;
       FILETIME time;
  @@ -139,7 +140,8 @@
       return aprtime; 
   }
   
  -apr_status_t apr_explode_gmt(apr_exploded_time_t *result, apr_time_t input)
  +APR_DECLARE(apr_status_t) apr_explode_gmt(apr_exploded_time_t *result,
  +                                          apr_time_t input)
   {
       FILETIME ft;
       SYSTEMTIME st;
  @@ -149,7 +151,8 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_explode_localtime(apr_exploded_time_t *result, apr_time_t input)
  +APR_DECLARE(apr_status_t) apr_explode_localtime(apr_exploded_time_t *result,
  +                                                apr_time_t input)
   {
       SYSTEMTIME st;
       FILETIME ft, localft;
  @@ -161,7 +164,8 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_implode_time(apr_time_t *t, apr_exploded_time_t *xt)
  +APR_DECLARE(apr_status_t) apr_implode_time(apr_time_t *t,
  +                                           apr_exploded_time_t *xt)
   {
       int year;
       time_t days;
  @@ -195,15 +199,16 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_os_imp_time(apr_os_imp_time_t **ostime, apr_time_t *aprtime)
  +APR_DECLARE(apr_status_t) apr_get_os_imp_time(apr_os_imp_time_t **ostime,
  +                                              apr_time_t *aprtime)
   {
       /* TODO: Consider not passing in pointer to apr_time_t (e.g., call by value) */
       AprTimeToFileTime(*ostime, *aprtime);
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_get_os_exp_time(apr_os_exp_time_t **ostime, 
  -                                 apr_exploded_time_t *aprexptime)
  +APR_DECLARE(apr_status_t) apr_get_os_exp_time(apr_os_exp_time_t **ostime, 
  +                                              apr_exploded_time_t *aprexptime)
   {
       (*ostime)->wYear = aprexptime->tm_year + 1900;
       (*ostime)->wMonth = aprexptime->tm_mon + 1;
  @@ -216,21 +221,23 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_put_os_imp_time(apr_time_t *aprtime, apr_os_imp_time_t **ostime,
  -                               apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_imp_time(apr_time_t *aprtime,
  +                                              apr_os_imp_time_t **ostime,
  +                                              apr_pool_t *cont)
   {
       FileTimeToAprTime(aprtime, *ostime);
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_put_os_exp_time(apr_exploded_time_t *aprtime,
  -                                 apr_os_exp_time_t **ostime, apr_pool_t *cont)
  +APR_DECLARE(apr_status_t) apr_put_os_exp_time(apr_exploded_time_t *aprtime,
  +                                              apr_os_exp_time_t **ostime,
  +                                              apr_pool_t *cont)
   {
       SystemTimeToAprExpTime(aprtime, *ostime);
       return APR_SUCCESS;
   }
   
  -void apr_sleep(apr_interval_time_t t)
  +APR_DECLARE(void) apr_sleep(apr_interval_time_t t)
   {
       Sleep(t/1000);
   }
  
  
  
  1.13      +5 -4      apr/time/win32/timestr.c
  
  Index: timestr.c
  ===================================================================
  RCS file: /home/cvs/apr/time/win32/timestr.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- timestr.c	2000/11/09 06:50:16	1.12
  +++ timestr.c	2001/01/18 20:07:38	1.13
  @@ -64,7 +64,7 @@
       "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
   };
   
  -apr_status_t apr_rfc822_date(char *date_str, apr_time_t t)
  +APR_DECLARE(apr_status_t) apr_rfc822_date(char *date_str, apr_time_t t)
   {
       apr_exploded_time_t xt;
       const char *s;
  @@ -112,7 +112,7 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_ctime(char *date_str, apr_time_t t)
  +APR_DECLARE(apr_status_t) apr_ctime(char *date_str, apr_time_t t)
   {
       apr_exploded_time_t xt;
       const char *s;
  @@ -154,8 +154,9 @@
       return APR_SUCCESS;
   }
   
  -apr_status_t apr_strftime(char *s, apr_size_t *retsize, apr_size_t max, 
  -                        const char *format, apr_exploded_time_t *xt)
  +APR_DECLARE(apr_status_t) apr_strftime(char *s, apr_size_t *retsize,
  +                                       apr_size_t max, const char *format,
  +                                       apr_exploded_time_t *xt)
   {
       struct tm tm;
       memset(&tm, 0, sizeof tm);
  
  
  

Mime
View raw message