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