1dnl $Id$ 2dnl 3AC_DEFUN([AC_BROKEN_SNPRINTF], [ 4AC_CACHE_CHECK(for working snprintf,ac_cv_func_snprintf_working, 5ac_cv_func_snprintf_working=yes 6AC_RUN_IFELSE([AC_LANG_SOURCE([[ 7#include <stdio.h> 8#include <string.h> 9int main(int argc, char **argv) 10{ 11 char foo[[3]]; 12 snprintf(foo, 2, "12"); 13 return strcmp(foo, "1") || snprintf(NULL, 0, "%d", 12) != 2; 14}]])],[:],[ac_cv_func_snprintf_working=no],[:])) 15 16if test "$ac_cv_func_snprintf_working" = yes; then 17 AC_DEFINE_UNQUOTED(HAVE_SNPRINTF, 1, [define if you have a working snprintf]) 18fi 19if test "$ac_cv_func_snprintf_working" = yes; then 20AC_NEED_PROTO([#include <stdio.h>],snprintf) 21fi 22]) 23 24AC_DEFUN([AC_BROKEN_VSNPRINTF],[ 25AC_CACHE_CHECK(for working vsnprintf,ac_cv_func_vsnprintf_working, 26ac_cv_func_vsnprintf_working=yes 27AC_RUN_IFELSE([AC_LANG_SOURCE([[ 28#include <stdio.h> 29#include <string.h> 30#include <stdarg.h> 31 32int foo(int num, ...) 33{ 34 char bar[[3]]; 35 va_list arg; 36 va_start(arg, num); 37 vsnprintf(bar, 2, "%s", arg); 38 va_end(arg); 39 return strcmp(bar, "1"); 40} 41 42int bar(int num, int len, ...) 43{ 44 int r; 45 va_list arg; 46 va_start(arg, len); 47 r = vsnprintf(NULL, 0, "%s", arg); 48 va_end(arg); 49 return r != len; 50} 51 52int main(int argc, char **argv) 53{ 54 return foo(0, "12") || bar(0, 2, "12"); 55}]])],[:],[ac_cv_func_vsnprintf_working=no],[:])) 56 57if test "$ac_cv_func_vsnprintf_working" = yes; then 58 AC_DEFINE_UNQUOTED(HAVE_VSNPRINTF, 1, [define if you have a working vsnprintf]) 59fi 60if test "$ac_cv_func_vsnprintf_working" = yes; then 61AC_NEED_PROTO([#include <stdio.h>],vsnprintf) 62fi 63]) 64