[EMAIL PROTECTED] writes:

> martin      01/02/21 07:51:43
> 
>   Modified:    include  apr_general.h
>                file_io/unix Makefile.in
>                .        configure.in
>   Added:       file_io/unix mktemp.c
>   Log:
>   Add mktemp() and mkstemp() emulation for systems which don't have it.
>   Jean-Frederic writes:
>    I have tested Apache2.0 with a ReliantUNIX machine. This machine has a
>    SVR4 Unix implementation.
>    To compile correctly the -DXTI_SUPPORT should be added to CFLAGS (I have
>    done it when calling configure), and I have added a mkstemp() because it
>    is not in the default runtime library.
>    I have reused and enhanced an mkstemp() routine from FreeBSD. Find
>    enclosed the needed patch to test for mkstemp() and to use ap_mkstemp()
>    when needed.
>   
>   Submitted by:       Jean-Frederic Clere <[EMAIL PROTECTED]>
>   
>   Revision  Changes    Path
>   1.53      +6 -0      apr/include/apr_general.h
>   
>   Index: apr_general.h
>   ===================================================================
>   RCS file: /home/cvs/apr/include/apr_general.h,v
>   retrieving revision 1.52
>   retrieving revision 1.53
>   diff -u -u -r1.52 -r1.53
>   --- apr_general.h   2001/02/16 04:15:44     1.52
>   +++ apr_general.h   2001/02/21 15:51:42     1.53
>   @@ -143,6 +143,12 @@
>    #define memmove(a,b,c) bcopy(b,a,c)
>    #endif
>    
>   +#if (!HAVE_MKSTEMP)
>   +#define mkstemp(a) ap_mkstemp(a)
>   +#define mkstemps(a,b) ap_mkstemp(a,b)
>   +#define mkdtemp(a) ap_mkdtemp(a)
>   +#endif

I guess I missed my chance to comment before :)  I'll take this
opportunity to raise a few issues, particularly since this breaks the
Tru64 (and probably other platforms) build.

If APR wants to provide a wrapper for mkstemp() which works
everywhere, that is cool, but the interface has to be namespace
protected.   I don't think this stuff goes in apr_general.h.

Unless somebody disagrees, I'm going to trim down the usage a bit for
now.  I'll get the stuff out of apr_general.h.  We detect whether or
not there is mkstemp().  If not then the code in  mktemp.c will be
exposed.  If the system already has mkstemp(), then the code in
mktemp.c will be hidden and we don't risk compile breakage (it looks
pretty fragile to me).

To expose it properly as an APR API, we'd need a little doc in
apr_file_io.h (I guess).  Also, we'd need to decide whether
apr_mkstemp() is always a function or is a macro on systems which
provide mkstemp(). 

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

Reply via email to