[m-dev.] for review: detect _vsnprintf

Peter Ross peter.ross at miscrit.be
Fri Aug 11 23:46:43 AEST 2000


This really should have been a diff, but I was having such a bad day I
posted it for review, just in case.

On Thu, Aug 10, 2000 at 12:45:11PM +0200, Peter Ross wrote:
> Hi,
> 
> 
> ===================================================================
> 
> 
> Estimated hours taken: 0.5
> 
> Check for the availability of _vsnprintf.
> 
> configure.in:
> 	Check for the availability of _vsnprintf.
> 
> runtime/mercury_conf.h.in:
> 	Define HAVE__VSNPRINTF.
> 
> runtime/mercury_string.c:
> 	If vsnprintf isn't available and _vsnprintf is, use _vsnprintf
> 	in place of vsnprintf.
> 
> 
> Index: configure.in
> ===================================================================
> RCS file: /home/mercury1/repository/mercury/configure.in,v
> retrieving revision 1.215
> diff -u -r1.215 configure.in
> --- configure.in	2000/08/10 09:01:14	1.215
> +++ configure.in	2000/08/10 10:41:29
> @@ -297,7 +297,7 @@
>  esac
>  AC_HAVE_FUNCS(sysconf getpagesize memalign mprotect sigaction setitimer)
>  AC_HAVE_FUNCS(strerror memmove fileno fdopen fstat)
> -AC_HAVE_FUNCS(vsnprintf)
> +AC_HAVE_FUNCS(vsnprintf _vsnprintf)
>  #-----------------------------------------------------------------------------#
>  AC_CHECK_HEADER(unistd.h, HAVE_UNISTD_H=1)
>  if test "$HAVE_UNISTD_H" = 1; then
> Index: runtime/mercury_conf.h.in
> ===================================================================
> RCS file: /home/mercury1/repository/mercury/runtime/mercury_conf.h.in,v
> retrieving revision 1.29
> diff -u -r1.29 mercury_conf.h.in
> --- runtime/mercury_conf.h.in	2000/08/10 09:01:17	1.29
> +++ runtime/mercury_conf.h.in	2000/08/10 10:41:35
> @@ -140,6 +140,7 @@
>  ** system call is available:
>  **
>  **	HAVE_VSNPRINTF 		we have the vsnprintf() function.
> +**	HAVE__VSNPRINTF 	we have the _vsnprintf() function.
>  **	HAVE_SYSCONF     	we have the sysconf() system call.
>  **	HAVE_SIGACTION		we have the sigaction() system call.
>  **	HAVE_GETPAGESIZE 	we have the getpagesize() system call.
> @@ -160,6 +161,7 @@
>  **				#if defined(fileno) || defined(HAVE_FILENO)
>  */
>  #undef	HAVE_VSNPRINTF
> +#undef	HAVE__VSNPRINTF
>  #undef	HAVE_SYSCONF
>  #undef	HAVE_SIGACTION
>  #undef	HAVE_GETPAGESIZE
> Index: runtime/mercury_string.c
> ===================================================================
> RCS file: /home/mercury1/repository/mercury/runtime/mercury_string.c,v
> retrieving revision 1.4
> diff -u -r1.4 mercury_string.c
> --- runtime/mercury_string.c	2000/08/10 09:37:32	1.4
> +++ runtime/mercury_string.c	2000/08/10 10:41:39
> @@ -9,13 +9,17 @@
>  #include "mercury_imp.h"
>  #include "mercury_string.h"
>  
> +#if defined(HAVE__VSNPRINTF) && ! defined(HAVE_VSNPRINTF)
> +  #define vsnprintf	_vsnprintf
> +#endif
> +
>  MR_String
>  MR_make_string(MR_Code *proclabel, const char *fmt, ...) {
>  	va_list		ap;
>  	MR_String	result;
>  	int 		n;
>  
> -#ifdef HAVE_VSNPRINTF
> +#if defined(HAVE_VSNPRINTF) || defined(HAVE__VSNPRINTF)
>  	/* Guess that 100 bytes should be sufficient */
>  	int 		size = 100;
>  	char		*p;
> 
> --------------------------------------------------------------------------
> mercury-developers mailing list
> Post messages to:       mercury-developers at cs.mu.oz.au
> Administrative Queries: owner-mercury-developers at cs.mu.oz.au
> Subscriptions:          mercury-developers-request at cs.mu.oz.au
> --------------------------------------------------------------------------
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list