Blame m4/vsnprintf.m4

Packit aea12f
# vsnprintf.m4 serial 7
Packit aea12f
dnl Copyright (C) 2002-2004, 2007-2019 Free Software Foundation, Inc.
Packit aea12f
dnl This file is free software; the Free Software Foundation
Packit aea12f
dnl gives unlimited permission to copy and/or distribute it,
Packit aea12f
dnl with or without modifications, as long as this notice is preserved.
Packit aea12f
Packit aea12f
dnl Libintl 0.17 will replace vsnprintf only if it does not support %1$s,
Packit aea12f
dnl but defers to any gnulib vsnprintf replacements.  Therefore, gnulib
Packit aea12f
dnl must guarantee that the decision for replacing vsnprintf is a superset
Packit aea12f
dnl of the reasons checked by libintl.
Packit aea12f
AC_DEFUN([gl_FUNC_VSNPRINTF],
Packit aea12f
[
Packit aea12f
  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
Packit aea12f
  gl_cv_func_vsnprintf_usable=no
Packit aea12f
  AC_CHECK_FUNCS([vsnprintf])
Packit aea12f
  if test $ac_cv_func_vsnprintf = yes; then
Packit aea12f
    gl_SNPRINTF_SIZE1
Packit aea12f
    case "$gl_cv_func_snprintf_size1" in
Packit aea12f
      *yes)
Packit aea12f
        gl_SNPRINTF_RETVAL_C99
Packit aea12f
        case "$gl_cv_func_snprintf_retval_c99" in
Packit aea12f
          *yes)
Packit aea12f
            gl_PRINTF_POSITIONS
Packit aea12f
            case "$gl_cv_func_printf_positions" in
Packit aea12f
              *yes)
Packit aea12f
                gl_cv_func_vsnprintf_usable=yes
Packit aea12f
                ;;
Packit aea12f
            esac
Packit aea12f
            ;;
Packit aea12f
        esac
Packit aea12f
        ;;
Packit aea12f
    esac
Packit aea12f
  fi
Packit aea12f
  if test $gl_cv_func_vsnprintf_usable = no; then
Packit aea12f
    gl_REPLACE_VSNPRINTF
Packit aea12f
  fi
Packit aea12f
  AC_CHECK_DECLS_ONCE([vsnprintf])
Packit aea12f
  if test $ac_cv_have_decl_vsnprintf = no; then
Packit aea12f
    HAVE_DECL_VSNPRINTF=0
Packit aea12f
  fi
Packit aea12f
])
Packit aea12f
Packit aea12f
AC_DEFUN([gl_REPLACE_VSNPRINTF],
Packit aea12f
[
Packit aea12f
  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
Packit aea12f
  AC_LIBOBJ([vsnprintf])
Packit aea12f
  if test $ac_cv_func_vsnprintf = yes; then
Packit aea12f
    REPLACE_VSNPRINTF=1
Packit aea12f
  else
Packit aea12f
    AC_CHECK_DECLS_ONCE([vsnprintf])
Packit aea12f
    if test $ac_cv_have_decl_vsnprintf = yes; then
Packit aea12f
      dnl If the function is declared but does not appear to exist, it may be
Packit aea12f
      dnl defined as an inline function. In order to avoid a conflict, we have
Packit aea12f
      dnl to define rpl_vsnprintf, not vsnprintf.
Packit aea12f
      REPLACE_VSNPRINTF=1
Packit aea12f
    fi
Packit aea12f
  fi
Packit aea12f
  gl_PREREQ_VSNPRINTF
Packit aea12f
])
Packit aea12f
Packit aea12f
# Prerequisites of lib/vsnprintf.c.
Packit aea12f
AC_DEFUN([gl_PREREQ_VSNPRINTF], [:])