dnl -------------------------------------------------------------------------- dnl PA_FUNC_VSNPRINTF dnl dnl See if we have [_]vsnprintf(), using the proper prototypes in case dnl it is a builtin of some kind. dnl -------------------------------------------------------------------------- AC_DEFUN([PA_FUNC_VSNPRINTF], [AC_CACHE_CHECK([for vsnprintf], [pa_cv_func_vsnprintf], [pa_cv_func_vsnprintf=no for pa_try_func_vsnprintf in vsnprintf _vsnprintf do AS_IF([test $pa_cv_func_vsnprintf = no], [AC_LINK_IFELSE([AC_LANG_SOURCE([ AC_INCLUDES_DEFAULT const char *vsnprintf_test(const char *fmt, va_list va); const char *vsnprintf_test(const char *fmt, va_list va) { static char buf[[256]]; size_t sz; sz = $pa_try_func_vsnprintf(buf, sizeof buf, fmt, va); return (sz < sizeof buf) ? buf : NULL; } const char *vsnprintf_caller(const char *fmt, ...); const char *vsnprintf_caller(const char *fmt, ...) { const char *what; va_list va; va_start(va, fmt); what = vsnprintf_test(fmt, va); va_end(va); return what; } int main(void) { puts(vsnprintf_caller("Hello = %d", 33)); return 0; } ])], [pa_cv_func_vsnprintf=$pa_try_func_vsnprintf])]) done ]) AS_IF([test $pa_cv_func_vsnprintf = no], [], [AC_DEFINE([HAVE_VSNPRINTF], 1, [Define to 1 if you have some version of the vsnprintf function.]) AS_IF([test $pa_cv_func_vsnprintf = vsnprintf], [], [AC_DEFINE_UNQUOTED([vsnprintf], [$pa_cv_func_vsnprintf], [Define if your vsnprintf function is not named vsnprintf.])])])])