diff options
Diffstat (limited to 'm4/ac_func_snprintf.m4')
-rw-r--r-- | m4/ac_func_snprintf.m4 | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/m4/ac_func_snprintf.m4 b/m4/ac_func_snprintf.m4 deleted file mode 100644 index 3b1d43a..0000000 --- a/m4/ac_func_snprintf.m4 +++ /dev/null @@ -1,73 +0,0 @@ -dnl From http://autoconf-archive.cryp.to/ - -dnl @synopsis AC_FUNC_SNPRINTF -dnl -dnl Checks for a fully C99 compliant snprintf, in particular checks -dnl whether it does bounds checking and returns the correct string -dnl length; does the same check for vsnprintf. If no working snprintf -dnl or vsnprintf is found, request a replacement and warn the user -dnl about it. Note: the mentioned replacement is freely available and -dnl may be used in any project regardless of it's licence (just like -dnl the autoconf special exemption). -dnl -dnl @category C -dnl @author Rüdiger Kuhlmann <info@ruediger-kuhlmann.de> -dnl @version 2002-09-26 -dnl @license AllPermissive - -AC_DEFUN([AC_FUNC_SNPRINTF], -[AC_CHECK_FUNCS(snprintf vsnprintf) -AC_MSG_CHECKING(for working snprintf) -AC_CACHE_VAL(ac_cv_have_working_snprintf, -[AC_TRY_RUN( -[#include <stdio.h> - -int main(void) -{ - char bufs[5] = { 'x', 'x', 'x', '\0', '\0' }; - char bufd[5] = { 'x', 'x', 'x', '\0', '\0' }; - int i; - i = snprintf (bufs, 2, "%s", "111"); - if (strcmp (bufs, "1")) exit (1); - if (i != 3) exit (1); - i = snprintf (bufd, 2, "%d", 111); - if (strcmp (bufd, "1")) exit (1); - if (i != 3) exit (1); - exit(0); -}], ac_cv_have_working_snprintf=yes, ac_cv_have_working_snprintf=no, ac_cv_have_working_snprintf=cross)]) -AC_MSG_RESULT([$ac_cv_have_working_snprintf]) -AC_MSG_CHECKING(for working vsnprintf) -AC_CACHE_VAL(ac_cv_have_working_vsnprintf, -[AC_TRY_RUN( -[#include <stdio.h> -#include <stdarg.h> - -int my_vsnprintf (char *buf, const char *tmpl, ...) -{ - int i; - va_list args; - va_start (args, tmpl); - i = vsnprintf (buf, 2, tmpl, args); - va_end (args); - return i; -} - -int main(void) -{ - char bufs[5] = { 'x', 'x', 'x', '\0', '\0' }; - char bufd[5] = { 'x', 'x', 'x', '\0', '\0' }; - int i; - i = my_vsnprintf (bufs, "%s", "111"); - if (strcmp (bufs, "1")) exit (1); - if (i != 3) exit (1); - i = my_vsnprintf (bufd, "%d", 111); - if (strcmp (bufd, "1")) exit (1); - if (i != 3) exit (1); - exit(0); -}], ac_cv_have_working_vsnprintf=yes, ac_cv_have_working_vsnprintf=no, ac_cv_have_working_vsnprintf=cross)]) -AC_MSG_RESULT([$ac_cv_have_working_vsnprintf]) -if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes"; then - AC_LIBOBJ(snprintf) - AC_MSG_WARN([Will use fallback (v)snprintf() implementation.]) - AC_DEFINE(PREFER_PORTABLE_SNPRINTF, 1, "enable replacement (v)snprintf if system (v)snprintf is broken") -fi]) |