jfclere 2004/07/13 06:58:10 Modified: jk/native/common jk_global.h jk_util.c jk_version.h Log: Use portable.h to detect snprint() and vsnprintf(). Add replacement code for them when they are not available. Revision Changes Path 1.29 +20 -2 jakarta-tomcat-connectors/jk/native/common/jk_global.h Index: jk_global.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_global.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- jk_global.h 24 Feb 2004 08:45:47 -0000 1.28 +++ jk_global.h 13 Jul 2004 13:58:10 -0000 1.29 @@ -24,6 +24,8 @@ #ifndef JK_GLOBAL_H #define JK_GLOBAL_H +#include "portable.h" + #include "jk_version.h" #include <stdio.h> @@ -179,12 +181,28 @@ #ifdef WIN32 /* For WIN32, emulate gettimeofday() using _ftime() */ #define gettimeofday(tv,tz) { struct _timeb tb; _ftime(&tb); (tv)->tv_sec = tb.time; (tv)->tv_usec = tb.millitm * 1000; } +#ifdef HAVE_APR +#define snprintf apr_snprintf +#define vsnprintf apr_vsnprintf +#else /* define snprint to match windows version */ #define snprintf _snprintf -/* define vsnprint to match windows version */ #define vsnprintf _vsnprintf #endif +#endif + +/* Use apr snprintf() and vsnprintf() when needed */ +#if defined(HAVE_APR) +#if !defined(HAVE_SNPRINTF) +#define snprintf apr_snprintf +#endif +#if !defined(HAVE_VSNPRINTF) +#define vsnprintf apr_vsnprintf +#endif +#endif +/* XXXX There is a snprintf() and vsnprintf() in jk_util.c */ +/* if those work remove the #define. */ #if defined(NETWARE) || defined(AS400) #define USE_SPRINTF #define USE_VSPRINTF 1.28 +41 -1 jakarta-tomcat-connectors/jk/native/common/jk_util.c Index: jk_util.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_util.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- jk_util.c 24 Feb 2004 08:45:48 -0000 1.27 +++ jk_util.c 13 Jul 2004 13:58:10 -0000 1.28 @@ -94,6 +94,46 @@ strftime(str, len, jk_log_fmt, tms); } +/* Write at most n characters to the buffer in str, return the + * number of chars written or -1 if the buffer would have been + * overflowed. + * + * This is portable to any POSIX-compliant system that has /dev/null + */ +#if !defined(HAVE_VSNPRINTF) && !defined(HAVE_APR) +static FILE *f=NULL; +int vsnprintf( char *str, size_t n, const char *fmt, va_list ap ) +{ + int res; + + if (f == NULL) + f = fopen("/dev/null","w"); + if (f == NULL) + return -1; + + setvbuf( f, str, _IOFBF, n ); + + res = vfprintf( f, fmt, ap ); + + if ( res > 0 && res < n ) { + res = vsprintf( str, fmt, ap ); + } + return res; +} +#endif +#if !defined(HAVE_SNPRINTF) && !defined(HAVE_APR) +int snprintf( char *str, size_t n, const char *fmt, ... ) +{ + va_list ap; + int res; + + va_start( ap, fmt ); + res = vsnprintf( str, n, fmt, ap ); + va_end( ap ); + return res; +} +#endif + static int JK_METHOD log_to_file(jk_logger_t *l, int level, const char *what) 1.18 +6 -4 jakarta-tomcat-connectors/jk/native/common/jk_version.h Index: jk_version.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_version.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- jk_version.h 24 Feb 2004 08:45:46 -0000 1.17 +++ jk_version.h 13 Jul 2004 13:58:10 -0000 1.18 @@ -16,7 +16,6 @@ /*************************************************************************** * Description: JK version header file * - * Author: Jean-Frederic Clere <[EMAIL PROTECTED]> * * Version: $Revision$ * ***************************************************************************/ @@ -36,9 +35,12 @@ #define JK_VERISRELEASE 0 /************** END OF AREA TO MODIFY BEFORE RELEASING *************/ -#define PACKAGE "mod_jk/" +#if !defined(PACKAGE) +#define PACKAGE "mod_jk" +#endif + /* Build JK_EXPOSED_VERSION and JK_VERSION */ -#define JK_EXPOSED_VERSION_INT PACKAGE JK_VERSTRING +#define JK_EXPOSED_VERSION_INT PACKAGE "/" JK_VERSTRING #if ( JK_VERISRELEASE == 1 ) #define JK_RELEASE_STR JK_EXPOSED_VERSION_INT
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]