Fix *printf behaviour in out-of-memory situations on MacOS X and *BSD.
[gnulib.git] / m4 / vsnprintf-posix.m4
index a4855f3..aaf5d2c 100644 (file)
@@ -1,4 +1,4 @@
-# vsnprintf-posix.m4 serial 8
+# vsnprintf-posix.m4 serial 9
 dnl Copyright (C) 2007 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -17,6 +17,7 @@ AC_DEFUN([gl_FUNC_VSNPRINTF_POSIX],
   AC_REQUIRE([gl_PRINTF_POSITIONS])
   AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
   AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
+  AC_REQUIRE([gl_PRINTF_ENOMEM])
   gl_cv_func_vsnprintf_posix=no
   AC_CHECK_FUNCS([vsnprintf])
   if test $ac_cv_func_vsnprintf = yes; then
@@ -45,17 +46,21 @@ AC_DEFUN([gl_FUNC_VSNPRINTF_POSIX],
                                       *yes)
                                         case "$gl_cv_func_printf_flag_zero" in
                                           *yes)
-                                            case "$gl_cv_func_snprintf_truncation_c99" in
+                                            case "$gl_cv_func_printf_enomem" in
                                               *yes)
-                                                case "$gl_cv_func_snprintf_retval_c99" in
+                                                case "$gl_cv_func_snprintf_truncation_c99" in
                                                   *yes)
-                                                    case "$gl_cv_func_snprintf_directive_n" in
+                                                    case "$gl_cv_func_snprintf_retval_c99" in
                                                       *yes)
-                                                        case "$gl_cv_func_vsnprintf_zerosize_c99" in
+                                                        case "$gl_cv_func_snprintf_directive_n" in
                                                           *yes)
-                                                            # vsnprintf exists and is
-                                                            # already POSIX compliant.
-                                                            gl_cv_func_vsnprintf_posix=yes
+                                                            case "$gl_cv_func_vsnprintf_zerosize_c99" in
+                                                              *yes)
+                                                                # vsnprintf exists and is
+                                                                # already POSIX compliant.
+                                                                gl_cv_func_vsnprintf_posix=yes
+                                                                ;;
+                                                            esac
                                                             ;;
                                                         esac
                                                         ;;
@@ -93,6 +98,7 @@ AC_DEFUN([gl_FUNC_VSNPRINTF_POSIX],
     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
     gl_PREREQ_VASNPRINTF_FLAG_GROUPING
     gl_PREREQ_VASNPRINTF_FLAG_ZERO
+    gl_PREREQ_VASNPRINTF_ENOMEM
     gl_REPLACE_VASNPRINTF
     gl_REPLACE_VSNPRINTF
   fi