Home | History | Annotate | Download | only in m4
      1 # snprintf-posix.m4 serial 14
      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_SNPRINTF_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_snprintf_posix=no
     24   AC_CHECK_FUNCS([snprintf])
     25   if test $ac_cv_func_snprintf = yes; then
     26     gl_SNPRINTF_TRUNCATION_C99
     27     gl_SNPRINTF_RETVAL_C99
     28     gl_SNPRINTF_DIRECTIVE_N
     29     gl_SNPRINTF_SIZE1
     30     gl_VSNPRINTF_ZEROSIZE_C99
     31     case "$gl_cv_func_printf_sizes_c99" in
     32       *yes)
     33         case "$gl_cv_func_printf_long_double" in
     34           *yes)
     35             case "$gl_cv_func_printf_infinite" in
     36               *yes)
     37                 case "$gl_cv_func_printf_infinite_long_double" in
     38                   *yes)
     39                     case "$gl_cv_func_printf_directive_a" in
     40                       *yes)
     41                         case "$gl_cv_func_printf_directive_f" in
     42                           *yes)
     43                             case "$gl_cv_func_printf_directive_n" in
     44                               *yes)
     45                                 case "$gl_cv_func_printf_directive_ls" in
     46                                   *yes)
     47                                     case "$gl_cv_func_printf_positions" in
     48                                       *yes)
     49                                         case "$gl_cv_func_printf_flag_grouping" in
     50                                           *yes)
     51                                             case "$gl_cv_func_printf_flag_leftadjust" in
     52                                               *yes)
     53                                                 case "$gl_cv_func_printf_flag_zero" in
     54                                                   *yes)
     55                                                     case "$gl_cv_func_printf_precision" in
     56                                                       *yes)
     57                                                         case "$gl_cv_func_printf_enomem" in
     58                                                           *yes)
     59                                                             case "$gl_cv_func_snprintf_truncation_c99" in
     60                                                               *yes)
     61                                                                 case "$gl_cv_func_snprintf_retval_c99" in
     62                                                                   *yes)
     63                                                                     case "$gl_cv_func_snprintf_directive_n" in
     64                                                                       *yes)
     65                                                                         case "$gl_cv_func_snprintf_size1" in
     66                                                                           *yes)
     67                                                                             case "$gl_cv_func_vsnprintf_zerosize_c99" in
     68                                                                               *yes)
     69                                                                                 # snprintf exists and is
     70                                                                                 # already POSIX compliant.
     71                                                                                 gl_cv_func_snprintf_posix=yes
     72                                                                                 ;;
     73                                                                             esac
     74                                                                             ;;
     75                                                                         esac
     76                                                                         ;;
     77                                                                     esac
     78                                                                     ;;
     79                                                                 esac
     80                                                                 ;;
     81                                                             esac
     82                                                             ;;
     83                                                         esac
     84                                                         ;;
     85                                                     esac
     86                                                     ;;
     87                                                 esac
     88                                                 ;;
     89                                             esac
     90                                             ;;
     91                                         esac
     92                                         ;;
     93                                     esac
     94                                     ;;
     95                                 esac
     96                                 ;;
     97                             esac
     98                             ;;
     99                         esac
    100                         ;;
    101                     esac
    102                     ;;
    103                 esac
    104                 ;;
    105             esac
    106             ;;
    107         esac
    108         ;;
    109     esac
    110   fi
    111   if test $gl_cv_func_snprintf_posix = no; then
    112     gl_PREREQ_VASNPRINTF_LONG_DOUBLE
    113     gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
    114     gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
    115     gl_PREREQ_VASNPRINTF_DIRECTIVE_A
    116     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
    117     gl_PREREQ_VASNPRINTF_DIRECTIVE_LS
    118     gl_PREREQ_VASNPRINTF_FLAG_GROUPING
    119     gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
    120     gl_PREREQ_VASNPRINTF_FLAG_ZERO
    121     gl_PREREQ_VASNPRINTF_PRECISION
    122     gl_PREREQ_VASNPRINTF_ENOMEM
    123     gl_REPLACE_VASNPRINTF
    124     gl_REPLACE_SNPRINTF
    125   fi
    126 ])
    127