Home | History | Annotate | Download | only in m4
      1 # vsnprintf-posix.m4 serial 15
      2 dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
      3 dnl This file is free software; the Free Software Foundation
      4 dnl gives unlimited permission to copy and/or distribute it,
      5 dnl with or without modifications, as long as this notice is preserved.
      6 
      7 AC_DEFUN([gl_FUNC_VSNPRINTF_POSIX],
      8 [
      9   AC_REQUIRE([gl_PRINTF_SIZES_C99])
     10   AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
     11   AC_REQUIRE([gl_PRINTF_INFINITE])
     12   AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
     13   AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
     14   AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
     15   AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
     16   AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS])
     17   AC_REQUIRE([gl_PRINTF_POSITIONS])
     18   AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
     19   AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
     20   AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
     21   AC_REQUIRE([gl_PRINTF_PRECISION])
     22   AC_REQUIRE([gl_PRINTF_ENOMEM])
     23   gl_cv_func_vsnprintf_posix=no
     24   AC_CHECK_FUNCS([vsnprintf])
     25   if test $ac_cv_func_vsnprintf = yes; then
     26     dnl These tests use vsnprintf() if snprintf() does not exist.
     27     gl_SNPRINTF_TRUNCATION_C99
     28     gl_SNPRINTF_RETVAL_C99
     29     gl_SNPRINTF_DIRECTIVE_N
     30     gl_SNPRINTF_SIZE1
     31     gl_VSNPRINTF_ZEROSIZE_C99
     32     case "$gl_cv_func_printf_sizes_c99" in
     33       *yes)
     34         case "$gl_cv_func_printf_long_double" in
     35           *yes)
     36             case "$gl_cv_func_printf_infinite" in
     37               *yes)
     38                 case "$gl_cv_func_printf_infinite_long_double" in
     39                   *yes)
     40                     case "$gl_cv_func_printf_directive_a" in
     41                       *yes)
     42                         case "$gl_cv_func_printf_directive_f" in
     43                           *yes)
     44                             case "$gl_cv_func_printf_directive_n" in
     45                               *yes)
     46                                 case "$gl_cv_func_printf_directive_ls" in
     47                                   *yes)
     48                                     case "$gl_cv_func_printf_positions" in
     49                                       *yes)
     50                                         case "$gl_cv_func_printf_flag_grouping" in
     51                                           *yes)
     52                                             case "$gl_cv_func_printf_flag_leftadjust" in
     53                                               *yes)
     54                                                 case "$gl_cv_func_printf_flag_zero" in
     55                                                   *yes)
     56                                                     case "$gl_cv_func_printf_precision" in
     57                                                       *yes)
     58                                                         case "$gl_cv_func_printf_enomem" in
     59                                                           *yes)
     60                                                             case "$gl_cv_func_snprintf_truncation_c99" in
     61                                                               *yes)
     62                                                                 case "$gl_cv_func_snprintf_retval_c99" in
     63                                                                   *yes)
     64                                                                     case "$gl_cv_func_snprintf_directive_n" in
     65                                                                       *yes)
     66                                                                         case "$gl_cv_func_snprintf_size1" in
     67                                                                           *yes)
     68                                                                             case "$gl_cv_func_vsnprintf_zerosize_c99" in
     69                                                                               *yes)
     70                                                                                 # vsnprintf exists and is
     71                                                                                 # already POSIX compliant.
     72                                                                                 gl_cv_func_vsnprintf_posix=yes
     73                                                                                 ;;
     74                                                                             esac
     75                                                                             ;;
     76                                                                         esac
     77                                                                         ;;
     78                                                                     esac
     79                                                                     ;;
     80                                                                 esac
     81                                                                 ;;
     82                                                             esac
     83                                                             ;;
     84                                                         esac
     85                                                         ;;
     86                                                     esac
     87                                                     ;;
     88                                                 esac
     89                                                 ;;
     90                                             esac
     91                                             ;;
     92                                         esac
     93                                         ;;
     94                                     esac
     95                                     ;;
     96                                 esac
     97                                 ;;
     98                             esac
     99                             ;;
    100                         esac
    101                         ;;
    102                     esac
    103                     ;;
    104                 esac
    105                 ;;
    106             esac
    107             ;;
    108         esac
    109         ;;
    110     esac
    111   fi
    112   if test $gl_cv_func_vsnprintf_posix = no; then
    113     gl_PREREQ_VASNPRINTF_LONG_DOUBLE
    114     gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
    115     gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
    116     gl_PREREQ_VASNPRINTF_DIRECTIVE_A
    117     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
    118     gl_PREREQ_VASNPRINTF_DIRECTIVE_LS
    119     gl_PREREQ_VASNPRINTF_FLAG_GROUPING
    120     gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
    121     gl_PREREQ_VASNPRINTF_FLAG_ZERO
    122     gl_PREREQ_VASNPRINTF_PRECISION
    123     gl_PREREQ_VASNPRINTF_ENOMEM
    124     gl_REPLACE_VASNPRINTF
    125     gl_REPLACE_VSNPRINTF
    126   fi
    127 ])
    128