view m4/snprintf-posix.m4 @ 40177:dcd889592b62

dtoastr,ftoastr,ldtoastr: port to c-strtod changes Decouple these modules from c-strtod. Nowadays it’s reasonable to assume the C99 signatures for strtod and strtold. Programs that require stricter adherence to C99 should also use the strtod and strtold modules as needed, and we no longer need the HAVE_C99_STRTOLD macro. * NEWS: Mention this. * lib/ftoastr.c (STRTOF) [LENGTH == 3]: Assume strtold. * m4/c-strtod.m4 (gl_C_STRTOLD): Do not define HAVE_C99_STRTOLD. * modules/dtoastr, modules/ftoastr, modules/ldtoastr: (Files): Remove m4/c-strtod.m4. (configure.ac): Do not require gl_C99_STRTOLD, which no longer exists.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 02 Feb 2019 13:01:55 -0800
parents b06060465f09
children
line wrap: on
line source

# snprintf-posix.m4 serial 14
dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

AC_DEFUN([gl_FUNC_SNPRINTF_POSIX],
[
  AC_REQUIRE([gl_PRINTF_SIZES_C99])
  AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
  AC_REQUIRE([gl_PRINTF_INFINITE])
  AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
  AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
  AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
  AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
  AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS])
  AC_REQUIRE([gl_PRINTF_POSITIONS])
  AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
  AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
  AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
  AC_REQUIRE([gl_PRINTF_PRECISION])
  AC_REQUIRE([gl_PRINTF_ENOMEM])
  gl_cv_func_snprintf_posix=no
  AC_CHECK_FUNCS([snprintf])
  if test $ac_cv_func_snprintf = yes; then
    gl_SNPRINTF_TRUNCATION_C99
    gl_SNPRINTF_RETVAL_C99
    gl_SNPRINTF_DIRECTIVE_N
    gl_SNPRINTF_SIZE1
    gl_VSNPRINTF_ZEROSIZE_C99
    case "$gl_cv_func_printf_sizes_c99" in
      *yes)
        case "$gl_cv_func_printf_long_double" in
          *yes)
            case "$gl_cv_func_printf_infinite" in
              *yes)
                case "$gl_cv_func_printf_infinite_long_double" in
                  *yes)
                    case "$gl_cv_func_printf_directive_a" in
                      *yes)
                        case "$gl_cv_func_printf_directive_f" in
                          *yes)
                            case "$gl_cv_func_printf_directive_n" in
                              *yes)
                                case "$gl_cv_func_printf_directive_ls" in
                                  *yes)
                                    case "$gl_cv_func_printf_positions" in
                                      *yes)
                                        case "$gl_cv_func_printf_flag_grouping" in
                                          *yes)
                                            case "$gl_cv_func_printf_flag_leftadjust" in
                                              *yes)
                                                case "$gl_cv_func_printf_flag_zero" in
                                                  *yes)
                                                    case "$gl_cv_func_printf_precision" in
                                                      *yes)
                                                        case "$gl_cv_func_printf_enomem" in
                                                          *yes)
                                                            case "$gl_cv_func_snprintf_truncation_c99" in
                                                              *yes)
                                                                case "$gl_cv_func_snprintf_retval_c99" in
                                                                  *yes)
                                                                    case "$gl_cv_func_snprintf_directive_n" in
                                                                      *yes)
                                                                        case "$gl_cv_func_snprintf_size1" in
                                                                          *yes)
                                                                            case "$gl_cv_func_vsnprintf_zerosize_c99" in
                                                                              *yes)
                                                                                # snprintf exists and is
                                                                                # already POSIX compliant.
                                                                                gl_cv_func_snprintf_posix=yes
                                                                                ;;
                                                                            esac
                                                                            ;;
                                                                        esac
                                                                        ;;
                                                                    esac
                                                                    ;;
                                                                esac
                                                                ;;
                                                            esac
                                                            ;;
                                                        esac
                                                        ;;
                                                    esac
                                                    ;;
                                                esac
                                                ;;
                                            esac
                                            ;;
                                        esac
                                        ;;
                                    esac
                                    ;;
                                esac
                                ;;
                            esac
                            ;;
                        esac
                        ;;
                    esac
                    ;;
                esac
                ;;
            esac
            ;;
        esac
        ;;
    esac
  fi
  if test $gl_cv_func_snprintf_posix = no; then
    gl_PREREQ_VASNPRINTF_LONG_DOUBLE
    gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
    gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
    gl_PREREQ_VASNPRINTF_DIRECTIVE_A
    gl_PREREQ_VASNPRINTF_DIRECTIVE_F
    gl_PREREQ_VASNPRINTF_DIRECTIVE_LS
    gl_PREREQ_VASNPRINTF_FLAG_GROUPING
    gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
    gl_PREREQ_VASNPRINTF_FLAG_ZERO
    gl_PREREQ_VASNPRINTF_PRECISION
    gl_PREREQ_VASNPRINTF_ENOMEM
    gl_REPLACE_VASNPRINTF
    gl_REPLACE_SNPRINTF
  fi
])